Github 工作流程:如何将输入选项映射到值
Github Workflow: How to map input option to value
我为我的 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 .env
,yarn package
命令为 yarn package:dev
用于开发,但我在映射 Development
开发。如果用户选择 Development
,我考虑将变量设置为 dev
,但看起来唯一的变量支持是用于设置环境变量,而且似乎不可能有条件地实现。
所以我不能做这样的事情
env:
if: inputs.environment == 'Development'
TARGET_ENVIRONMENT: 'dev'
if: inputs.environment == 'Production'
TARGET_ENVIRONMENT: 'prod'
有一些方法可以将您的输入映射到 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
我为我的 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 .env
,yarn package
命令为 yarn package:dev
用于开发,但我在映射 Development
开发。如果用户选择 Development
,我考虑将变量设置为 dev
,但看起来唯一的变量支持是用于设置环境变量,而且似乎不可能有条件地实现。
所以我不能做这样的事情
env:
if: inputs.environment == 'Development'
TARGET_ENVIRONMENT: 'dev'
if: inputs.environment == 'Production'
TARGET_ENVIRONMENT: 'prod'
有一些方法可以将您的输入映射到 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