0

0

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

紅蓮之龍

紅蓮之龍

发布时间:2025-12-08 22:15:25

|

133人浏览过

|

来源于php中文网

原创

自动化部署通过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

on: push: branches:

  • main

jobs: deploy: runs-on: ubuntu-latest steps:

  • name: Checkout code uses: actions/checkout@v4

  • name: Set up Node.js uses: actions/setup-node@v3 with: node-version: '18'

  • name: Install dependencies run: npm install

  • name: Build project run: npm run build

  • name: Deploy to server run: | echo "Deploying files..."

    这里填写具体的部署命令

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 }}
  - 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

08cms企业建站系统 1.0 正式版
08cms企业建站系统 1.0 正式版

08cms企业建站系统是基于08cmsv3.4核心程序,通过系统架构,模板制作,并根据此系统的功能和操作流程进行了代码优化。由08cms官方团队开发。安装链接:install.php、管理后台链接:admina.php日常管理请不要使用创始人帐号(admin),系统内置有内容管理帐号08cms:密码08cms系统特点:1、系统可自动生成静态页面;2、根据企业系统的特点,基于08cms V3.4核心

下载

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

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

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

示例:

on:
  push:
    branches:
      - main
      - preview

jobs: deploy-production: if: github.ref == 'refs/heads/main' runs-on: ubuntu-latest

... 步骤同上,指向生产路径

deploy-preview: if: github.ref == 'refs/heads/preview' runs-on: ubuntu-latest

... 指向预览服务器

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 控制关键步骤失败时的行为。

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

相关专题

更多
if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

751

2023.08.22

scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

187

2023.10.18

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

288

2023.10.25

java break和continue
java break和continue

本专题整合了java break和continue的区别相关内容,阅读专题下面的文章了解更多详细内容。

256

2025.10.24

PHP 命令行脚本与自动化任务开发
PHP 命令行脚本与自动化任务开发

本专题系统讲解 PHP 在命令行环境(CLI)下的开发与应用,内容涵盖 PHP CLI 基础、参数解析、文件与目录操作、日志输出、异常处理,以及与 Linux 定时任务(Cron)的结合使用。通过实战示例,帮助开发者掌握使用 PHP 构建 自动化脚本、批处理工具与后台任务程序 的能力。

30

2025.12.13

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

11

2026.01.19

微信聊天记录删除恢复导出教程汇总
微信聊天记录删除恢复导出教程汇总

本专题整合了微信聊天记录相关教程大全,阅读专题下面的文章了解更多详细内容。

79

2026.01.18

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

109

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

153

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WEB前端教程【HTML5+CSS3+JS】
WEB前端教程【HTML5+CSS3+JS】

共101课时 | 8.4万人学习

JS进阶与BootStrap学习
JS进阶与BootStrap学习

共39课时 | 3.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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