CI/CD(持续集成/持续部署)能让你提交代码后自动测试、构建、部署,是现代开发的标配。GitHub Actions 提供了免费的自动化能力。
一、核心概念
- Workflow:工作流,一个 YAML 文件定义
- Job:工作流里的任务
- Step:任务里的具体步骤
- Action:可复用的步骤单元
二、创建第一个工作流
在仓库根目录建 .github/workflows/deploy.yml:
name: Deploy
on:
push:
branches: [ main ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build
run: echo "构建中..."
- name: Deploy
run: echo "部署到服务器"
这样每次 push 到 main 分支,就会自动触发这套流程。
三、部署到服务器
用 SSH 把构建产物传到服务器。GitHub Secrets 用来安全存储服务器密码/密钥:
- name: Deploy to Server
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USER }}
key: ${{ secrets.KEY }}
script: |
cd /var/www/gdcpsoft
git pull
systemctl reload nginx
敏感信息(密码、密钥)绝不能写进代码仓库,一律用 GitHub Secrets 引用,加密存储。
四、触发方式
push:提交时触发schedule:定时触发(cron)workflow_dispatch:手动触发pull_request:PR 时触发
五、小结
CI/CD 把繁琐的部署工作自动化,是工程效率的飞跃。从最简单的 push 部署开始,逐步加入测试、构建、通知等环节,构建完整的流水线。