GitHub Actions是GitHub内置的CI/CD(持续集成/持续部署)系统——它运行由你仓库中的事件触发的自动化工作流。以下是清晰解释它做什么以及如何实际使用它。
CI/CD实际上是什么意思
持续集成:每次代码推送时,自动运行测试以验证没有任何内容被破坏。持续部署:当主分支上的测试通过时,自动将更新的代码部署到生产环境。GitHub Actions自动化两者。没有它,你依赖开发者记得运行测试和手动部署——这在规模化时会出问题并引入人为错误。
基本工作流
name: Test and Deploy
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm ci
- run: npm test
deploy:
needs: test
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v4
- run: ./deploy.sh
env:
SERVER_KEY: ${{ secrets.SERVER_KEY }}
关键概念
触发器(on:):push、pull_request、schedule(cron)、workflow_dispatch(手动)。作业(Jobs):默认并行运行的独立单元;使用needs:进行顺序依赖。步骤(Steps):作业中的单个命令。动作(Actions):来自GitHub市场的可复用步骤(actions/checkout、actions/setup-python等)。密钥(Secrets):将API密钥和凭证存储在仓库密钥中,通过${{ secrets.KEY_NAME }}访问。
测试之外的实际用途
在标签推送时自动发布npm包。在部署前运行数据库迁移。构建和推送Docker镜像。在部署时发送Slack通知。生成和发布文档。运行安全扫描(Dependabot、CodeQL)。这些都是专业开发工作流中GitHub Actions的标准用途。




