mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-10-27 07:52:24 +00:00
- Updates `scripts/cancel-all-ci-runs.sh` with a safer, more robust version that handles repository detection and `xargs` limitations. - Adds `docs/cancelling-ci-runs.md` explaining how to use the script. - Links the new documentation in `README.md` under Quickstart Commands. Co-authored-by: PR0M3TH3AN <[email protected]>
54 lines
1.8 KiB
Markdown
54 lines
1.8 KiB
Markdown
# Cancelling CI Runs
|
|
|
|
This document explains how to use the `scripts/cancel-all-ci-runs.sh` script to cancel pending or in-progress CI workflows. This is useful when you have a backlog of runs that are no longer needed.
|
|
|
|
## Prerequisites
|
|
|
|
- **GitHub CLI (`gh`)**: You must have the GitHub CLI installed and authenticated.
|
|
- Install: [GitHub CLI Installation Guide](https://github.com/cli/cli#installation)
|
|
- Authenticate: `gh auth login`
|
|
|
|
## Usage
|
|
|
|
### Basic Usage (Repo Root)
|
|
|
|
From the root of the repository, you can simply run:
|
|
|
|
```bash
|
|
./scripts/cancel-all-ci-runs.sh
|
|
```
|
|
|
|
The script will automatically detect the repository from your git configuration.
|
|
|
|
### Running from Anywhere
|
|
|
|
You can run the script from any directory by setting the `REPO` environment variable:
|
|
|
|
```bash
|
|
REPO=PR0M3TH3AN/bitvid ./scripts/cancel-all-ci-runs.sh
|
|
```
|
|
|
|
### Previewing Runs
|
|
|
|
Before cancelling, you might want to see which runs are currently active. You can use the following commands:
|
|
|
|
```bash
|
|
# List in-progress runs
|
|
gh run list --repo PR0M3TH3AN/bitvid --status in_progress --limit 1000 --json databaseId,headBranch,name,createdAt | jq .
|
|
|
|
# List queued runs
|
|
gh run list --repo PR0M3TH3AN/bitvid --status queued --limit 1000 --json databaseId,headBranch,name,createdAt | jq .
|
|
```
|
|
|
|
## How it Works
|
|
|
|
The script performs the following steps:
|
|
1. Checks if `gh` is installed.
|
|
2. Determines the repository (either from `REPO` env var or `gh repo view`).
|
|
3. Fetches IDs of all runs with status `in_progress` and `queued`.
|
|
4. Cancels them one by one using `gh run cancel`.
|
|
|
|
### Why use this script?
|
|
|
|
Trying to cancel runs in bulk using `xargs gh run cancel` directly can fail because some versions of `gh` only accept a single run ID per invocation. This script uses `xargs -n1` to ensure `gh run cancel` is called individually for each run ID, preventing "accepts at most 1 arg(s)" errors.
|