ci(srtla_send): tag-driven releases, glibc 2.27 debs, workspace-wide checks - #23
Merged
Merged
Conversation
it summarized the exp branch before v4.0.0 and went stale once that shipped. release notes are generated from commits per tag instead.
the ci shell scripts fail under bash when a windows checkout converts them to crlf.
release binaries were built with nightly although only rustfmt needs it. add xlint/xtest aliases that cover the whole workspace, since a bare cargo test or clippy at the root skips the member crates.
run clippy and tests with --workspace so srtla-core, srtla-protocol and network-sim are covered, add codespell and an msrv check read from rust-version, replace cargo-audit with cargo-deny's advisories check, and use prebuilt tools and rust-cache instead of compiling them each run.
the v4.0.1 debs were built on ubuntu-latest and need glibc 2.34, so they do not run on ubuntu 20.04 or older. package-deb.sh refuses a binary that needs a newer glibc than the Depends line promises, and now builds root-owned packages from the release-lto profile.
a tag push checks the tag against Cargo.toml (v4.0.0 shipped with 3.0.0 in it), builds through build.yml, adds sha256sums and opens a draft with notes grouped from conventional commits.
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.
Why
Three problems with the current CI and release setup:
version = "3.0.0"inCargo.toml. Nothing checks the tag against the crate version.ubuntu-latestand need glibc 2.34, so they do not run on Ubuntu 20.04 or older.srtla-core,srtla-protocolornetwork-sim. The root is also a package, so a barecargo testorcargo clippycoverssrtla_sendalone.What changed
ci.ymlruns clippy and tests with--workspacethrough newcargo xlint/cargo xtestaliases. It adds codespell and an MSRV check that readsrust-version. cargo-deny's advisories check replaces cargo-audit, which reads the same RustSec database. Tools come prebuilt and builds use rust-cache.rust-toolchain.tomlpins stable 1.97.1. Nightly is used only for rustfmt and miri. Release binaries are no longer built with nightly.build.ymlreplacesbuild-debian.yml. It builds the debs on every push and PR with cargo-zigbuild against glibc 2.27, using therelease-ltoprofile.scripts/package-deb.shrefuses a binary that needs a newer glibc than theDependsline promises, and builds root-owned packages.release.ymlruns on avX.Y.Ztag push. It checks the tag againstCargo.toml, builds throughbuild.yml, addssha256sums.txtand creates a draft release. The notes are grouped from conventional commits byscripts/changelog.sh.RELEASING.mdhas the steps..gitattributeswitheol=lf, and the staleCHANGELOG.mdremoved.How to review
Start with
build.ymlandscripts/package-deb.sh, thenrelease.yml. The release workflow only runs on a tag, so its first real run is the next release. It creates a draft, so a failure there stays private.How to release after this
Bump the version in
Cargo.toml, commit, then push avX.Y.Ztag. Publishing a release in the GitHub UI no longer builds anything.Summary by CodeRabbit
New Features
Documentation
Improvements