GitHub Action工作流程未运行

116
我有一个 GitHub action 工作流程文件位于 myrepo/.github/workflows/Build Webpage.yml 它包含了这些内容:
name: Webpage Build

on:
  push:
    branches:
      - webpage 

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: setup node
      uses: actions/setup-node@v2-beta
      with:
        node-version: '12'
    - name: install deps and predeploy
      run: |
        npm ci
        npm run predeploy
    - name: Deploy 
      uses: JamesIves/github-pages-deploy-action@3.5.2
      with:
        GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
        BRANCH: gh-pages
        FOLDER: build

当我推送到网页分支时,操作选项卡中根本没有任何反应,我无法确定是否存在语法错误或者是否有完全不正确的设置。在过去,我曾经遇到过与语法相关的错误,比如 每个步骤必须定义一个 'uses' 或 'run' 键,这对我来说表明 Github 确实认识工作流程。


1
GitHub还在抱怨语法吗? - smac89
1
不,无论我推送什么都没有发生任何事情,也没有看到任何投诉或错误。 - KieranLewin
1
如果您确定已经推送到了“webpage”分支,但工作流程仍未被触发,则需要前往官方actions community页面并提交错误报告。 - smac89
2
如果您想进一步调试它,另一个选项是将触发器更改为在计划上运行,并查看是否触发了工作流程... - smac89
6
发现混淆了基本的 Git 文件...显然我很蠢XD,只是将工作流程推送上去,现在它正在运行,所以简而言之,请确保在您想要运行的分支上设置工作流程。我记得在某个文档中看到过,但找不到了。非常感谢。 - KieranLewin
显示剩余8条评论
22个回答

7
请注意,你不能有嵌套的文件夹。例如,.github/workflows/folder-1/my_workflow.yml将无法被Github识别。在我的情况下,我不得不将其更改为.github/workflows/my_workflow.yml

5

我不小心把文件夹的名字命名为.github/workspaces,而不是.github/workflows


3

我的情况是,我的工作流程没有被触发,因为我在bash命令中使用了双引号,这破坏了yml解析。

你可以通过查看语法高亮来检查这一点。


3

如果您提交的代码是由使用存储库的GITHUB_TOKEN的另一个操作创建的,则另一个工作流程将不会运行。

您可以通过创建具有写入权限的个人访问令牌来解决此问题。

name: Push changes
    - uses: actions/checkout@v2
      with:
        token: ${{ secrets.PAT }}

2

请确保您的.yml文件在推送和拉取请求时是正确的目标。首先查看您的主分支,它是master还是main?

on: 
  push:
    branches: [ main/master ]
  pull_request:
    branches: [ main/master ]

为什么要复制两年前的已被接受的答案? - bfontaine
这将在推送到名为"main/master"的分支时触发工作流程。 - Chris Hillery

2
假设您已经检查了分支并验证了操作,但工作流程没有运行。在这种情况下,您很有可能需要从相关存储库设置(右上角)→操作(左侧导航栏)→常规→工作流权限部分中启用读写权限

GitHub repository settings enter image description here GitHub repository settings read and write permissions


1
在我的情况下,我需要在pylint分支中运行一个工作流,但是直到我将相同的工作流添加到主分支中才能正常工作。在主分支中,我添加了.github/workflows,然后是我想要运行的工作流的yml文件。
完成后,我转到pylint分支,然后在工作流程中添加了pylint分支。这样做后,每次提交后都会触发工作流程。
name: Python Notebooks Linting
on:
  push:
    branches:
      - 'main'
      - 'pylint'

1
如果仓库是新的,请确保等待5-10分钟。

1

你可能需要将新的工作流文件合并到该存储库的默认分支中。这是我能够让我的工作流(用于另一个分支)出现在 GitHub Actions 页面上的唯一方法。 在此输入图像描述


0

当我遇到这个问题时,我的.yml(工作流文件)文件中的分支不是我想要推送到的分支 - 就像 git push origin "main" - 对吧?例如,我的“main”分支是我想要推送到的地方,而在我的.yml文件(工作流文件)中却有master。我进行了更改,一切都完美地解决了!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接