我有以下一段用于 github 操作的代码:
name: Python application
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: /
python -m pip install --upgrade pip
python -m pip install numpy pytest
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Test Selenium
run: /
python -m pytest -v -m devs
Run Code Online (Sandbox Code Playgroud)
但是当我提交并且操作开始运行时,我收到此错误:
Run / python -m pip install --upgrade pip python -m pip install numpy pytest if [ -f requirements.txt …Run Code Online (Sandbox Code Playgroud) 我有一个测试套件,想使用 GitHub Actions 以矩阵策略运行。我想为我的测试生成代码覆盖率报告,但仅限于单个矩阵项。
这是我正在处理的操作的副本:
name: test
on: [pull_request, workflow_dispatch]
jobs:
run_tests:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x, 16.x]
steps:
- uses: actions/checkout@v2
name: Test Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- run: npm install --production=false
- run: npm test -- --coverage ## I would prefer to only generate coverage once
- name: Upload to Codecov ## I would like to only run this once
run: |
curl -Os https://uploader.codecov.io/latest/linux/codecov …Run Code Online (Sandbox Code Playgroud) 我有一个 git 操作,我必须确保是否没有任何内容要添加,然后不提交或推送。
但我如何检查是否有需要添加和提交的内容(如有必要)。
这是我目前的做法的一个例子:
on:
push:
branches:
- testing
name: Build
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
name: Check out current commit
- name: Install
run: npm install
- name: Build
run: npm run build
- name: Commit
run: |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git add .
git commit -m "Build" -a
- name: Push
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: ${{ github.ref }}
Run Code Online (Sandbox Code Playgroud) on:
workflow_dispatch:
inputs:
logLevel:
description: 'Log level'
required: true
default: 'warning'
tags:
description: 'Test scenario tags'
Run Code Online (Sandbox Code Playgroud)
我有以下输入:
如何访问我输入的信息,然后在 github 操作脚本中使用它?
我有一个输出数字的 GitHub 操作工作流程,我想将其显示在徽章中。
使用https://github.com/username/reponame/actions/workflows/myaction.yml/badge.svg我得到一个红色或绿色的失败/成功徽章,但我想显示失败的数量,工作流将其输出到其中“错误”输出变量。
如何访问徽章中的该变量?
我有一个 GitHub Actions 工作流程,可以从 terraform 配置读取输出。我正在尝试这样做:
terraform -chdir=terraform/live/dev output -json > /tmp/output.json
APP_URL=$(cat /tmp/output.json | jq -r '.app_url.value')
Run Code Online (Sandbox Code Playgroud)
我在 GitHub 操作日志中收到以下错误:
parse error: Invalid numeric literal at line 1, column 9
Run Code Online (Sandbox Code Playgroud)
我添加了以下内容来调试:
parse error: Invalid numeric literal at line 1, column 9
Run Code Online (Sandbox Code Playgroud)
我发现输出是cat /tmp/output.json:
# debugging output.json file
echo "output.json:"
cat /tmp/output.json
Run Code Online (Sandbox Code Playgroud)
这告诉我jq无法解析我写入 terraform JSON 输出的临时文件,因为它似乎将命令添加到文件本身:
/home/runner/work/_temp/2b622f60-be99-4a29-a295-593b06dde9a8/terraform-bin -chdir=terraform/live/dev output -json
{
"app_url": {
"sensitive": false,
"type": "string",
"value": "https://app.example.com"
}
}
Run Code Online (Sandbox Code Playgroud)
如何获取 JSON 形式的 terraform 输出并将其写入文件,而不使用导致解析错误的额外标题行? …
现在,我们正在运行手动工作流程,以便将我们的产品部署到生产中。我们只有一项输入,就可以选择需要部署的品牌。
它包括像这样的选项
on:
workflow_dispatch:
inputs:
dst:
type: choice
description: Select destination brand
required: true
options:
- A
- B
- C
Run Code Online (Sandbox Code Playgroud)
等等。
是否可以从文件(例如我们项目中的文本文件)读取这些选项?我看了看,但没有看到其他人的解决方案。
我的团队使用无法访问草稿拉取请求的私有分支,但我仍然至少希望有一种方法可以防止合并拉取请求,同时它们应用了自定义标签,例如“草稿”或“WIP”。
有没有办法建立自定义所需的状态检查来检查该标签或使用 GitHub 操作使 PR 无效,直到标签被删除或类似的事情?
我几个小时以来一直在努力解决这个问题,但我找不到任何帮助。我正在尝试设置一个 github 操作,该操作将对每个到 master 的拉取请求以及对 master 分支的任何更改运行测试,但仅在 master 分支发生更改时运行部署步骤。
这是我正在尝试做的事情的简单再现。
name: Main
on:
push:
branches:
- "main"
pull_request:
branches:
- "main"
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Test
run: echo "running tests"
- name: Deploy
run: echo "Deploying"
if: github.head_ref == 'main'
Run Code Online (Sandbox Code Playgroud)
我尝试了在这里/其他论坛上找到的多个条件,我尝试移动if上面和下面的语句,run我完全没有想法。我尝试过的所有操作要么在拉取请求和合并上运行部署步骤,要么在拉取请求和合并上跳过部署步骤。
我正在使用 GitHub 中的一个项目(新)的板。当拉取请求中有一个问题链接到它并且我关闭拉取请求(使用拉取请求页面底部的 GitHub 按钮)时,问题也会关闭。
我不希望出现这种行为,即使这是该问题的唯一 PR。
我尝试更改项目工作流程设置,删除“拉取请求”“is:已关闭”触发器: