Repository navigation
ci: harden the workflows and use the organization's shared CI - #10
Merged
Merged
Conversation
Jertlok
force-pushed
the
ci/harden-workflows
branch
3 times, most recently
from
September 16, 2026 06:37
adbfa77 to
dbcf869
Compare
- Concurrency per pull request in CI, cancelling only superseded pull request runs; a second push to taimen-bringup no longer cancels the first push's checks. - merge_group in CI and Build, so a merge queue can run them; a merge group builds what its pull requests change. - Timeouts on the jobs that had none; the upstream check runs one at a time. - The commit check is porthole-dev/.github's commit-check action instead of a copy of its scripts. base-commit.sh stays for the aport jobs and now fails when the base it should print is outside the checkout: a push whose base lay beyond fetch-depth 100 printed nothing, and lint and the patch check then checked no aport and passed. It also knows merge groups, and has a test. - The patch check restores the apk cache everywhere but saves it only on pushes, so pull requests stop filling the 10 GB cache with copies only they can read. - Workflow lint (actionlint, zizmor), and "CI passed" and "Build passed" aggregate jobs: the two checks a ruleset needs to require, since the matrix build jobs are named after their packages. - Dependabot keeps the pinned actions current, weekly and grouped, with a seven-day cooldown. Assisted-by: Claude Signed-off-by: Giuseppe Maggio <jertlok@proton.me>
"Select packages" failed on a pull request that deletes one file and adds
another: git diff tried to compare their contents for rename detection,
which downloads blobs the blob:none checkout does not have, with no
credentials to fetch them ("could not fetch ... from promisor remote").
forks() already turned rename detection off; changed() now does, for
every caller.
Assisted-by: Claude
Signed-off-by: Giuseppe Maggio <jertlok@proton.me>
The previous pin named a commit from the pull request branch, which the rebase merge orphaned; an orphaned commit can be garbage-collected and the action then stops resolving. Point at the commit main was tagged v1.0.0. Assisted-by: Claude Signed-off-by: Giuseppe Maggio <jertlok@proton.me>
Jertlok
force-pushed
the
ci/harden-workflows
branch
from
September 16, 2026 07:51
dbcf869 to
82d872f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
concurrency: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }},cancel-in-progressonly for pull requestsci-<ref>, always cancelling) let a second push tomaincancel the first push's run: tap run 35024225791 shows it happening.timeout-minuteson every jobmerge_grouptrigger (CI and Build; a merge group builds what its pull requests change)porthole-dev/.github/actions/commit-check, pinned by commit--filter=tree:0, so a base older than the formerfetch-depth: 100fails loudly instead of reporting "no new commits". Check name stays Commit check.base-commit.shfails when the base it should print is outside thefetch-depth: 100checkouttest-base-commit.shruns in the lint job (and fails against the old script).actions/cache/restorealways,actions/cache/saveonly on pushcheck-zizmor.yml); both tools are what the OpenSSF Scorecard and GitHub's security hardening guide checks are about (pinning, token permissions, injection).Build (<package>), so nothing else is requirable.github/dependabot.yml: GitHub Actions weekly, grouped, 7-day cooldowndependabot-cooldownrecommendation. Dependabot commits need the maintainer's sign-off before merge like any other.persist-credentials: false, least-privilegepermissionsartipacked/excessive-permissions.Stacked on #9
The first commit is #9's (the publish fix); review the last commit here, and merge #9 first.
Depends on
porthole-dev/.githubis private: its Settings > Actions > General > Access set to "Accessible from repositories in the porthole-dev organization". Until then Commit check, Workflow lint and CI passed fail with "Unable to resolve actionporthole-dev/.github, repository not found".@43919fe... # main) moved to the merged commit and its tag (# v1.0.0); zizmor'sref-version-mismatchwarns until the comment names a tag.Merge note
The Commit check fails until the commit carries the maintainer's
Signed-off-by(git rebase --signoff taimen-bringup).