我正在为项目存储库设置Github操作。
工作流由以下步骤组成:
但是,我有两个不同的Kubernetes部署:一个用于开发,一个用于生产。因此,我还有两个Github工作流。
每次推送提交时,都会触发Github用于开发的工作流程:
on:
push:
branches:
- master但我不想因为我的生产流程而这么做。我需要一个手动触发器,比如发送到生产按钮。我在文件里没有看到任何接近那个的东西。
是否有一种方法可以在Github操作中手动触发工作流?
如何将我的开发和生产工作流分开以实现我想要的结果,无论是在Github操作、Docker还是Kubernetes上?
发布于 2020-07-07 04:35:27
是否有一种方式来手动触发一个工作流程中的Github动作?
你可以考虑一下,来自July2020
GitHub操作:使用workflow_dispatch的手动触发器
(注:或多个工作流,通过新的复合运行步骤,2020年8月)
现在,您可以创建使用新的
workflow_dispatch事件手动触发的工作流。 然后,您将在Actions选项卡上看到一个“Run workflow”按钮,使您能够轻松地触发运行。

您可以选择在哪个分支上运行工作流。
文档中没有提到的一点是:工作流必须存在于默认分支中,才能显示"
Run workflow“按钮。 一旦将其添加到那里,就可以继续在它自己的分支上开发操作,这些更改将在使用按钮运行时生效。
这些文件继续下去:
此外,您还可以选择指定输入,这些输入将在UI中以表单元素的形式呈现。工作流调度输入以与动作输入相同的格式指定。 例如:
on:
workflow_dispatch:
inputs:
logLevel:
description: 'Log level'
required: true
default: 'warning'
tags:
description: 'Test scenario tags' 触发的工作流在
github.event上下文中接收输入。 例如:
jobs:
printInputs:
runs-on: ubuntu-latest
steps:
- run: |
echo "Log level: ${{ github.event.inputs.logLevel }}"
echo "Tags: ${{ github.event.inputs.tags }}" 您可以将
workflow_dispatch添加到具有其他触发器(如on push和/或schedule)的工作流中。 例如: on: workflow_dispatch: push:分支:- master pull_request: type: opened,同步,重新打开
发布于 2019-11-21 00:16:42
编辑的:
解释工作流调度使用的伟大推特:https://twitter.com/github/status/1321859709075394563?s=19
是否有一种方式来手动触发一个工作流程中的Github动作?
我有个小问题要做.
通过观看事件,您可以手动触发由星体或非星体的回购操作。工作流中事件的代码是:
on:
watch
types: [started]我知道这很奇怪但很管用!尽管如此,这并不是最好的方式,如果它是一个潜在的明星公共回购。
我如何将我的开发和生产工作流程分开来实现我想要的结果,无论是在Github操作、Docker还是Kubernetes上?
在Github操作中,您可以执行多个工作流/作业,并通过目标分支或事件进行筛选。您可以组合多个事件,例如触发用于push的工作流,并在午夜使用cron。
发布于 2019-11-19 14:42:14
更新:有关斜杠命令样式"ChatOps“解决方案,请参见斜杠-命令-调度操作。这允许您使用从发出和拉出请求注释的斜杠命令(例如/deploy)触发工作流。
下面是一个deploy斜杠命令的基本示例。REPO_ACCESS_TOKEN是一个repo作用域个人存取令牌
name: Slash Command Dispatch
on:
issue_comment:
types: [created]
jobs:
slashCommandDispatch:
runs-on: ubuntu-latest
steps:
- name: Slash Command Dispatch
uses: peter-evans/slash-command-dispatch@v1
with:
token: ${{ secrets.REPO_ACCESS_TOKEN }}
commands: deploy该命令可以在此工作流中处理。
name: Deploy Command
on:
repository_dispatch:
types: [deploy-command]有更多的选择和不同的设置。有关完整使用说明,请参见斜杠-命令-调度。
原始答案:对GitHub API的调用可以手动触发repository_dispatch工作流,如下所示。
on:
repository_dispatch:
types: [production-deploy][username]是一个GitHub用户名[token]是一个repo作用域个人存取令牌[repository]是工作流所在的存储库的名称。curl -XPOST -u "[username]:[token]" \
-H "Accept: application/vnd.github.everest-preview+json" \
-H "Content-Type: application/json" \
https://api.github.com/repos/[username]/[repository]/dispatches \
--data '{"event_type": "production-deploy"}'https://stackoverflow.com/questions/58933155
复制相似问题