标签: github-actions

如何在 GitHub Action 中使用 GitHub cli (gh) 通过 Github 进行身份验证并创建 PR?

在 GitHub 操作中,我使用脚本创建一个文件。然后我可以使用 git 创建一个分支,添加文件,提交文件并将分支推送到存储库。全部使用git。

然后我想在我的操作中创建 PR,因此我使用 GH CLI。在我的步骤中,这是与 PR 相关的部分:

echo "GH CLI Auth"
gh auth login --with-token < ${{ secrets.GITHUB_TOKEN }}
echo "Create PR"
gh pr create --reviewer myhandle --title "Show Notes ${{ env.NEWFILE_PATH }}" --body "Show Notes ${{ env.NEWFILE_PATH }}"
Run Code Online (Sandbox Code Playgroud)

但我收到错误。

GH CLI Auth
/home/runner/work/_temp/<GUID_CENSORED>.sh: line 13: ***: No such file or directory
Error: Process completed with exit code 1.
Run Code Online (Sandbox Code Playgroud)

我授予 GitHub 令牌对代码和拉取请求的写入权限。

permissions:
  contents: write
  pull-requests: write
Run Code Online (Sandbox Code Playgroud)

我很困惑。谢谢您的帮助!

github-actions github-cli

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

有没有办法通过提交消息值触发特定的 Github 操作工作流程?

有没有办法通过提交消息值触发特定的 Github 操作工作流程?例如,如果我使用提交消息“smoke_test”进行推送,则只有(一个特定工作流程)烟雾测试工作流程应从一组工作流程中触发。请帮忙,谢谢!

workflow triggers commit github-actions

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

用于 github 操作的 Google 服务 json 文件?

我目前正在开发一个 android 项目,我使用 github action 来测试该项目。但每当构建时,都会因找不到文件而出现错误google-services.json

产生的错误如下

File google-services.json is missing. The Google Services Plugin cannot function without it.
Run Code Online (Sandbox Code Playgroud)

现在,我不想google-services.json在 github 上提交或上传文件。那么,有没有其他方法可以解决这个问题呢?

linux android firebase github-actions github-cli

8
推荐指数
2
解决办法
4063
查看次数

如何在 GitHub 工作流程中重用 gradle 缓存

我试图将 gradle 缓存保留在我的 GitHub 工作流程中,但它不起作用。我是 gradle 新手,正在努力找出如何/为什么无法在项目的工作流程构建之间保留 gradle 缓存

在我的 GitHub工作流程文件中,我有两个 gradle 缓存。一个是 gradle 缓存,另一个是 gradle 包装器:

      - name: Setup Gradle Dependencies Cache
        uses: actions/cache@v2
        with:
          path: ~/.gradle/caches
          key: ${{ runner.os }}-gradle-caches-${{ hashFiles('**/*.gradle', '**/*.gradle.kts') }}
      - name: Setup Gradle Wrapper Cache
        uses: actions/cache@v2
        with:
          path: ~/.gradle/wrapper
          key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}
Run Code Online (Sandbox Code Playgroud)

本地 a./gradlew clean后跟 a./gradlew build将在大约 33 秒内构建我的项目...在 GitHub 上,需要 3 倍的时间(?):https://github.com/jactor-rises/jactor-persistence/runs/4794532441 ?check_suite_focus =真

如何在 GitHub 工作流程中设置有效的依赖项和包装器缓存?

gradle github-actions

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

docker 在 GitHub 操作中构建网络

因此,我正在尝试复制一个用于设置我在本地运行良好的 docker 堆栈的流程,在 Github 操作中在尽可能接近生产/现实世界的场景下执行一些测试。

但是,我在 GitHub 操作工作流程上遇到以下问题,导致失败:

psycopg2.OperationalError: could not translate host name "db" to address: Temporary failure in name resolution
Run Code Online (Sandbox Code Playgroud)

本质上,在本地网络中有效的方法在 Github 操作中不起作用。唯一看起来不同的可能是我在 Github 操作中使用的 docker 版本。

这是我的workflow/ci.yml文件:

psycopg2.OperationalError: could not translate host name "db" to address: Temporary failure in name resolution
Run Code Online (Sandbox Code Playgroud)

本质上,所有步骤都在进行,直到服务需要通过网络与服务api进行通信,例如,dbdb:5432

我的local.yml文件如下:

version: '3.8'

services:
  traefik:
    image: traefik:latest
    container_name: traefik_proxy
    restart: always
    security_opt:
      - no-new-privileges:true
    command:
        ## API Settings - https://docs.traefik.io/operations/api/, endpoints - https://docs.traefik.io/operations/api/#endpoints ##
        - --api.insecure=true # <== Enabling …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose github-actions

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

在不同作业之间共享缓存

我在同一个 GitHub Actions 工作流程中有两项工作。第一个文件创建一个文件,第二个文件期望在第一个文件创建的同一目录中找到该文件。

我想我可以actions/cache@v3像这样使用它:

jobs:
  job1:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - uses: actions/cache@v3
        with:
          path: some_dir/my_file
          key: my_file

      ... (create the file)

  job2:
    needs: job1
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - uses: actions/cache@v3
        with:
          path: some_dir/my_file
          key: my_file

      ... (use the file)
Run Code Online (Sandbox Code Playgroud)

GitHub Action 表示缓存已在 中成功恢复job2,但是,在job2我无法my_file在我期望的目录中找到它。问题是什么?

continuous-integration caching github github-actions

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

如何使用 GitHub Actions 从另一个工作流程触发一个工作流程?

我想从文件中读取版本并v11.0.5.1.aws使用工作流程创建标签。然后我想在 docker 镜像中使用该标签。为此,我创建了一个分支作为 devops。

首先创建一个 VERSION 文件作为

1.1.3 20 Apr, 2022
Run Code Online (Sandbox Code Playgroud)

创建了一个工作流程作为release-version.yml

name: Release Version
on:
  push:
    branches:
      - devops
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@master
    - name: Bump version and push tag
    uses: melheffe/version_release_composer@master
    env:
      PREPEND: 'v'
      APPEND: '.aws' # must include '.' or it will append without separation
      DRAFT: 'false'
      PRERELEASE: 'true'
      TOKEN: ${{ secrets.AUTH_TOKEN }}
      TRIGGER: ${{ github.event.pull_request.base.ref }} # can use the triggering branch or define a     fixed one like this: 'master' …
Run Code Online (Sandbox Code Playgroud)

version-control git-tag github-actions

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

如何在 GitHub 中查看逐行代码覆盖率?

我有一个 Node.js 项目,其中包括 Istanbul,一个可以生成代码覆盖率报告的工具。我想查看该项目的 GitHub Pull 请求中的测试未涵盖哪些行以及哪些行已涵盖。

伊斯坦布尔允许我在目录中本地查看覆盖范围coverage/lcov-report,但我希望在 GitHub 中的拉取请求的“文件已更改”选项卡中看到此内容。

有一些工具可以提供可视化的逐行覆盖:

CodeCov 会执行此操作,但要求我将覆盖率报告上传到他们的服务器。

Covaralls也这样做,但要求您授予他们访问您的存储库的权限。 工作服视觉测试覆盖范围

Jest覆盖率报告使用GitHub操作添加注释,但无法添加逐行测试覆盖率的视觉指示(例如突出显示)。

在此输入图像描述

有没有其他方法可以在 GitHub Pull Request 中可视化逐行测试覆盖率?

github github-actions

8
推荐指数
0
解决办法
1457
查看次数

如何在 GitHub Actions 上安装 docker

在 GitHub Actions 上安装 Docker 的官方/推荐方式是什么?

特别是,我需要在 GitHub Actions 上运行自定义脚本,除其他任务外,该脚本还调用docker builddocker push.

我不想要构建/推送的预制操作,我想要访问该docker命令。

我应该怎么办?

我能找到的唯一官方操作使用 Docker Buildx 而不是普通的 docker:https://github.com/marketplace/actions/build-and-push-docker-images

除此之外,我可以找到此操作(https://github.com/marketplace/actions/setup-docker),但我不知道我是否可以信任该来源,因为它不是官方的。

有什么建议吗?如何docker在 GitHub Actions 上安装该命令?

docker github-actions cicd

8
推荐指数
0
解决办法
8118
查看次数

Github Action 避免在同一工作流程中批准同一环境规则

在同一工作流程中重用相同的环境规则

在 Github 中运行我们的工作流程,我们将任务分为 2 个作业;使用 CodeDeploy 构建 docker 映像并附加标签并部署到 AWS。拆分任务的原因是为了避免在部署失败时创建新标签。

然而......使用环境保护规则会造成障碍,因为每项工作都需要获得批准(即使我们之前已经运行过相同的环境)

部署作业是一个有条件的作业,这意味着它取决于构建作业的成功。

有什么办法可以解决这个问题吗?

Github 工作流程

environment github github-actions

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