mirror of https://github.com/zulip/zulip.git
42 lines
1.4 KiB
YAML
42 lines
1.4 KiB
YAML
name: Cancel Previous Runs
|
|
on: [push, pull_request]
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
jobs:
|
|
cancel:
|
|
name: Cancel Previous Runs
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 3
|
|
|
|
# Don't run this job for zulip/zulip pushes since we
|
|
# want to run those jobs.
|
|
if: ${{ github.event_name != 'push' || github.event.repository.full_name != 'zulip/zulip' }}
|
|
|
|
steps:
|
|
# We get workflow IDs from GitHub API so we don't have to maintain
|
|
# a hard-coded list of IDs which need to be updated when a workflow
|
|
# is added or removed. And, workflow IDs are different for other forks
|
|
# so this is required.
|
|
- name: Get workflow IDs.
|
|
id: workflow_ids
|
|
env:
|
|
# This is in <owner>/<repo> format e.g. zulip/zulip
|
|
REPOSITORY: ${{ github.repository }}
|
|
run: |
|
|
workflow_api_url=https://api.github.com/repos/$REPOSITORY/actions/workflows
|
|
curl $workflow_api_url -o workflows.json
|
|
|
|
script="const {workflows} = require('./workflows'); \
|
|
const ids = workflows.map(workflow => workflow.id); \
|
|
console.log(ids.join(','));"
|
|
ids=$(node -e "$script")
|
|
echo "::set-output name=ids::$ids"
|
|
|
|
- uses: styfle/cancel-workflow-action@0.4.1
|
|
with:
|
|
workflow_id: ${{ steps.workflow_ids.outputs.ids }}
|
|
access_token: ${{ github.token }}
|