标签: github-actions

如何在 GitHub Actions 中从 /home/runner/XXXXX 检索文件

我正在尝试使用 GitHub Actions 构建 Maven 项目,作业运行后,我收到消息

各个测试结果请参阅/home/runner/work/testDemoAPI/testDemoAPI/mymeeave/target/surefire-reports。

您知道如何从中检索数据吗/home/runner/work/xxxxx

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v1
    - name: Set up JDK 1.8
      uses: actions/setup-java@v1
      with:
        java-version: 1.8
    - name: Build with Maven
      run:  mvn clean test
Run Code Online (Sandbox Code Playgroud)

github-actions

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

GitHub Actions:在作业之间共享常见操作

Travis CI切换到GitHub Actions时,我想知道是否有一种方法可以在作业之间共享通用步骤。对于一个项目,我需要每个作业从 3 个操作开始:检查存储库代码、安装 Node.js v12、从缓存中恢复 node_modules(如果可用)。实际上,我为每个作业添加了这 3 个操作,虽然有效,但有点冗长。有没有办法说:“每个作业必须首先运行这些操作”或类似的话?

name: ci
on: [push, workflow_dispatch]

jobs:
  setup:
    runs-on: ubuntu-latest
    steps:
      - name: Check out repository code
        uses: actions/checkout@v2

      - name: Setup node
        uses: actions/setup-node@v2
        with:
          node-version: '12'

      - name: Cache node_modules
        id: cache-node-modules
        uses: actions/cache@v2
        with:
          path: node_modules
          key: node-modules-${{ hashFiles('package-lock.json') }}

      - name: Install dependencies
        run: npm install

  test_mysql:
    runs-on: ubuntu-latest
    needs: setup
    steps:
      - name: Check out repository code
        uses: actions/checkout@v2

      - name: Setup …
Run Code Online (Sandbox Code Playgroud)

continuous-integration github travis-ci github-actions

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

将变量从 Github Action 传递到 Docker 镜像构建

我一直致力于设置 Github Actions 工作流程来构建 docker 映像。我需要将环境变量传递到图像中,以便我的 Django 项目能够正确运行。不幸的是,当我构建图像时,它没有收到变量的值。

我的工作流程文件的相关部分:

     - name: Build, tag, and push image to AWS ECR
    id: build-image
    env:
      ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
      IMAGE_TAG: ${{ github.sha }}
      aws_ses_access_key_id: ${{ secrets.AWS_SES_ACCESS_KEY_ID }}
      aws_ses_secret_access_key: ${{ secrets.AWS_SES_SECRET_ACCESS_KEY }}
      DATABASE_ENGINE: ${{ secrets.DATABASE_ENGINE }}
      db_host: ${{ secrets.DB_HOST }}
      db_password: ${{ secrets.DB_PASSWORD }}
      db_port: ${{ secrets.DB_PORT }}
      db_username: ${{ secrets.DB_USERNAME }}
      django_secret_key: ${{ secrets.DJANGO_SECRET_KEY }}
      fcm_server_key: ${{ secrets.FCM_SERVER_KEY }}
    run: |
      docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
      docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
      echo "image=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" >> $GITHUB_ENV …
Run Code Online (Sandbox Code Playgroud)

dockerfile github-actions

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

Github Actions:为什么 shell 脚本中的中间命令失败会导致整个步骤失败?

我在 Github Actions 工作中有一个步骤:

      - name: Check for changes
        run: |
          diff=$( git diff --name-only 'origin/main' )
          changed_files=$( echo $diff | grep -c src/my_folder ) # this fails

          # more script lines
          # that are unrelated
Run Code Online (Sandbox Code Playgroud)

Error: Process completed with exit code 1. 仅当 grep 找不到任何内容时才会失败。如果 中有匹配项$diff,则此步骤按预期进行。但当然它也需要在没有匹配的情况下工作。

我可以在本地或在脚本内运行它,没有问题,退出代码总是0(在 Mac 上)。

我不明白问题是什么。经过几个小时的反复试验和研究,我了解到这grep在 Github 操作中显然很棘手,但我没有找到任何提示或适当的文档,我应该如何解决这个确切的情况。

如果我将失败的线路更改为

echo $( echo $diff | grep -c src/my_folder ) # this works and prints out the result
Run Code Online (Sandbox Code Playgroud)

这可以毫无问题地执行。

但是,即使没有发现任何结果,如何将 …

bash continuous-integration grep github-actions

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

当我尝试从 ghcr.io 提取图像时,为什么会收到“来自守护程序的错误响应:被拒绝”

我有两个存储库。A和B。

在 A 里面,我有一个 docker 镜像。假设它的名字是ghcr.io/org/a

在 B 内部,我有一个想要使用这个包的操作。两个存储库都是私有的。

这是我的操作代码:

    - name: Log in to GitHub Container Repository
    run: |
      echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
    - name: Pull the image
    run: |
      docker pull ghcr.io/org/a:latest    
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我首先登录 ghcr.io 并收到消息Login succeeded。然后我想从我的其他存储库中提取图像。

但我收到这个错误:

来自守护程序的错误响应:被拒绝

但是,当我从自己的计算机登录 ghcr.io 时,我可以访问这两个存储库,并且可以从我的任何私有存储库中提取任何图像。

为什么B的GitHub Action登录后无法从A拉取镜像?

github-actions

9
推荐指数
3
解决办法
7544
查看次数

Github 包已成功发布,但未显示在“Packages”部分中

我有一个包发布到了 Github 包存储库并且成功了,但我仍然无法在包部分看到这个包

https://i.stack.imgur.com/WV7fr.jpg

https://i.stack.imgur.com/kGOFG.png

请参考所附截图,可见npm publish成功。我可能会错过什么?

github github-actions github-packages

9
推荐指数
3
解决办法
5994
查看次数

Docker 推送“缺少映像名称”-从 Github Actions 推送到 GCP Artifact Registry 时出错

我正在 Github 上运行google-github-actions/deploy-cloudrun操作,在尝试将 docker 映像推送到 Artifact Registry 时失败

  1. 我通过身份池进行身份验证
  2. docker镜像构建成功
  3. 但是,将图像推送Google Artifact Registry失败name invalid: Missing image name. Pushes should be of the form docker push HOST-NAME/PROJECT-ID/REPOSITORY/IMAGE

Github 操作 YML

# Authenticate Docker to Google Cloud Artifact Registry
  - name: Docker Auth
    id: docker-auth
    uses: 'docker/login-action@v1'
    with:
      username: 'oauth2accesstoken'
      password: '${{ steps.auth.outputs.access_token }}'
      registry: '${{ env.GAR_LOCATION }}-docker.pkg.dev'

  - name: Build and Push Container
    run: |-
      docker build -t "${{ env.GAR_LOCATION }}-docker.pkg.dev/${{ env.PROJECT_ID }}/${{ env.SERVICE …
Run Code Online (Sandbox Code Playgroud)

docker google-cloud-platform github-actions google-artifact-registry

9
推荐指数
2
解决办法
3101
查看次数

GitHub Actions:在矩阵定义中使用变量?

我在 GitHub Action 配置中有以下代码:

name: Build & Tests

on:
  pull_request:

env:
  CARGO_TERM_COLOR: always
  ZEROCOPY_MSRV: 1.61.0
  ZEROCOPY_CURRENT_STABLE: 1.64.0
  ZEROCOPY_CURRENT_NIGHTLY: nightly-2022-09-26

jobs:
  build_test:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        # See `INTERNAL.md` for an explanation of these pinned toolchain
        # versions.
        channel: [ ${{ env.ZEROCOPY_MSRV }}, ${{ env.ZEROCOPY_CURRENT_STABLE }}, ${{ env.ZEROCOPY_CURRENT_NIGHTLY }} ]
        target: [ "i686-unknown-linux-gnu", "x86_64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "aarch64-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "powerpc64-unknown-linux-gnu", "wasm32-wasi" ]
        features: [ "" , "alloc,simd", "alloc,simd,simd-nightly" ]
        exclude:
          # Exclude any combination which uses a non-nightly toolchain but
          # enables nightly …
Run Code Online (Sandbox Code Playgroud)

variables continuous-integration environment-variables github-actions

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

Github:使用细粒度令牌推送到受保护的分支

我在Github 存储库中使用语义发布来创建推送时的自动发布。该版本需要将 package.json 和 CHANGELOG.md 提交到我的受保护分支。

我曾经从我的管理员帐户提供个人令牌,以允许语义发布推送到受保护的分支。为了提高安全性,我想通过新的细粒度token来替代PT 。因此,我使用与旧 PT 相同的管理员帐户创建了一个细粒度 PT,并授予其内容写入权限。不幸的是,这似乎不足以推送到受保护的分支。 在此输入图像描述

知道可能需要哪些许可吗?

更新:不确定这是否受到支持。我在细粒度个人代币反馈讨论中发布了这个问题

semantic-release github-actions github-fine-grained-tokens protected-branches

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

如何确定 GitHub 操作是否在启用“调试日志记录”的情况下运行

我正在用 Python 编写一个基于 Docker 的 GitHub 操作。如果在某个时候它失败并且用户选择在启用调试日志记录的情况
下重新运行它,我想在其输出中添加更多详细信息。

所以我的问题是:是否可以从动作内部确定它?也许某些环境变量是自动设置的 - 或者可以在 中手动设置action.yml,或者类似的东西?

github github-actions building-github-actions github-actions-workflows

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