我有一些非常昂贵的基准/测试,我只想在一些 PR 上运行,而不是全部。有没有办法通过 github actions 来做到这一点?
continuous-integration github github-actions building-github-actions
我在 GitHub 操作中设置了一个工作流来运行我的测试并创建测试覆盖的工件。我的 YAML 文件的精简版如下所示:
name: Build
on: [pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
# Other steps here
- name: Build app
- name: Run tests
- name: Create artifact of test coverage
# Other steps here
Run Code Online (Sandbox Code Playgroud)
问题是当测试失败时不会创建工件。
我if: always()从docs 中找出了条件,但这也会导致当我的Build app步骤失败时运行此步骤。我不希望这种情况发生,因为在这种情况下没有什么可存档的。
如果上一步已运行(成功或失败),我如何仅运行此步骤?
continuous-integration github continuous-deployment github-actions
我正在尝试通过GitHub 操作进行 maven 部署,但出现以下错误:-
gpg: directory '/home/runner/.gnupg' created
gpg: keybox '/home/runner/.gnupg/pubring.kbx' created
gpg: no default secret key: No secret key
gpg: signing failed: No secret key
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 13.272 s
[INFO] Finished at: 2020-04-06T12:18:44Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.5:sign (sign-artifacts) on project pretty-simple-jar: Exit code: 2 -> [Help 1]
Run Code Online (Sandbox Code Playgroud)
我知道我需要以某种方式在运行操作工作流的虚拟运行器中导入我的 gpg 密钥,但我无法找到通过 GitHub 操作工作流在虚拟运行器中导入我的密钥的方法?
以下是我的工作流程:-
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up …Run Code Online (Sandbox Code Playgroud) 我目前正在努力用 GitHub Actions 替换我们的 Drone CI 安装。
到目前为止,我的操作工作流归结为以下.github/workflows/ci.yml文件:
on: [ push, pull_request ]
name: CI
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Node
uses: actions/setup-node@v1
with:
node-version: '13.x'
- name: Install Dependencies
run: npm install
Run Code Online (Sandbox Code Playgroud)
日志本身是一长串npm WARN tar ENOENT: no such file or directoryala 下面的截断列表。
2020-04-29T21:15:31.7899082Z npm install
npm WARN tar ENOENT: no such file or directory, open '/home/runner/work/project/project/node_modules/.staging/acorn-26d8ba97/dist/acorn.js.map'
npm WARN tar ENOENT: no such file or directory, open '/home/runner/work/project/project/node_modules/.staging/coffeescript-acee515b/lib/coffee-script/register.js' …Run Code Online (Sandbox Code Playgroud) 我有一个带有 GitHub Action 的私有存储库,当有新的推送到主分支时,它会将代码推送到 AWS S3 存储桶。我需要一对访问密钥才能推送内容,我将它们存储为 GitHub Secrets 并将它们作为构建脚本中的环境变量进行引用。现在我想在不久的将来公开这个 repo,我想知道这样做是否安全。操作的工作流 (.github/workflows/main.yml) 本身确实是公开可见的,它的作用是什么,但它只有一个命令aws s3 cp myfile s3://my-bucket,代码本身绝对没有访问密钥。
将 GitHub Secrets 用于公共存储库中的操作是否安全?我是唯一的所有者和唯一的贡献者,这在未来不会改变。稍后我可能会使用 webhook 切换到 CodePipeline,但想先尝试 GitHub Actions。谢谢。
我在 GitHub 上做了一个新项目,有两个工作流程:
我希望只有在第一个工作流程成功时才触发第二个工作流程。有没有办法做到这一点?或者我是否需要创建一个工作流文件,其中第二个工作依赖于第一个工作?
我想在我的 Github 操作工作流中的作业之间定义和设置环境变量。下面的工作流程是我尝试过的,但不幸的是环境变量GIT_PR_SHA_SHORT和E2E_GIT_PR_SHA不起作用。
是否可以?
name: Git Pull Request Workflow
on:
workflow_dispatch:
pull_request:
branches:
- master
env:
GIT_PR_SHA: ${{github.event.pull_request.head.sha}}
GIT_PR_SHA_SHORT: "${{ env.GIT_PR_SHA:0:10 }}"
ENV_NAME: test
E2E_GIT_PR_SHA: "${{ env.ENV_NAME }}-${{ env.GIT_PR_SHA_SHORT }}"
jobs:
first-job:
name: Build Docker Image
runs-on: ubuntu-latest
steps:
- name: First Echo Step
run: |
echo "GIT_PR_SHA_SHORT = ${GIT_PR_SHA_SHORT}"
echo "E2E_GIT_PR_SHA = ${E2E_GIT_PR_SHA}"
second-job:
name: Build Docker Image
runs-on: ubuntu-latest
steps:
- name: Second Echo Step
run: |
echo "GIT_PR_SHA_SHORT = ${GIT_PR_SHA_SHORT}"
echo "E2E_GIT_PR_SHA = …Run Code Online (Sandbox Code Playgroud) 我在 GitHub 中有一个 repo,我想创建一个 Action 来构建 Docker 镜像并将其推送到 DockerHub。我知道该怎么做,但是:如果我在 master GitHub 以外的分支中创建操作,则不会运行它。
这是一个已知问题(工作流文件仅从 master 获取?)。
任何想法来解决它?
我正在使用 GitHub 操作配置工作服。
我进行了搜索,但找不到如何生成 ./coverage/lcov.info 文件。
当操作运行时,由于我没有这样的文件,我得到:
Using lcov file: ./coverage/lcov.info
Error: Lcov file not found.
Run Code Online (Sandbox Code Playgroud)
我尝试通过 IntelliJ 使用 Coverage 运行测试,但我可以生成的唯一导出是 HTML 格式。
如何生成 lcov.info 文件?
编辑 - 根据评论中的要求添加我的工作流程以供参考
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
name: "CodeQL"
on:
push:
branches: …Run Code Online (Sandbox Code Playgroud) 有没有什么聪明的方法来确定 Github 操作中的默认分支?
现在我需要写一些类似的东西:
on:
push:
branches:
- master
Run Code Online (Sandbox Code Playgroud)
有没有办法编写类似下面的代码?
on:
push:
branches:
- $default-branch
Run Code Online (Sandbox Code Playgroud)
我试着用谷歌搜索但什么也没找到
github-actions ×10
github ×7
coveralls ×1
dependencies ×1
docker ×1
git ×1
gnupg ×1
java ×1
node.js ×1
npm ×1
npm-install ×1
publish ×1