30 October 2024

IMG-THUMBNAIL

完善部署监控能力,完善持续集成能力。

先看图感受下,当部署完成后可以在微信里收到推送。Github Actions支持自动触发,执行命令。本文不会讲解具体语法,可以参考阮一峰的博客《GitHub Actions 入门教程》

代码自动部署(以fly.io为例)

  1. 在代码仓库里执行fly launch --no-deploy创建部署文件fly.toml
  2. 执行命令fly tokens create deploy -x 999999h创建部署密钥;
  3. 访问Github网址,点击自己的项目->Settings->Secrets and variables->Actions->Repository secrets->New repository secret,填写部署密钥。Name为FLY_API_TOKEN,Secret为第二步生成的内容;
  4. 在代码仓库里,在这个目录里创建问题:.github/workflows/fly.yml,把下面的内容粘贴进去;
name: Fly Deploy
on:
  push:
    branches:
      - master    # change to main if needed
jobs:
  deploy:
    name: Deploy app
    runs-on: ubuntu-latest
    concurrency: deploy-group    # optional: ensure only one action runs at a time
    steps:
      - uses: actions/checkout@v4
      - uses: superfly/flyctl-actions/setup-flyctl@master
      - run: flyctl deploy --remote-only
        env:
          FLY_API_TOKEN: $
  1. 简单介绍下语法:
    • on/push,当master分支代码提交后触发执行;
    • jobs/deploy,触发后执行的内容。runs-on指运行环境,steps指运行指令,env加载之前第三部设置的环境变量,uses指引入了三方的工具包,这个例子是使用fly官方的部署包;

完整例子移步Continuous Deployment with Fly.io and GitHub Actions

微信通知

  1. 重复上面第三步,新建一个Name为WECHAT_WORK_BOT_WEBHOOK的密钥,值为微信通知的Webhook地址,用企业微信创建一个即可(拉个微信群添加机器人后会展示出来);
  2. 在目录github/workflows里新建文件notify.yml,粘贴下面的内容:
name: Watch Workflow Status
on:
  workflow_run:
    workflows: [ "Fly Deploy" ]
    types: [ completed ]
env:
  WECHAT_WORK_BOT_WEBHOOK: $

jobs:
  notify:
    runs-on: ubuntu-latest
    steps:
      - id: prep
        uses: hocgin/action-env@main
      - name: WeChat Work Notification
        uses: chf007/action-wechat-work@master
        env:
          WECHAT_WORK_BOT_WEBHOOK: $
        with:
          msgtype: markdown
          content: "**【[$]($)】** \n
          📌 $ \n
          🏃 [@$]($)\n
          🕐 <font color=\"comment\">$</font> \n
          🔧 <font color=\"warning\">$ -> $</font> \n
          🏆 <font color=\"comment\">$ / $</font> \n
          📝 提交信息: $ \n
          \n
          [查看更多]($)
          "
  1. on/workflow_run 指在部署完成后执行这个脚本,workflows里的Fly Deploy是前面第一步的工作流名称,如果你用的不是fly,按照自己情况修改;
  2. jobs 复用了chf007/action-wechat-work@master包的能力,发送markdown格式的消息,能使用的变量可以参考这个文件

原文链接:Github Actions 初探,代码发布成功后发送微信推送,转载请注明来源!

EOF