首页 > web前端 > js教程 > 正文

自动化部署流程_使用GitHub Actions的配置

紅蓮之龍
发布: 2025-12-08 22:15:25
原创
114人浏览过
自动化部署通过GitHub Actions实现CI/CD,1. 创建.yml工作流文件定义步骤;2. 使用SSH密钥安全传输文件至服务器;3. 按分支设置触发条件区分环境;4. 添加缓存与错误处理提升效率。

自动化部署流程_使用github actions的配置

自动化部署能极大提升开发效率,减少人为操作失误。使用 GitHub Actions 可以在代码提交或合并后自动完成测试、构建和部署,实现持续集成与持续部署(CI/CD)。以下是基于 GitHub Actions 实现自动化部署的配置方法。

1. 创建 GitHub Actions 工作流文件

GitHub Actions 的工作流由 YAML 文件定义,存放在项目根目录下的 .github/workflows 文件夹中。创建一个如 deploy.yml 的文件来配置流程。

基本结构如下:

name: Deploy Application
<p>on:
push:
branches:</p><ul><li>main</li></ul><p>jobs:
deploy:
runs-on: ubuntu-latest
steps:</p><ul><li><p>name: Checkout code
uses: actions/checkout@v4</p></li><li><p>name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '18'</p></li><li><p>name: Install dependencies
run: npm install</p></li><li><p>name: Build project
run: npm run build</p></li><li><p>name: Deploy to server
run: |
echo "Deploying files..."</p><h1>这里填写具体的部署命令</h1><p>
登录后复制

2. 配置部署方式(以 SSH 部署为例)

若需将构建后的文件发送到远程服务器,可通过 SSH 执行。先在项目的 Settings > Secrets and variables > Actions 中添加以下密钥:

  • SSH_HOST:服务器地址
  • SSH_USER:登录用户名
  • SSH_KEY:私钥内容(建议使用专用部署密钥)
  • DEPLOY_PATH:服务器上目标路径

然后在工作流中使用 appleboy/scp-actionappleboy/ssh-action 完成文件传输与命令执行:

      - name: Copy files via SCP
        uses: appleboy/scp-action@v0.1.5
        with:
          host: ${{ secrets.SSH_HOST }}
          username: ${{ secrets.SSH_USER }}
          key: ${{ secrets.SSH_KEY }}
          source: "dist/"
          target: ${{ secrets.DEPLOY_PATH }}
<pre class="brush:php;toolbar:false;">  - name: Restart service on server
    uses: appleboy/ssh-action@v0.1.10
    with:
      host: ${{ secrets.SSH_HOST }}
      username: ${{ secrets.SSH_USER }}
      key: ${{ secrets.SSH_KEY }}
      script: |
        cd ${{ secrets.DEPLOY_PATH }}
        npm install
        pm2 restart app || pm2 start app.js
登录后复制

易方销售系统EfangIsale
易方销售系统EfangIsale

1 先进的多级用户及代理商管理功能 2 透明的会员资金管理,系统自动完成会员资金的管理业务。 3 规范的业务流程,客户提交订单--业务人员受理订单--技术人员开通业务,简单,规范,使用的企业管理更加规范化。 4 便捷安装接入,只要把你的前台链接到我们指定的入口,其它的业务管理全部由系统自动完成。 5 领先的产品及菜单管理功能。可对产品和会员的菜单进行动态的增加、修改、删除,从而使用轻松方便的增加新

易方销售系统EfangIsale 0
查看详情 易方销售系统EfangIsale

3. 设置触发条件与环境控制

可以根据分支、标签或事件类型精确控制何时触发部署:

  • 仅在 main 分支推送时部署生产环境
  • preview 分支推送时部署预览环境
  • 通过 if 条件判断执行不同流程

示例:

on:
  push:
    branches:
      - main
      - preview
<p>jobs:
deploy-production:
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest</p><h1>... 步骤同上,指向生产路径</h1><p>deploy-preview:
if: github.ref == 'refs/heads/preview'
runs-on: ubuntu-latest</p><h1>... 指向预览服务器</h1><p>
登录后复制

4. 添加缓存与错误处理

提升执行效率,避免重复安装依赖:

      - name: Cache dependencies
        uses: actions/cache@v3
        with:
          path: ~/.npm
          key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
          restore-keys: |
            ${{ runner.os }}-node-
登录后复制

同时建议加入通知机制(如企业微信、钉钉、邮件)或使用 continue-on-error 控制关键步骤失败时的行为。

基本上就这些。合理配置后,每次提交代码都能自动走完测试到上线全过程,省时又可靠。不复杂但容易忽略的是权限和密钥安全,务必限制部署密钥的访问范围。

以上就是自动化部署流程_使用GitHub Actions的配置的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号