[英]GitHub Actions: Must have admin rights to trigger workflow_dispatch?
[英]use selected branch on workflow_dispatch in github actions
大家好,我正在構建 Github 操作工作流以使用主分支和開發分支。 我知道我可以通過重用下面的操作來檢查分支,但是我實際上如何從手動 workflow_dispatch 下拉列表中傳遞變量?
uses: actions/checkout@v2
with:
ref: develop
由於工作流只能在默認分支中創建,唯一的解決方法是創建重用核心工作流並將分支作為參數傳遞的觸發工作流。
更新這是主(生產)分支的代碼
name: Trigger ECR deploy
on:
release:
types: [published]
workflow_dispatch:
jobs:
deploy-terraform:
uses: <reusable-workflow-path>
with:
AWS_REGION: "ap-south-1"
ECR_REPOSITORY: "repo-name-here"
BRANCH: "master"
secrets:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
這是另一個用於暫存環境的文件
name: Trigger ECR deploy
on:
release:
types: [published]
workflow_dispatch:
jobs:
deploy-terraform:
uses: <reusable-workflow-url>
with:
AWS_REGION: "ap-south-1"
ECR_REPOSITORY: "repo-name-here"
BRANCH: "develop"
ENVIRONMENT: "staging"
secrets:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
這兩個文件目前都在 master 分支中。 我在開發分支中重新創建了暫存文件(我保持文件名相同)。 但是,當我 go 觸發工作流時,我仍然會收到此錯誤,如屏幕截圖所示。 我傳遞給可重用工作流的參數就像一種解決方法。
您能否確認您的工作流程文件位於.github/workflows/<workflow.yml>
中?
此外,要回答有關在 GUI 中顯示變量輸入的原始問題,您需要在on.workflow_dispactch
部分中定義變量( https://docs.github.com/en/actions/using-workflows/events -that-trigger-workflows#workflow_dispatch ):
name: Trigger ECR deploy
on:
release:
types: [published]
workflow_dispatch:
inputs:
AWS_REGION:
description: 'AWS Region to deploy in'
required: true
default: 'ap-south-1'
type: choice
options:
- ap-south-1
- ap-south-2
- ....
ECR_REPO:
description: 'ECR repository'
required: true
type: string
BRANCH:
description: 'Branch to use'
required: true
default: 'master'
type: choice
options:
- master
- develop
jobs:
deploy-terraform:
uses: <reusable-workflow-path>
with:
AWS_REGION: ${{ inputs.AWS_REGION }}
ECR_REPOSITORY: ${{ inputs.ECR_REPO }}
BRANCH: ${{ inputs.BRANCH }}
secrets:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
您可以使用以下方法進行檢查。
on:
workflow_dispatch:
inputs:
logLevel:
description: 'Log level'
required: true
default: 'warning'
type: choice
options:
- info
- warning
- debug
tags:
description: 'Test scenario tags'
required: false
type: boolean
environment:
description: 'Environment to run tests against'
type: environment
required: true
jobs:
log-the-inputs:
runs-on: ubuntu-latest
steps:
- run: |
echo "Log level: $LEVEL"
echo "Tags: $TAGS"
echo "Environment: $ENVIRONMENT"
env:
LEVEL: ${{ inputs.logLevel }}
TAGS: ${{ inputs.tags }}
ENVIRONMENT: ${{ inputs.environment }}
這個問題前段時間已經解決了。 正如 GuiFalourd 爵士在評論中提到的那樣,文件確實應該在兩個分支中都可以訪問。 我不能確切地說為什么這不起作用,但我意識到要允許工作流在 staging 和 prod 分支中正確地轉到 function 並且不會在合並時導致覆蓋(除非我們忽略它),我需要創建一個通用工作流,它允許有條件的運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.