我想向我的 GitHub Action 工作流程添加一个条件。每当完成git push -forgit push --force而不是正常的git push. 这可能吗?
我正在尝试创建一个输出以供稍后在工作中使用。
但是,由于某种原因,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) 我正在使用 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
我目前有一个 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)
是否可以使用它来在操作上下文中对拉取请求进行所有文件更改?
任何对此的帮助将不胜感激!
我正在创建两个共享许多功能的 flutter 应用程序,并决定创建一个单独的包供两者使用。
以下是目录结构
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这个词重复了两次,导致错误的目录并使整个过程失败。
我该如何解决这个问题?
我们的GitHub Actions 工作流程由 3 个作业组成:
provision-eks-with-pulumi:配置AWS EKS集群(此处使用Pulumi)install-and-run-argocd-on-ekskubeconfig:使用作业1安装和配置 ArgoCD 。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 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) 我正在使用 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 操作对每个 PR 运行测试。
我的 Github 存储库结构是
根目录
在这种情况下,我只想测试 Java 模块。
我不想将存储库创建为多模块项目
原因是它要与其他语言结合使用,所以存储库看起来像是基于Java的不太好。
无论如何,按子目录运行 Java 测试
我是否必须将该目录写入工作流程文件才能运行它?
是否可以动态查找并执行基于 Java 的目录?
(基于 Java 的目录可能带有“Java-”前缀)
我用 GitHub 动作工作流设置矩阵 目录描述进行了测试。
我想在Github Action中动态目录Testing
我在 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)