【问题标题】:Github Workflow: How to map input option to valueGithub Workflow:如何将输入选项映射到值
【发布时间】:2022-08-10 19:19:24
【问题描述】:

我为我的 Github 工作流程设置了以下输入

on:
  workflow_dispatch:
    inputs:
      environment:
        type: choice
        description: Environment
        options:
          - Development
          - QA
          - UAT
          - Production

如果用户选择Development 作为环境,我想在我的一些字符串连接中使用dev 这个词,如果他们选择Production 我想使用prod 来达到同样的目的。

以下是需要进行替换的区域的示例。

- name: Package App
  run: |
    move-file .env.$TARGET_ENVIRONMET .env
    yarn package:$TARGET_ENVIRONMENT

在此示例中,我需要 move-file 命令为 move-file .env.dev .envyarn package 命令为 yarn package:dev 用于开发,但我在将 Development 映射到开发时遇到问题。如果用户选择了Development,我查看了将变量设置为dev,但看起来唯一的变量支持是设置环境变量,而且这似乎是有条件的。

所以我不能做这样的事情

env:
  if: inputs.environment == \'Development\'
    TARGET_ENVIRONMENT: \'dev\'
  if: inputs.environment == \'Production\'
    TARGET_ENVIRONMENT: \'prod\'

    标签: github github-actions


    【解决方案1】:

    有一些方法可以将您的输入映射到 env 变量 - 您可以使用执行此操作的操作:

    - uses: kanga333/variable-mapper@master
      id: export
      with:
        key: "${{ github.event.inputs.environment }}"
        map: |
          {
            "Development": {
              "environment": "dev"
            },
            "Production": {
              "environment": "prod"
            }
          }
        export_to: env
    - run: |
        move-file .env.$environment .env
    

    或者您可以使用某种 hack 并定义您的环境(在工作级别),如下所示:

    env:
      TARGET_ENVIRONMET: >
        ${{ fromJson('{
          "Development": "dev",
          "Production": "prod"
        }')[github.event.inputs.environment] }}
    steps:
      - run: |
          move-file .env.$TARGET_ENVIRONMET .env
    

    【讨论】:

      【解决方案2】:

      Bash 用户将熟悉短路语法:

      steps:
        - run: |
            move-file .env.${{ ($inputs.environment == 'Development') && 'dev' || 'prod' }} .env
      

      【讨论】:

        猜你喜欢
        • 2011-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-07
        • 2012-01-07
        • 1970-01-01
        • 2015-04-20
        相关资源
        最近更新 更多