When I push some code to master, one workflow file runs. This file builds the artifacts and pushes the code to another branch production.
Another workflow file, which looks like the following, is set to run when any push happens to production.
name: Deploy
on:
push:
branches:
- production
jobs:
# Do something
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
But this workflow file is never run. I expect that when the workflow file, listening to push event on master, is done, this file should run as the previous file pushes code to production
branch. How do I make sure that this happens?
You need to use a personal access token (PAT) for pushing the code in your workflow instead of the default GITHUB_TOKEN
:
Note: You cannot trigger new workflow runs using the
GITHUB_TOKEN
For example, if a workflow run pushes code using the repository's
GITHUB_TOKEN
, a new workflow will not run even when the repository contains a workflow configured to run whenpush
events occur.
If you would like to trigger a workflow from a workflow run, you can trigger the event using a personal access token. You'll need to create a personal access token and store it as a secret.
name: Push to master
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
# the checkout action persists the passed credentials by default
# subsequent git commands will pick them up automatically
- uses: actions/checkout@v2
with:
token: ${{secrets.PAT}}
- run: |
# do something
git push