标签: github-actions

Github Actions 是否可用于分叉存储库?

我分叉了守望者存储库,我想为其添加一些步骤main.workflow(目标是发布工件以创建 snap 包)。

但我看不到 Actions存储库中选项卡。

是否有任何其他步骤来配置分叉存储库上可用的 Github 操作?

github-actions

12
推荐指数
2
解决办法
3492
查看次数

如何从 GitHub Action 的 action.yml 文件中引用其他操作?

是否可以从我的action.yml文件中引用另一个 GitHub 操作?

请注意,我在这里谈论的是操作,而不是工作流程。我知道这可以通过工作流来完成,但是操作可以引用其他操作吗?

github-actions

12
推荐指数
1
解决办法
1954
查看次数

跨作业重用 github 操作的一部分

我在 monorepo 中有一个 CI 工作流,为此工作流最终构建了两个项目。作业运行良好,但是,我想知道是否有办法通过为作业设置运行程序来删除此工作流.yml 文件中的重复项。我将它们分开,以便它们并行运行,因为它们不相互依赖并且可以更快地完成。等待 CI 完成时,5 分钟与 10 分钟以上的时间相差很大。

jobs:
  job1:
    name: PT.W Build
    runs-on: macos-latest
    steps:
      - name: Checkout Repo
        uses: actions/checkout@v1

      - name: Setup SSH-Agent
        uses: webfactory/ssh-agent@v0.2.0
        with:
          ssh-private-key: |
            ${{ secrets.SSH_PRIVATE_KEY }}

      - name: Setup JDK 1.8
        uses: actions/setup-java@v1
        with:
          java-version: 1.8

      - name: Setup Permobil-Client
        run: |
          echo no | npm i -g nativescript
          tns usage-reporting disable
          tns error-reporting disable
          npm run setup.all

      - name: Build PT.W Android
        run: |
          cd apps/wear/pushtracker
          tns build …
Run Code Online (Sandbox Code Playgroud)

continuous-integration yaml github github-actions

12
推荐指数
3
解决办法
8169
查看次数

如何在 Action 运行的 Bash 脚本中访问 GitHub Action 环境变量?

我无法从操作运行的脚本中访问在 GitHub 操作配置文件的顶级定义的环境变量。

例如,给定以下配置文件:

name: x-pull-request
on: pull_request
env:
  FOO: bar
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - name: does a thing
        run: ./scripts/do-a-thing.sh
Run Code Online (Sandbox Code Playgroud)

...以及以下脚本:

X=${FOO:default}
echo "X: $X" # X: default
Run Code Online (Sandbox Code Playgroud)

FOO配置文件中定义的环境变量对脚本不可用,正在使用默认值。

那么,如何从构建步骤运行的 Bash 脚本访问环境变量?我错过了前缀还是什么?(我知道input散列中定义的值要求您INPUT_在引用它们时使用前缀。)

bash github-actions

12
推荐指数
2
解决办法
4618
查看次数

Github Actions:如何在脚本中使用策略/矩阵

我的工作流程需要对步骤进行循环,这对于策略/矩阵来说是完美的。

唯一的问题是策略/矩阵需要由常量设置。

是否可以将策略矩阵与脚本输出一起使用?

name: tests
on: [push]

jobs:
  test:
    runs-on: ${{ ubuntu-latest }}
    strategy:
      fail-fast: false
      matrix:
        versions: $(./script.py)

    steps:
    - uses: actions/checkout@v2
 .......
Run Code Online (Sandbox Code Playgroud)

github-actions

12
推荐指数
1
解决办法
5185
查看次数

仅当上一步已运行时才运行 GitHub 操作步骤

我在 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

12
推荐指数
2
解决办法
5232
查看次数

如何在 github 操作中使用 GPG 密钥?

我正在尝试通过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 gnupg maven-deploy-plugin github-actions

12
推荐指数
3
解决办法
3141
查看次数

使用 helmfile 部署图表返回退出代码 1

我正在尝试使用 helmfile 部署图表。使用相同版本和相同集群在本地运行得很好。

头盔文件

environments:
  dev:
    values:
      - kubeContext: nuc
      - host: urbantz-api.dev.fitfit.dk
  prod:
    values:
      - kubeContext: nuc
      - host: urbantz-api.fitfit.dk

releases:
  - name: urbantz-api
    namespace: urbantz-api-{{ .Environment.Name }}
    chart: helm/
    kubeContext: "{{ .Values.kubeContext }}"
#    verify: true
    values:
      - image:
          tag: '{{ requiredEnv "IMAGE_TAG" }}'
      - ingress:
          enabled: true
          hosts:
            - host: {{ .Values.host }}
              paths:
                - path: /
Run Code Online (Sandbox Code Playgroud)

完整的管道可以在这里找到,但相关命令可以在下面看到

[ "$IMAGE_TAG" == "latest" ] && ./helmfile --debug -e dev sync
Run Code Online (Sandbox Code Playgroud)

管道的完整输出可以在这里找到,但相关部分可以在下面看到

...
NOTES:
1. Get …
Run Code Online (Sandbox Code Playgroud)

helmfile github-actions

12
推荐指数
1
解决办法
7117
查看次数

是否可以在 GitHub Actions 中定义主机映射?

现在我正在使用 GitHub Actions 来构建我的项目。在我的本地计算机上,我定义本地主机地址映射如下/etc/hosts

11.19.178.213 postgres.dolphin.com
Run Code Online (Sandbox Code Playgroud)

在我的数据库配置中,如下所示:

spring.datasource.druid.post.master.jdbc-url = jdbc:postgresql://postgres.dolphin.com:5432/dolphin
Run Code Online (Sandbox Code Playgroud)

在我的生产服务器上,我可以编辑映射来定位数据库的不同 IP 地址。但现在我正在 GitHub Actions 中运行单元测试。如何编辑主机映射以使数据库映射到 GitHub Actions 的容器?我在 GitHub Actions 中定义了容器,如下所示:

jobs:
  build:
    runs-on: ubuntu-latest
    services:
      postgres:
        image: postgres:13.2
        env:
          POSTGRES_PASSWORD: postgrespassword
          POSTGRES_DB: dolphin
          POSTGRES_USER: postgres
        ports:
          - 5432:5432
        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5
Run Code Online (Sandbox Code Playgroud)

我应该如何处理主机映射?我已经搜索过文档,但没有发现任何有关此问题的信息?

github-actions

12
推荐指数
1
解决办法
4567
查看次数

文件未使用“-s”进行“gofmt”编辑:为什么会发生这种情况以及如何解决?

每次我们在存储库上打开或更新拉取请求时,我们都会使用 linter(适用于 Golang)来运行 Github Actions 工作流程。

它最近开始返回以下错误

File is not `gofmt`-ed with `-s` (gofmt)

在该文件的其他 PR中发生的事情之后pkg/api/api/go
(编辑:添加链接以评估并最终重现错误)

证据:

原始提交

短绒输出

我想了解这个错误的根源是什么,以及如何解决它?

go gofmt linter github-actions

12
推荐指数
2
解决办法
4万
查看次数