Node.js在Ubuntu上的CI/CD可以通过多种工具和方法实现,以下是一个基本的指南,使用GitHub Actions作为示例:
首先,确保在Ubuntu上安装了Node.js和npm。可以使用NodeSource提供的安装脚本:
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
验证安装:
node -v
npm -v
在项目根目录下创建.github/workflows
目录,并添加ci.yml
文件来定义CI/CD流程。
.github/workflows/ci.yml
文件:name: CI/CD Pipeline
on:
push:
branches: [main, dev]
pull_request:
branches: [main, dev]
jobs:
build-and-test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x]
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
对于部署,可以使用GitHub Actions将构建好的Docker镜像推送到Docker Hub或其他容器注册表。
构建Docker镜像:
在.github/workflows/ci.yml
中添加构建和推送Docker镜像的步骤:
jobs:
build-and-test:
# ...其他步骤...
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm install
- name: Build Docker image
run: docker build -t your-dockerhub-username/your-repo:tag .
- name: Push Docker image
uses: docker/build-push-action@v2
with:
context: .
push: true
tags: your-dockerhub-username/your-repo:tag
配置Docker Hub:
确保在GitHub上配置了Docker Hub的访问令牌,并在GitHub Actions的Settings中添加一个秘密变量DOCKER_PASSWORD
。
除了GitHub Actions,还可以使用其他CI/CD工具,如Jenkins、GitLab CI、CircleCI等,配置方式类似,但具体步骤和配置文件会有所不同。
通过上述步骤,你可以在Ubuntu上使用GitHub Actions实现Node.js项目的CI/CD流程,包括自动化构建、测试和部署。根据具体需求,可以选择其他CI/CD工具进行更复杂的配置和管理。