Skip to content

Build, nightly and release workflows - #46

Open
jurgelenas wants to merge 2 commits into
masterfrom
ci-builds-releases
Open

jurgelenas wants to merge 2 commits into
masterfrom
ci-builds-releases

Conversation

@jurgelenas

Copy link
Copy Markdown
Member

Depends on #45 (version.lua).

  • make build creates the SD card zip: copies src, drops the dev-only CRSFSimulator library, writes the version into SCRIPTS/ELRS/version.lua, and compiles every script with the standalone edgetx-luac (bytecode identical to edgetx-cli dev build). CI doesn't need edgetx-cli.
  • Tools are pinned and downloaded into bin/ (stylua 2.3.1, LuaLS 3.17.1, edgetx-luac 1.0.0); stylua no longer needs cargo.
  • CI (PRs and master, ubuntu-26.04): checks, build, zip artifact. The tools show the 7-character commit hash.
  • Nightly: every master push replaces the nightly prerelease, titled "Nightly (development build)" with a not-a-stable-release warning (expresslrs-lua-nightly.zip).
  • Releases: push a vX.Y.Z tag; the release shows X.Y.Z. Pre-release suffixes are rejected because they don't fit the B&W EXIT labels.
  • PR comments: a workflow_run job posts and updates one comment with the build link, including on fork PRs. It runs from master, so it starts after this is merged.

Checked locally: make build with the default and a 1.1.0 version; the zip has 46 scripts plus bytecode and no dev files. In the simulator, a 7-character hash fits the GX12 EXIT labels (7 px spare) and the TX16S version row.

The ExpressLRS and Bind tools each hard-coded their own "r<N>" version.
Both now load SCRIPTS/ELRS/version.lua, which is "dev" in the source
tree. Release builds will write the semver version (or a short commit
hash for nightly and PR builds) into that file.
make build stages src into dist/, writes the version into
SCRIPTS/ELRS/version.lua, compiles every script with the standalone
edgetx-luac and zips the SD card tree. Tools are pinned and downloaded
into bin/; stylua no longer needs cargo.

CI runs checks and the build on every PR and master push. Builds show
the 7-character commit hash; master pushes replace the nightly
prerelease. Pushing a vX.Y.Z tag publishes a release showing X.Y.Z.
A workflow_run job comments the build link on PRs, including forks.
@jurgelenas
jurgelenas requested a review from CapnBry October 20, 2026 20:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant