在CentOS上进行Node.js项目的持续集成与持续部署(CI/CD)通常涉及以下步骤:
首先,确保你的CentOS系统上已经安装了Node.js和npm。如果没有安装,可以通过以下命令安装:
sudo yum update -y
curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
sudo yum install -y nodejs
选择一个适合项目需求的测试框架,如Jest、Mocha等,并使用npm安装。例如,安装Jest:
npm install --save-dev jest
在项目中创建测试目录,并编写测试用例。例如,创建一个文件sum.test.js
:
// tests/sum.test.js
const sum = require('../sum');
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
在package.json
文件中添加一个测试脚本:
{
"scripts": {
"test": "jest"
}
}
常用的CI/CD工具包括Jenkins、Travis CI、GitHub Actions等。以下是使用GitHub Actions的示例:
.github/workflows/node.js.yml
文件在项目根目录下创建该文件,并添加以下内容:
name: Node.js CI on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x, 16.x]
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- run: npm ci
- run: npm test
可以使用PM2进行进程管理,并使用Docker进行容器化部署。
sudo npm install pm2 -g
pm2 start app.js --name myapp
pm2 save
创建一个Dockerfile
:
FROM node:lts/*
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["node", "app.js"]
然后,使用Docker构建镜像并将其推送到Docker Hub或其他容器注册表:
docker build -t my-node-app .
docker push my-node-app
使用监控和日志工具来跟踪系统性能和检测问题,例如Prometheus、Grafana和ELK Stack。
在自动化脚本中实现错误处理和安全检查,确保脚本在遇到错误时立即退出,并使用安全工具来识别代码库中的漏洞。
通过以上步骤,你可以在CentOS上实现Node.js项目的持续集成与持续部署,确保代码质量和持续交付。