无法手动触发GitHub Action

问题描述 投票:0回答:3

我最近开始在我的项目中使用一些 GitHub 操作。我可以将它们设置为自动运行,但很难让它们手动运行。我知道您需要在“on”部分中包含“workflow_dispatch”。我不确定它是否不起作用,因为我也让它自动运行。有人能告诉我我做错了什么吗?

这是我的工作流程 YAML 文件之一

name: Create-Doc-Nightly

on:  
  push:
    branches: [ "nightly" ]
    paths:
      - 'src/**'
      - 'pom.xml'
 
  workflow_dispatch:

jobs:
  doc:
    name: Create Doc
    runs-on: ubuntu-latest
    
    steps:
      - uses: actions/checkout@v3
        name: Step 1 - Checkout Nightly Branch
        with:
          persist-credentials: false
          fetch-depth: 0
      - name: Step 2 - Setup JDK 17
        uses: actions/[email protected]
        with: 
          java-version: 17
          distribution: 'temurin'
      - name: Step 3 - Remove Doc
        run: |
          git remote set-url origin https://jnstockley:${{ secrets.TOKEN }}@github.com/jnstockley/BTTN.git
          git config user.email "[email protected]"
          git config --local user.name "Jack Stockley"
          git rm -r docs
          git commit -m "Removed Docs"
          git push origin nightly
      - name: Step 4 - Create Doc
        run: mvn dokka:dokka -f pom.xml
      - name: Step 5 - Move Docs
        run: |
           rm -rf docs
           mkdir -p docs
           mv target/dokka/* docs
      - name: Step 6 - Publish docs
        run: |
          git remote set-url origin https://jnstockley:${{ secrets.TOKEN }}@github.com/jnstockley/BTTN.git
          git config user.email "[email protected]"
          git config --local user.name "Jack Stockley"
          git add -f docs
          git commit -m "Updated Docs"
          git push origin nightly

链接到 GitHub 存储库,每晚分支:https://github.com/jnstockley/BTTN/tree/nightly

github yaml github-actions
3个回答
1
投票

工作流程必须位于您的默认分支上才能使用

workflow_dispatch

我相信在你的情况下它只在分支

nightly
上,而它也应该在
main
上。


1
投票

要手动触发工作流程,请使用workflow_dispatch事件。您可以使用 GitHub API、GitHub CLI 或 GitHub 浏览器界面手动触发工作流运行。有关更多信息,请参阅手动运行工作流程

on: workflow_dispatch

提供意见

您可以直接在工作流程中配置自定义输入属性、默认输入值以及事件所需的输入。当您触发事件时,您可以提供引用和任何输入。当工作流运行时,您可以访问输入上下文中的输入值。有关更多信息,请参阅上下文

此示例定义了名为

logLevel
tags
environment
的输入。运行工作流时,您可以将这些输入的值传递给工作流。然后,此工作流程使用
inputs.logLevel
inputs.tags
inputs.environment
上下文属性将值打印到日志。

yaml

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 }}

如果您从浏览器运行此工作流程,则必须在工作流程运行之前手动输入所需输入的值。

enter image description here

您可能喜欢以下文档链接

workflow_dispatch

github 文档 - 触发工作流程的事件


0
投票

简单的例子。

on:
  workflow_dispatch: null
  push:
    branches:
      - main
    paths:
      - 'apt.txt'
© www.soinside.com 2019 - 2024. All rights reserved.