oma*_*ase 2 github github-actions
我为我的 Github 工作流程设置了以下输入
on:
workflow_dispatch:
inputs:
environment:
type: choice
description: Environment
options:
- Development
- QA
- UAT
- Production
Run Code Online (Sandbox Code Playgroud)
如果用户选择Development作为环境,我想dev在一些字符串连接中使用该单词,如果他们选择Production我想使用prod相同的目的。
以下是需要进行替换的区域的示例。
- name: Package App
run: |
move-file .env.$TARGET_ENVIRONMET .env
yarn package:$TARGET_ENVIRONMENT
Run Code Online (Sandbox Code Playgroud)
在此示例中,我需要move-file命令 bemove-file .env.dev .env和yarn package命令 beyarn package:dev用于开发,但我在映射Development到开发时遇到问题。我考虑设置一个变量,dev如果用户选择Development变量,但看起来唯一的变量支持是设置环境变量,而且这似乎不可能有条件地实现。
所以我不能做这样的事情
env:
if: inputs.environment == 'Development'
TARGET_ENVIRONMENT: 'dev'
if: inputs.environment == 'Production'
TARGET_ENVIRONMENT: 'prod'
Run Code Online (Sandbox Code Playgroud)
有一些方法可以将您的输入映射到环境变量 - 您可以使用执行此操作的操作:
- 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
Run Code Online (Sandbox Code Playgroud)
或者你可以使用某种 hack 并定义你的环境(在工作级别),如下所示:
env:
TARGET_ENVIRONMET: >
${{ fromJson('{
"Development": "dev",
"Production": "prod"
}')[github.event.inputs.environment] }}
steps:
- run: |
move-file .env.$TARGET_ENVIRONMET .env
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3558 次 |
| 最近记录: |