我正在开发 Github 操作工作流。此工作流在 Linux、Mac 和 Windows 上运行。
作为工作流程的一部分,我必须检查 2 个环境变量是否相等。如果他们不这样做 - 失败的工作。
如上所述这里,Github上操作支持if:条件:
steps:
- run: # How can I make a cross-platform failure here?
if: ${{ envA }} != ${{ envB }}
Run Code Online (Sandbox Code Playgroud)
如果上述条件为真,我怎样才能使工作失败?一开始,我想到了一个脚本,但必须有一个更优雅的方式来失败一个工作。
在 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) 我有一个操作(一个yaml文件)用于将 docker 映像部署到 Google Cloud Run。
我想接收通知构建和推送结果的 Slack 或电子邮件消息。
构建操作完成后如何触发消息操作?
是否有可能获得构建操作的结果?
我正在尝试if在 github 操作中的条件中使用环境变量,如下所示:
name: Worfklow
on:
push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: EXIT step
if: $GITHUB_REF == 'specific-branch'
run: exit 1
Run Code Online (Sandbox Code Playgroud)
如果当前分支等于特定分支,我想退出。
不幸的是,github 操作控制台显示错误:
Unexpected symbol: '$GITHUB_REF'
Run Code Online (Sandbox Code Playgroud)
我可以$GITHUB_REF在 a run:(它包含当前分支的地方)中使用,但不能在if:. 我究竟做错了什么?
我正在尝试编写一个工作流程,让标签创建工作流程填充我的 GitHub 项目版本。
我已经知道如何创建版本(使用actions/create-release@v1.0.0)以及如何在版本中推送工件(使用actions/upload-release-asset)。
但是,由于我正在构建 Rust 代码,因此我必须在不同的平台上编译它。显然,为此,我在每个平台上都有一份工作,并且我正在努力将我的工件推向该工作。
但为了让推送工作,我必须使用 给出的发布标识符actions/create-release@v1.0.0,它在另一个作业中运行。
因此我的问题是:如何将发布 URL 从发布创建作业传递到将推送工件的作业?
完整的工作流程可以在这里找到:https://github.com/Riduidel/rrss2imap/blob/master/.github/workflows/on_tag.yml
我把它复制在这里
name: Push release artifacts on tag
on:
push:
tags:
- '[0-9]+.[0-9]+.[0-9]+'
jobs:
Make_GitHub_Release:
name: Create Release
runs-on: ubuntu-latest
steps:
- name: Create Release
id: create_release
uses: actions/create-release@v1.0.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
draft: true
prerelease: false
Standard_OS_build:
name: Build on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix: …Run Code Online (Sandbox Code Playgroud) 如果有超过 100 个 flake8 错误,我想对 PR 发表评论,但它不会禁用合并按钮。
我的方法是这样的:
name: Flake8 Check
on: [pull_request]
jobs:
flake8:
name: Flake8 Check
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Install Python
uses: actions/setup-python@v1
with:
python-version: 3.6
- name: Install dependency
run: pip install flake8
- name: Flake8
id: flake
run: echo "::set-output name=number::$(flake8 --config=tools/dev/.flake8 --count -qq)"
- name: comment PR
uses: unsplash/comment-on-pr@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
msg: "There are ${{ steps.flake.outputs.number }} Flake8 errors which is a …Run Code Online (Sandbox Code Playgroud)