GitHub Actions自动化部署全攻略

发布时间:2026/5/20 3:56:04

GitHub Actions自动化部署全攻略 自动化构建与部署使用GitHub Actions自动化构建和部署小型网站可以显著提高效率。配置一个工作流文件如.github/workflows/deploy.yml触发条件设置为代码推送到主分支时自动运行。构建步骤通常包括安装依赖、运行测试和生成静态文件。部署可以通过FTP、SSH或GitHub Pages直接发布到服务器。name: Deploy Site on: [push] jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkoutv2 - run: npm install npm run build - uses: peaceiris/actions-gh-pagesv3 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./dist缓存依赖优化速度小型网站项目可以通过缓存依赖减少构建时间。在GitHub Actions工作流中使用actions/cache来缓存Node.js的node_modules或Python的虚拟环境。缓存键应包含依赖文件哈希如package-lock.json确保依赖变更时自动更新缓存。- uses: actions/cachev2 with: path: node_modules key: ${{ runner.os }}-node-${{ hashFiles(package-lock.json) }}定时任务与监控设置定时工作流如每天凌晨运行监控任务检查网站可用性或性能。使用curl测试HTTP状态码或集成Lighthouse进行性能分析。发现问题时可通过GitHub Issues或Slack通知团队。on: schedule: - cron: 0 0 * * * jobs: monitor: steps: - run: | STATUS$(curl -s -o /dev/null -w %{http_code} https://yoursite.com) if [ $STATUS -ne 200 ]; then exit 1; fi环境变量与密钥管理敏感信息如API密钥或数据库密码应通过GitHub Secrets存储在工作流中以环境变量形式注入。避免将敏感数据直接写入代码库。环境区分可通过不同的工作流文件或条件步骤实现。env: API_KEY: ${{ secrets.PRODUCTION_API_KEY }} steps: - run: echo Deploying to ${{ secrets.DEPLOY_HOST }}多环境部署策略小型网站可能需区分开发和生产环境。通过分支或标签触发不同工作流主分支推送到生产环境特性分支部署到预览环境。使用条件步骤或矩阵策略管理多环境配置。jobs: deploy: if: github.ref refs/heads/main steps: - run: echo Production deploy容器化构建一致性使用Docker容器确保构建环境一致性。在GitHub Actions中直接构建镜像并推送到注册表或使用现有容器作为运行环境。这种方法特别适合依赖复杂的小型网站。jobs: build: runs-on: ubuntu-latest container: image: node:14 steps: - run: node --version状态通知与日志集成Slack、Discord或邮件通知实时反馈工作流状态。添加轻量级日志输出步骤关键环节打印简明信息便于调试。失败时自动重试或触发告警。- uses: rtCamp/action-slack-notifyv2 if: failure() env: SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} SLACK_MESSAGE: Deployment failed

相关新闻