tim*_*der 7 continuous-integration yaml github-actions
我有一个在两个不同事件上运行的 github 工作流程:pull_request 和手动。它看起来像这样:
\non:\n pull_request:\n branches: [master]\n workflow_dispatch: {}\n\nenv:\n API_URL: https://example.com/\nRun Code Online (Sandbox Code Playgroud)\nAPI_URL我想要的是当我手动触发工作流程时能够设置替代方案。但我希望工作流程在自动运行时也能以相同的方式运行。\n因此,首先,我将 \xe2\x80\x9c inputs\xe2\x80\x9d 添加到工作流程_dispatch 中:
on:\n pull_request:\n branches: [master]\n workflow_dispatch:\n inputs:\n API_URL:\n description:\n required: true\n default: https://example.com\n\nenv:\n API_URL: ${{ github.event.API_URL }}\nRun Code Online (Sandbox Code Playgroud)\n据我了解,这样API_URL只有在手动运行工作流程时才会设置环境变量。但是当它自动运行时,xe2x80x99s没有github.event.API_URL值。
在我看来,这里需要一个条件回退。\n这样的东西会起作用吗?
\nenv:\n API_URL: ${{ github.event.API_URL || \'https://example.com/\' }}\nRun Code Online (Sandbox Code Playgroud)\n但从文档来看,||运算符将计算为1or 0。
有没有好的办法解决这个问题呢?谢谢!
\nsha*_*mcd 10
这对我有用:
env:
BRANCH: ${{ github.base_ref || 'devel' }}
Run Code Online (Sandbox Code Playgroud)
不幸的是(在撰写本文时),这是不可能的。但是,仅当作业不是手动运行时(例如,作业由 PR 事件触发),您可以通过动态将环境变量( ) 设置为默认值来达到相同的效果 。您可以通过创建一个条件作业步骤来做到这一点,该步骤仅在尚未设置时运行:API_URLAPI_URL
on:
pull_request:
branches:
- master
workflow_dispatch:
inputs:
API_URL:
required: true
default: https://example.com
jobs:
build:
env:
API_URL: ${{ github.event.inputs.API_URL }}
runs-on: ubuntu-latest
steps:
- name: Set API_URL environment variable
if: env.API_URL == null
run: echo "API_URL=https://example.com" >> $GITHUB_ENV
- name: Test API_URL environment variable
run: echo "API_URL=$API_URL"
Run Code Online (Sandbox Code Playgroud)
这样,API_URL无论工作流程的触发方式如何(手动或自动),我们都将设置环境变量,并且能够在手动运行时使用自定义值覆盖它。
| 归档时间: |
|
| 查看次数: |
4288 次 |
| 最近记录: |