Ibrahim
Ibrahim

Reputation: 1471

Github action to lint after commit in previous step

I'm setting up Github action to lint the OpenAPI Spec using Spectral. Before linting, I would like to generate the single file spec and commit it.

I have set up a workflow that will first build and then lint. But the problem is, the lint is not considering the commit made by Github action in the previous step. It always lint for the commit that triggered this action. Is there any way to lint with the commit made as part of Github action?

enter image description here

You can see from the above image that Github workflow didn't run for the commit made by Github action.

Workflow file:

name: Run Spectral

on:
  - pull_request

jobs:
  build:
    name: Build Spec
    runs-on: ubuntu-latest

    steps:
      - name: Checkout Repository
        uses: actions/checkout@v2
      - name: Set up Node.js
        uses: actions/setup-node@v1
        with:
          node-version: 12.x
      - name: Install dependencies
        run: npm install
      - name: Build spec file
        run: npm run build
      - name: Commit build changes
        uses: EndBug/add-and-commit@v7
        with:
          default_author: github_actions
          message: 'Compiled spec file'
          add: '_build/oas.yaml'

  lint:
    name: Lint
    runs-on: ubuntu-latest
    needs: build
    steps:
      - name: Checkout Repository
        uses: actions/checkout@v2
      - name: Spectral Linting
        uses: stoplightio/[email protected]
        with:
          file_glob: '_build/oas.yaml'

Upvotes: 1

Views: 998

Answers (1)

Benjamin W.
Benjamin W.

Reputation: 52326

That's because commits made using the standard GITHUB_TOKEN aren't triggering workflows; you have to use a personal access token for an automated workflow that's supposed to kick off another workflow.

Quoting from the docs (linked above):

When you use the repository's GITHUB_TOKEN to perform tasks on behalf of the GitHub Actions app, events triggered by the GITHUB_TOKEN will not create a new workflow run. This prevents you from accidentally creating recursive workflow runs. [...]

If you would like to trigger a workflow from a workflow run, you can trigger the event using a personal access token. [...]

Upvotes: 3

Related Questions