在 github 操作中,我有一个 if,但如果我处于 else 情况下,我仍然需要运行其他东西。有没有一种干净的方法来做到这一点,或者我是否必须在 false 的相同条件下执行另一个步骤?
- if: contains(['SNAPSHOT'],env.BUILD_VERSION)
name:IF
run: echo ":)"
- if: false == contains(['SNAPSHOT'], env.BUILD_VERSION)
name: Else
run: echo ":("
Run Code Online (Sandbox Code Playgroud)
lbr*_*ile 31
您可以执行以下操作,这只会在条件通过的情况下运行脚本:
job_name:
runs-on: windows-latest
if: "!contains(github.event.head_commit.message, 'SKIP SCRIPTS')" <--- skips everything in this job if head commit message does not contain 'SKIP SCRIPTS'
steps:
- uses: ....
- name: condition 1
if: "contains(github.event.head_commit.message, 'CONDITION 1 MSG')"
run: script for condition 1
- name: condition 2
if: "contains(github.event.head_commit.message, 'CONDITION 2 MSG')"
run: script for condition 2
Run Code Online (Sandbox Code Playgroud)
等等。当然,你可以在这里使用你自己的条件。
aga*_*rys 17
您可以考虑使用haya14busa/action-cond操作。if-else当需要操作来设置其他步骤的动态配置时(不需要重复整个步骤来在几个参数中设置不同的值),它非常有用。
例子:
- name: Determine Checkout Depth
uses: haya14busa/action-cond@v1
id: fetchDepth
with:
cond: ${{ condition }}
if_true: '0' # string value
if_false: '1' # string value
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: ${{ steps.fetchDepth.outputs.value }}
Run Code Online (Sandbox Code Playgroud)
小智 17
基于 github 操作的命令的替代解决方案是使用 shell 脚本命令来执行 if else 语句。
在 Ubuntu 机器上,检查提交是否有标签的示例工作流程,
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: |
ls
echo ${{ github.ref }}
ref='refs/tags/v'
if [[ ${{ github.ref }} == *${ref}* ]]; then
v=$(echo ${{ github.ref }} | cut -d'/' -f3)
echo "version tag is ${v}"
else
echo "There is no github tag reference, skipping"
fi
Run Code Online (Sandbox Code Playgroud)
fab*_*oad 16
GitHub Actions 没有else语句来运行不同的命令/操作/代码。但是你是对的,你需要做的就是创建另一个具有反向if条件的步骤。顺便说一句,您可以使用!代替false ==.
Ham*_*mdi 14
我发现我们也可以使用表达式来实现这一点,我是这样做的:
jobs:
build:
runs-on: ubuntu-latest
env:
PkgDesc: ${{ github.event.inputs.packageDescription != '' && github.event.inputs.packageDescription || format('{0} - {1}', 'Commit', github.SHA) }}
Run Code Online (Sandbox Code Playgroud)
语法:${{ x && 'ifTrue' || '如果假' }}
更多详细信息https://github.com/actions/runner/issues/409#issuecomment-752775072
| 归档时间: |
|
| 查看次数: |
20422 次 |
| 最近记录: |