Run CI through the shared plugin action #39

Merged
tiagoagueda merged 1 commit from 1170-shared-ci into main 2026-11-12 10:24:22 +00:00
Owner

Refs postulo/postulo#1170. CI runs through the shared action https://source.tiagoagueda.com/Postulo/plugin-ci@v1, proven on postulo-helloworld: uv pinned and checked in one place, uv's cache kept between runs, no CI run on a tag (the release gate has its own workflow), and the dependency audit as its own job, also run weekly from weekly.yml. Every kept job keeps its id and name, so the status checks do not change; checked locally with actionlint, zizmor and the repository's own tests.

🤖 Generated with Claude Code

Refs postulo/postulo#1170. CI runs through the shared action `https://source.tiagoagueda.com/Postulo/plugin-ci@v1`, proven on postulo-helloworld: uv pinned and checked in one place, uv's cache kept between runs, no CI run on a tag (the release gate has its own workflow), and the dependency audit as its own job, also run weekly from `weekly.yml`. Every kept job keeps its id and name, so the status checks do not change; checked locally with actionlint, zizmor and the repository's own tests. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Run CI through the shared plugin action
All checks were successful
CI / Security audit (pull_request) Successful in 32s
CI / test (pull_request) Successful in 3m52s
Every Python / Unit tests (Python 3.12) (push) Successful in 6m10s
Every Python / Unit tests (Python 3.13) (push) Successful in 6m33s
b8a466c213
Every plugin repository carried its own copy of the same workflow, and the
copies drifted; a uv bump was some fifteen hand edits across eight
repositories. The workflows now check the repository out and call
Postulo/plugin-ci@v1 by its full address, which holds the pinned uv (its
installer checked by sha256), uv's cache, the lint, the catalogue checks,
Weblate's gate, the tests, the release gate and the audit.

- ci.yml: no `tags:` trigger any more (a tag is a commit main already
  tested; release.yml is the one workflow a tag starts), and no schedule.
  The test job loses `if: github.event_name != 'schedule'`: this Forgejo
  fails a job whose `if` is false instead of skipping it, so the weekly
  run failed the job it meant to leave out. The audit job keeps its id
  `security` and its name "Security audit", and `test` its id, so the
  status checks do not change.
- weekly.yml (new): the same `security` / "Security audit" job alone,
  Mondays 06:17 as before, and by hand.
- every-python.yml: the 3.12/3.13 matrix now calls the action with lint and
  the catalogue checks off; triggers (release branches, Mondays 06:47, by
  hand) and the job name "Unit tests (Python ...)" kept.
- release.yml: the release gate runs through the action.
- tests/test_workflows.py: the uv pin and installer check it held now live
  in the action, so it holds instead that every workflow calls the action
  by its full address and nothing else installs uv, that no job carries an
  `if:`, that the audit runs on every push and weekly under its status
  check's name, and that every-python.yml still runs 3.12 and 3.13.

No `permissions:` block (this Forgejo ignores it and warns), and the time
limits sit on the steps, as the action's README says.

Refs postulo/postulo#1170

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
tiagoagueda deleted branch 1170-shared-ci 2026-11-12 10:24:22 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Postulo/postulo-apprise!39
No description provided.