diff --git a/.gitea/workflows/checks.yml b/.gitea/workflows/checks.yml new file mode 100644 index 0000000..c491df6 --- /dev/null +++ b/.gitea/workflows/checks.yml @@ -0,0 +1,39 @@ +# Repo checks. Gitea Actions reads .gitea/workflows first, falling back to +# .github/workflows — this lives in the former because the only remote is Gitea. +# +# Deliberately not filtered by `paths`. The job is seconds of work once the image +# is pulled, and a filter narrow enough to be worth having is also narrow enough +# to miss the case it was added for. +name: Checks + +on: + push: + branches: [main] + pull_request: + workflow_dispatch: + +jobs: + task-names: + name: Every dispatched command has a task name + runs-on: ubuntu-latest + # Pinned image rather than relying on whatever the runner's label maps to: + # the guard needs BOTH node (to run the real formatter) and python3 (to drive + # it), and no single stock runner image reliably has the pair. + container: node:22-bookworm-slim + + steps: + - uses: actions/checkout@v4 + + # node:22-bookworm-slim ships node but no python3. Installed explicitly so + # a change in the base image surfaces here rather than as a confusing + # "not found" from the script's shebang. + - name: Install python3 + run: | + apt-get update -qq + apt-get install -y --no-install-recommends python3 + + # Note this file is under scripts/dev, which .gitattributes marks + # export-ignore. That only affects `git archive` (release tarballs) — a + # checkout is a clone, so the guard is present here. + - name: Check task names + run: scripts/dev/lp-task-names