Repository navigation
ci: branches named kind/what, one-line commits, and CI that skips what a branch never touched, as Tisty does - #84
Merged
Merged
Conversation
…t a branch never touched, as Tisty does
…t to faster, truer hooks
# Conflicts: # .github/workflows/ci.yml
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.
Brings over what Tisty's
mainlearnt since LinkUnbound last copied its pipelines (up to Tisty #548), without overwriting what LinkUnbound already does better:pre-pushchecking each pushed commit's tree,--landedover the whole push range, andnews.shreading the pushednews.json.What changed
Hooks and scripts
scripts/commits.sh --branchchecks that a branch is namedkind/what, where the kind is a commit type,hotfixorrelease(for examplefeat/picker-tiles).pre-commitruns it on the branch being committed on.pre-pushruns it on the name the branch takes on the remote.main, a detached HEAD and GitHub'sdependabot/*are exempt. Deleting a remote branch is still allowed.commit-msgrefuses any line under the subject. It still folds a subject the editor wrapped into one line, and it letsRevert ",fixup!,squash!,amend!and merges through.commits.shchecks the body of each commit on a branch, except Dependabot's.--landedonmain, because a squash carries the pull request's body.(#N)GitHub adds on squash: up to 112 characters. Titles are still checked at 120, number included.pre-pushremote. It compares against themainof the remote being pushed to, not a fixedorigin/main.pre-commit. When a lockfile is staged,pre-commitwrites the third-party notices again, so a stale one is onegit addaway.rules.shno longer walks.claude/orvendor/when it looks for Markdown.CI
ci.ymlchangesjob decides whether the branch touched Rust. When it did not,testand both coverage jobs skip their Rust work.app/src/news.jsoncounts as Rust, because the resident embeds it.testsjob reports for the test matrix. A matrix that is skipped never reports its names, so a required check on those names would wait forever.CARGO_PROFILE_DEV_DEBUG: line-tables-only.scripts/sidecar.shnow honoursCARGO_TARGET_DIRfor this.coverageno longer runs on Dependabot pull requests.coverage-macandsonaralready skipped them.sonarruns whencoverage-macwas skipped, so Sonar still reads the picker.bans licenses sourcesblocks.advisoriesand bothnpm auditsteps only warn on a pull request, and still fail onmain.caches.yml. A newstopjob cancels the runs still going for a closed pull request's last commit.rules.yml--offlineon pull requests. The online pass, which checks the pinned actions for known vulnerabilities, runs only on the schedule and on a manual run, with three tries.advisoriesjob runs every day. When something in the lock has an advisory or a yank, it moves only the crates named, regenerates the notices and pushesfix/advisories. The run ends red on purpose, so it reaches the inbox.Why
How it was checked
commits.sh --branchpassedfeat/picker-tiles,fix/advisories,ci/tisty-pipelines,hotfix/a,release/2.9,dependabot/…,mainandHEAD. It refusedclaude/…,rgdevment/feat-x,wip/algo,Feat/Xanddocs-languages.commit-msgpassed a single line, a wrapped subject, a revert with its body and a fixup. It refused a subject with a body under it.pre-pushwas fed simulated push lines:feat/x, a deletion, and a push straight to a URL;wip/algo.4945100(a squash with a body) is refused, and passes with--landed.js-yaml.markdownlintfinds nothing inCONTRIBUTING.md.bash -npasses on every hook and script, andscripts/rules.shis green.For the reviewer
tests. Replacetest / windows-latestandtest / macos-latestwithtestsin the Default ruleset. Until then, a pull request that does not touch Rust stays blocked on those two names.rgdevment/...andclaude/...branches no longer passpre-commitorpre-push. Usekind/whatinstead.