如何在github工作流中的某些条件下设置环境变量

时间:2021-05-03 12:21:47

标签: github github-actions

以下是我在 github 中的工作流程:

name: Deploy

on:
  push:
    branches:
      - develop
      - master

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v1
      - name: Configure AWS credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.AWS_ECR_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_ECR_SECRET_ACCESS_KEY }}
          aws-region: eu-west-2

如何根据条件设置变量值?像这样

如果 branch = master 那么

          aws-access-key-id: ${{ secrets.AWS_ECR_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_ECR_SECRET_ACCESS_KEY }}

其他

      aws-access-key-id: ${{ secrets.ACCESS_KEY_ID }}
      aws-secret-access-key: ${{ secrets.SECRET_ACCESS_KEY }}

1 个答案:

答案 0 :(得分:0)

您可以在步骤级别 jobs.<job_id>.steps[*].env 设置环境变量,也可以在步骤级别使用条件 jobs.<job_id>.steps[*].if

您可以找到有关语法 on the official documentation 的一些信息。

因此,如果分支是 master(或另一个分支),则可以使用条件来执行特定步骤。

这是一个例子:

steps:

  name: Configure AWS credentials (MASTER)
    if: github.ref == 'refs/heads/master'
    uses: aws-actions/configure-aws-credentials@v1
    with:
      aws-access-key-id: ${{ secrets.AWS_ECR_ACCESS_KEY_ID }}
      aws-secret-access-key: ${{ secrets.AWS_ECR_SECRET_ACCESS_KEY }}
      aws-region: eu-west-2

  name: Configure AWS credentials (NOT MASTER)
    if: github.ref != 'refs/heads/master'
    uses: aws-actions/configure-aws-credentials@v1
    with:
      aws-access-key-id: ${{ secrets.ACCESS_KEY_ID }}
      aws-secret-access-key: ${{ secrets.SECRET_ACCESS_KEY }}
      aws-region: eu-west-2

这里,只有分支为master才会执行第一步,否则会执行第二步。

可以找到另一个引用 on the github community