GitHub Actions 入门教程：push 即部署的免费流水线

GitHub Actions 入门教程：免费的全自动流水线每次 push 代码，自动跑测试、自动构建、自动部署到服务器——这就是 CI/CD。GitHub Actions 是 GitHub 内置的自动化流水线，公开仓库免费用。本教程依据 GitHub 官方文档（docs.github.com/actions）整理。一、基本概念 Workflow（工作流）：放在仓库 .github/workflows/ 下的 YAML 文件，一个文件一条流水线 Event（触发事件）：什么时候跑，如 push、PR、定时 Job（任务）：一组步骤，默认并行执行，跑在一台全新虚拟机上 Step（步骤）：一条 shell 命令或一个现成的 Action 二、第一个 Workflow 在仓库根目录建 .github/workflows/ci.yml： name: CI on: push: branches: [main] pull_request: jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 22 - run: npm ci - run: npm test push 之后到仓库的 Actions 标签页就能看到运行记录：绿色勾=成功，红色叉=失败，点进去有每一步的完整日志。三、常用动作拆解 uses: 引用别人写好的 Action（市场里有上万种），actions/checkout@v4 是检出代码，几乎所有流水线的第一步 run: 执行 shell 命令，多条命令可写成多行 with: 给 Action 传参数 runs-on: ubuntu-latest 是运行环境（也有 windows-latest、macos-latest）四、自动部署到服务器测试通过后自动 rsync 部署（结合本站 SSH 密钥与 rsync 教程）： jobs: deploy: runs-on: ubuntu-latest needs: test # 等测试通过才执行 steps: - uses: actions/checkout@v4 - name: Deploy via rsync env: SSH_KEY: ${{ secrets.SSH_KEY }} run: | mkdir -p ~/.ssh echo "$SSH_KEY" > ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519 rsync -avz --delete -e "ssh -p 2222" ./ user@服务器IP:/var/www/site/ 私钥绝不写进代码：仓库 Settings → Secrets and variables → Actions，新建 SSH_KEY，用 ${{ secrets.SSH_KEY }} 引用，日志里会自动打码。五、定时任务与其他触发 on: schedule: - cron: "0 18 * * *" # 每天 UTC 18:00（北京时间凌晨 2 点） workflow_dispatch: # 允许在网页上手动触发 Actions 可以当"云上的 crontab"用，比如每天自动抓取数据、签到、生成统计。六、省钱与提速技巧技巧做法缓存依赖 actions/cache@v4 缓存 node_modules，快几十秒只在需要时跑 paths 过滤：改了哪类文件才触发并行拆分 lint / test 拆成多个 job 并行加超时 timeout-minutes: 10 防止卡死烧额度公开仓库完全免费；私有仓库每月有免费额度（2000 分钟），个人项目基本用不完。七、总结需求做法建流水线 .github/workflows/*.yml 触发 on: push / pull_request / schedule 用现成能力 uses: 官方 Action 部署 rsync/scp + Secrets 存密钥手动触发 workflow_dispatch 从"本地打包再 scp 上去"进化到"push 即部署"，是个人项目工程化收益最大的一步，而 GitHub Actions 让这一切免费。