我正在尝试使用 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) 从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) 我一直致力于设置 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) 我在 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)
这可以毫无问题地执行。
但是,即使没有发现任何结果,如何将 …
我有两个存储库。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 包存储库并且成功了,但我仍然无法在包部分看到这个包
https://i.stack.imgur.com/WV7fr.jpg
https://i.stack.imgur.com/kGOFG.png
请参考所附截图,可见npm publish成功。我可能会错过什么?
我正在 Github 上运行google-github-actions/deploy-cloudrun操作,在尝试将 docker 映像推送到 Artifact Registry 时失败。
Google Artifact Registry失败name invalid: Missing image name. Pushes should be of the form docker push HOST-NAME/PROJECT-ID/REPOSITORY/IMAGEGithub 操作 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
我在 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
我在Github 存储库中使用语义发布来创建推送时的自动发布。该版本需要将 package.json 和 CHANGELOG.md 提交到我的受保护分支。
我曾经从我的管理员帐户提供个人令牌,以允许语义发布推送到受保护的分支。为了提高安全性,我想通过新的细粒度token来替代PT 。因此,我使用与旧 PT 相同的管理员帐户创建了一个细粒度 PT,并授予其内容写入权限。不幸的是,这似乎不足以推送到受保护的分支。

知道可能需要哪些许可吗?
更新:不确定这是否受到支持。我在细粒度个人代币反馈讨论中发布了这个问题
semantic-release github-actions github-fine-grained-tokens protected-branches
我正在用 Python 编写一个基于 Docker 的 GitHub 操作。如果在某个时候它失败并且用户选择在启用调试日志记录的情况
下重新运行它,我想在其输出中添加更多详细信息。
所以我的问题是:是否可以从动作内部确定它?也许某些环境变量是自动设置的 - 或者可以在 中手动设置action.yml,或者类似的东西?
github github-actions building-github-actions github-actions-workflows
github-actions ×10
github ×3
bash ×1
docker ×1
dockerfile ×1
grep ×1
travis-ci ×1
variables ×1