从 Jenkins 迁移到 GitHub Actions

适用场景

希望减少 Jenkins 维护成本、使用 GitHub 原生触发和托管 Runner,或把流水线靠近代码仓库。复杂插件和自托管环境要先评估。

前置条件

步骤

  1. 盘点流水线:
# 收集 Job 和 Jenkinsfile
find . -name Jenkinsfile
# 记录插件和全局工具
java -jar jenkins-cli.jar -s <url> -auth user:token list-plugins
  1. 把 Jenkinsfile 映射为 workflow:
name: CI
on:
  push:
    branches: [main]
  pull_request:
permissions:
  contents: read
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: npm
      - run: npm ci
      - run: npm test
  1. 迁移凭据:
  1. 迁移构建产物和缓存:
- uses: actions/cache@v4
  with:
    path: ~/.npm
    key: npm-${{ hashFiles('package-lock.json') }}
  1. 并行运行新旧流水线,对比结果后再切换触发。

验证

回滚

常见坑

相关命令