【发布时间】:2022-10-02 04:16:03
【问题描述】:
我正在尝试在具有 GitHub 环境的多个环境中将基础架构部署为来自 main 分支的代码。我想在开发环境中有合并/推送到 main 时进行部署,但是当提交上有一个标签时,如 r2022-09-07 将代码部署在暂存环境中。但由于保护规则,它每次都失败。
这是ci.yml 工作流,我使用GitHub env 从main 分支部署到多个环境。
名称:Lint、编译和部署
on:
push:
branches: [main]
tags:
- \'r*\'
pull_request:
jobs:
ci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: install deps
run: yarn --frozen-lockfile
- run: yarn lint
- run: yarn prettier
- run: yarn compile
- run: yarn synth
- run: yarn test
# CD: ci -> dev -> staging -> production
## only deploy to dev from main branch
deploy-dev:
if: ${{ github.ref_name == \'main\' }}
needs: ci
runs-on: ubuntu-latest
environment:
name: Dev
url: https://...
env:
STACK: ...
AAD_TENANT: ...
ARM_TENANT_ID: ...
ARM_ACCESS_KEY: ${{ secrets.ARM_ACCESS_KEY }}
ARM_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
ARM_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
steps:
- uses: actions/checkout@v3
- run: yarn --frozen-lockfile --production
- run: |
az login --service-principal --tenant $AAD_TENANT \\
--username \"${{ secrets.AZURE_CLIENT_ID }}\" --password \"${{ secrets.AZURE_CLIENT_SECRET }}\"
yarn deploy $STACK --auto-approve
## deploy to staging only from main branch, if a commit has a tag starting with `r` (for ex. r2022-09-07)
deploy-staging:
if: ${{ startsWith(github.ref, \'refs/tags/r\') }}
runs-on: ubuntu-latest
environment:
name: Staging
URL: ....
env:
STACK: ...
AAD_TENANT: ...
ARM_TENANT_ID: ...
ARM_ACCESS_KEY: ${{ secrets.ARM_ACCESS_KEY }}
ARM_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
ARM_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
steps:
- uses: actions/checkout@v3
- run: yarn --frozen-lockfile --production
- run: |
az login --service-principal --tenant $AAD_TENANT \\
--username \"${{ secrets.AZURE_CLIENT_ID }}\" --password \"${{ secrets.AZURE_CLIENT_SECRET }}\"
yarn deploy $STACK --auto-approve
我一直在关注官方 GitHub 文档,但没有找到任何针对这种情况的具体内容,知道上面的 yaml 中应该修复什么吗?
标签: github github-actions github-enterprise