CI triggers on a push to main and on pull requests, and on nothing else. That left no way to put a check on 7a1e5ee -- the commit production is running -- after GitHub's Actions outage on 2026-08-26 orphaned every run created during it. Those runs are not merely slow. GitHub accepted them, allocated zero jobs, and left them in a state its own API contradicts itself about: gh run rerun -> "cannot be rerun; This workflow is already running" gh run cancel -> "Cannot cancel a workflow run that is completed" gh api -> status=queued, conclusion=null, jobs=0 Neither recoverable nor clearable, and with no manual trigger the only remaining option would have been an empty commit pushed to main to move the ref -- which is both a junk commit and against how changes land here. workflow_dispatch also covers the ordinary case of wanting a check on a commit that predates a CI change.
29 lines
973 B
YAML
29 lines
973 B
YAML
name: CI
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
# Lets CI be run by hand against any ref, including a specific commit.
|
|
# Without this there is no way to re-run a check that never started: a run
|
|
# GitHub queues and then orphans -- as it did to every run created during the
|
|
# Actions outage on 2026-08-26 -- can be neither rerun ("already running")
|
|
# nor cancelled ("already completed"), and the workflow has no other trigger
|
|
# to reach for. Useful too for putting a check on a commit that predates a CI
|
|
# change, without pushing an empty commit to move it.
|
|
workflow_dispatch:
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 22
|
|
cache: npm
|
|
- run: npm ci --ignore-scripts
|
|
- run: npm run typecheck
|
|
- run: npm test
|
|
- run: npm run build
|
|
- name: Docker build
|
|
run: docker build -t ihasmail:ci .
|