如何按分支匹配不同GitHub self-hosted runner实现dev、prod环境独立部署
解决方法
你当前配置只指定了runs-on: self-hosted,GitHub会将任务调度到任意带有self-hosted标签的在线runner,因此会出现固定触发首个runner的问题。你只需要通过自定义标签做定向匹配即可,操作步骤如下:
- 给自托管runner添加环境专属标签
进入仓库的「Settings」-「Actions」-「Runners」页面,分别点击生产环境、开发环境对应的runner,在标签编辑区域新增自定义标签:
- 生产环境runner新增标签
prod - 开发环境runner新增标签
dev
- 修改工作流配置的
runs-on字段runs-on支持传入数组,要求调度的runner必须同时匹配数组内所有标签,即可实现定向调度:
生产环境(master分支对应的yml)修改后的配置如下:
name: SSR-Prod on: push: branches: [master] pull_request: branches: [master] jobs: build: runs-on: [self-hosted, prod] steps: - uses: actions/checkout@v2 - name: Restore dependencies run: npm install - name: Build and publish run: npm run build:ssr
开发环境(dev分支对应的yml)配置参考:
name: SSR-Dev on: push: branches: [dev] pull_request: branches: [dev] jobs: build: runs-on: [self-hosted, dev] steps: # 填写你的开发环境构建步骤
注意:GitHub Actions的标签匹配为大小写敏感,配置时请保证标签名拼写和你给runner设置的完全一致。
内容的提问来源于stack exchange,提问作者Marcus
相关产品推荐
相关产品推荐

