Debian上JS项目持续集成(CI)实施指南
在Debian系统上进行JavaScript(JS)项目的持续集成,核心是通过自动化工具实现代码变更后的依赖安装、测试执行、代码质量检查及可选部署流程。以下是具体步骤及工具选型说明:
安装必要工具
确保系统已安装git(版本控制)、nodejs/npm/yarn(JS依赖管理)。可通过以下命令安装:
sudo apt update
sudo apt install -y git nodejs npm
sudo npm install -g yarn # 可选:更快的依赖管理工具
配置项目基础结构
git init.gitignore文件,排除node_modules/、dist/等目录(避免无意义提交)package.json中定义核心脚本(必用):"scripts": {
"test": "jest", // 测试框架(如Jest)
"lint": "eslint .", // 代码质量检查(如ESLint)
"build": "webpack --mode production" // 构建命令(如Webpack)
}
根据团队习惯及项目需求选择合适的CI工具,常见选项如下:
.github/workflows/ci.yml文件(如示例1)。sudo gitlab-runner register(按提示关联项目)。.gitlab-ci.yml文件(如示例2)。sudo apt install -y openjdk-11-jdk。name: CI
on:
push:
branches: [main] # 触发条件:main分支推送
pull_request:
branches: [main] # 触发条件:main分支PR
jobs:
build:
runs-on: ubuntu-latest # 使用Ubuntu环境
steps:
- uses: actions/checkout@v2 # 拉取代码
- name: Use Node.js 16 # 设置Node.js版本
uses: actions/setup-node@v2
with:
node-version: '16'
- name: Install dependencies # 安装依赖
run: npm install
- name: Run tests # 执行测试
run: npm test
- name: Lint code # 代码质量检查
run: npm run lint
- name: Build project # 构建项目
run: npm run build
stages:
- build
- test
- deploy
build:
stage: build
script:
- npm install
- npm run build
artifacts:
paths:
- dist/ # 保存构建产物,供后续阶段使用
test:
stage: test
script:
- npm test
deploy:
stage: deploy
script:
- which ssh-agent || (apt-get update -y && apt-get install -y openssh-client)
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - # 使用SSH密钥登录服务器
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- ssh-keyscan your-production-server >> ~/.ssh/known_hosts
- scp -r dist/* user@your-production-server:/var/www/html # 部署到生产环境
only:
- master # 仅main分支触发部署
pipeline {
agent any // 使用任意可用节点
stages {
stage('Checkout') {
steps {
git 'https://github.com/yourusername/your-js-project.git' // 拉取代码
}
}
stage('Install Dependencies') {
steps {
sh 'npm install' // 安装依赖
}
}
stage('Run Tests') {
steps {
sh 'npm test' // 执行测试
}
}
stage('Build') {
steps {
sh 'npm run build' // 构建项目
}
}
stage('Deploy') {
when {
branch 'master' // 仅main分支触发部署
}
steps {
sshagent(['your-ssh-credentials']) { // 使用SSH凭证
sh 'scp -r dist/* user@your-production-server:/var/www/html' // 部署到生产环境
}
}
}
}
}
node_modules/目录(如GitHub Actions中添加- uses: actions/cache@v2步骤)。actions/setup-node(GitHub Actions)或Docker镜像(如node:16)确保构建环境一致。通过以上步骤,即可在Debian系统上为JS项目搭建高效的持续集成流程,实现代码变更后的自动化验证与交付。