标签: github-actions

是否可以在 GitHub 操作中检查 git push --force ?

我想向我的 GitHub Action 工作流程添加一个条件。每当完成git push -forgit push --force而不是正常的git push. 这可能吗?

git github github-actions

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

如何在 Github Action Shell 脚本中获取分支名称

我正在尝试创建一个输出以供稍后在工作中使用。

但是,由于某种原因,BRANCH我要使用的 env 变量GITHUB_REF_NAME是一个空字符串,根据文档,它应该是分支。

直接使用变量也会产生相同的结果。

      - name: Set Terraform Environment Variable
        id: set_tf_env
        env:
          BRANCH: ${{env.GITHUB_REF_NAME}}
        run: |
          if [ "$BRANCH" == "dev" ]; then
              run: echo "::set-output name=TF_ENV::dev"
              elif [ "$BRANCH" == "prod" ]; then
              run: echo "::set-output name=TF_ENV::prod"
          else
              echo "Branch has no environment"
              exit 1
          fi

Run Code Online (Sandbox Code Playgroud)

yaml github-actions

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

使用 monorepo 时,使用云运行的 github 操作部署特定的子文件夹

我正在使用 mono 存储库,并且我想(仅)使用 Cloud Run 服务(使用“官方” google cloud run 操作)部署我的后端。对于此操作,我需要在项目根目录中有一个 Dockerfile 来构建图像。但我的 Dockerfile 在./server.

有没有办法使用类似的working-directory步骤run?我没有从医生那里找到任何东西。

或者我是否必须在项目的根目录中有一个 Dockerfile 并且 Dockerfile 指向./server

我的项目树:

./
 .github/
   worflows/
     deploy-back.yml
  client/
    ...
  server/
    ...
    Dockerfile
Run Code Online (Sandbox Code Playgroud)
./
 .github/
   worflows/
     deploy-back.yml
  client/
    ...
  server/
    ...
    Dockerfile
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform monorepo github-actions google-cloud-run

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

在pull_request_review上触发时如何获取Pull Request的所有更改?

我目前有一个 GitHub Action 会触发:

  pull_request_review:
    types: [submitted]
Run Code Online (Sandbox Code Playgroud)

然后我想运行一个命令,该命令需要拉取请求的更改内容。

以前,我使用的是

on: 
  push
Run Code Online (Sandbox Code Playgroud)

我对操作上下文中可用的文件内容没有任何问题。

但是,我的命令现在失败了,我认为这是因为上下文仅包含触发操作的提交(没有文件更改)。以前我运行此操作push并且总是成功,文件更改可用在上下文中。

我在用着:

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

https://github.com/actions/checkout

是否可以使用它来在操作上下文中对拉取请求进行所有文件更改?

任何对此的帮助将不胜感激!

github-actions

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

Github 操作:尝试使用工作目录启动进程“/usr/bin/bash”时发生错误。没有这样的文件或目录

我正在创建两个共享许多功能的 flutter 应用程序,并决定创建一个单独的包供两者使用。

以下是目录结构

  • 我的项目
    • .github/workflows/main.yaml
    • 应用
      • 应用程序1
        • lib/main_devnet.dart
      • 应用程序2
        • lib/main_devnet.dart
      • 图形
        • 主程序.dart

graph 包中有一些代码是由 code_builder 通过运行生成的

flutter pub run build_runner build --delete-conflicting-outputs
Run Code Online (Sandbox Code Playgroud)

在我的计算机中,构建 apk 时一切正常,但我试图使用 github 操作自动化这项工作。

这是我当前的工作流程,我无法正常工作。

.github/workflows/main.yaml

flutter pub run build_runner build --delete-conflicting-outputs
Run Code Online (Sandbox Code Playgroud)

将我的代码推送到 github 时,出现以下错误,导致 CI​​ 失败:

Run flutter pub get
  flutter pub get
  shell: /usr/bin/bash -e {0}
Error: An error occurred trying to start process '/usr/bin/bash' with working directory '/home/runner/work/my-app-repository/my-app-repository/./apps/app2/'. No such file or directory
Run Code Online (Sandbox Code Playgroud)

我认为问题在于使用矩阵定义工作目录,正如您在错误中看到的那样, my-app-repositorymy-app-repository/my-app-repository这个词重复了两次,导致错误的目录并使整个过程失败。

我该如何解决这个问题?

flutter github-actions

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

将 GitHub Actions 作业的变量共享到多个后续作业,同时保留特定顺序

我们的GitHub Actions 工作流程由 3 个作业组成:

  1. provision-eks-with-pulumi:配置AWS EKS集群(此处使用Pulumi)
  2. install-and-run-argocd-on-ekskubeconfig:使用作业1安装和配置 ArgoCD 。
  3. install-and-run-tekton-on-ekskubeconfig:使用作业1安装和运行 Tekton ,但取决于作业 2。

我们已经知道这个答案文档,并使用它jobs.<jobs_id>.outputs来定义作业 1 中的变量,并jobs.<job_id>.needs.在后续作业中使用该变量。但它只适用于我们的工作 2. - 但对工作 3 失败.. 这是我们的工作流程.yml:

name: provision

on: [push]

env:
  AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
  AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
  AWS_DEFAULT_REGION: 'eu-central-1'

jobs:
  provision-eks-with-pulumi:
    runs-on: ubuntu-latest
    env:
      PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
    outputs:
      kubeconfig: ${{ steps.pulumi-up.outputs.kubeconfig }}
    steps:
      ...

      - name: Provision AWS EKS cluster …
Run Code Online (Sandbox Code Playgroud)

github github-actions

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

基于输入的多个条件的 GitHub Actions 作业

我一直在尝试在 GitHub Actions 中为作业创造条件,但似乎无法让它发挥作用

我有以下输入:

on:
  workflow_dispatch:
    inputs:
      env:
        description: 'Select the Environment'
        type: choice
        required: true
        options:
        - SIT
        - UAT
      op:
        description: 'Deploy or Delete Apps'
        type: choice
        required: true
        options:
        - Deploy
        - Delete
      ver:
        description: 'Type the app version'
        required: true
Run Code Online (Sandbox Code Playgroud)

以及以下职位:

jobs:
  create-sit-app:
    runs-on: ubuntu-latest
    name: 'Deploy App for SIT'
    if: |
      (${{ github.event.inputs.env }} == 'SIT' && ${{ github.event.inputs.op }} == 'Deploy')

    steps:
........
........
........
Run Code Online (Sandbox Code Playgroud)

我也尝试过这个

(${{ github.event.inputs.env == 'SIT' }} && ${{ …
Run Code Online (Sandbox Code Playgroud)

yaml action github-actions

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

“运行 google-github-actions/setup-gcloud@master” 上的 Github 操作错误。如何解决这个问题?

我正在使用 Github actions 将我的应用程序部署到 Google 云,它给了我以下错误 -

Run google-github-actions/setup-gcloud@master
Warning: google-github-actions/setup-gcloud is pinned at "master". We strongly advise against pinning to "@master" as it may be unstable. Please update your GitHub Action YAML from:

    uses: 'google-github-actions/setup-gcloud@master'

to:

    uses: 'google-github-actions/setup-gcloud@v0'

Alternatively, you can pin to any git tag or git SHA in the repository.
Error: On 2022-04-05, the default branch will be renamed from "master" to "main". Your action is currently pinned to "@master". Even though GitHub creates redirects for renamed …
Run Code Online (Sandbox Code Playgroud)

github github-actions

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

如何通过文件夹动态并行化 github 操作测试?

我想通过 Github 操作对每个 PR 运行测试。

我的 Github 存储库结构是

根目录

  • 子目录
    • 子目录
      • Java模块目录
  • 子目录
    • 子目录
      • Java模块目录
  • 子目录
    • 子目录
      • Java模块目录
  • ...

在这种情况下,我只想测试 Java 模块。

我不想将存储库创建为多模块项目

原因是它要与其他语言结合使用,所以存储库看起来像是基于Java的不太好。

无论如何,按子目录运行 Java 测试

我是否必须将该目录写入工作流程文件才能运行它?

是否可以动态查找并执行基于 Java 的目录?

(基于 Java 的目录可能带有“Java-”前缀)

我用 GitHub 动作工作流设置矩阵 目录描述进行了测试。

我想在Github Action中动态目录Testing

github github-actions

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

Github Actions:多个作业单一发布

我在 Github runner 上有 2 份工作。第一项工作是构建 android apk。第二个用于构建 zip 文件。我想在同一个版本中同时拥有 apk 和 zip 文件。但是,在 apk 发布到版本中后,zip 文件不会发布到版本中。显示的错误是
Validation Failed {"resource":"Release","code":"already_exists","field":"tag_name"}
buid.yml::

name: Build Process

on:
 push:
  tags:
   - v*

jobs:
 Build_Android:
if: "!contains(github.event.head_commit.message, 'skip-android')"
name: Build APK
runs-on: ubuntu-latest

steps:
  - uses: actions/checkout@v2
  - name: Setup Java
    uses: actions/setup-java@v2
    with:
      distribution: "zulu"
      java-version: "12.x"

  - name: Setup Flutter
    uses: subosito/flutter-action@v1
    with:
      channel: "stable"

  - name: Get Packages
    run: flutter pub get

  - name: Build APK
    run: flutter build apk …
Run Code Online (Sandbox Code Playgroud)

github-release github-actions

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