Skip to content

update services + add CI - #6

Open
zoedberg wants to merge 5 commits into
masterfrom
ci
Open

zoedberg wants to merge 5 commits into
masterfrom
ci

Conversation

@zoedberg

Copy link
Copy Markdown
Member

No description provided.

Add two GitHub Actions workflows:
- Build: builds the wheel for each supported platform with the release build
  system, builds the sdist and checks the rust sources it packages still
  build, installs each wheel on its platform and calls into the bindings,
  then runs the demo notebook on regtest with the freshly built linux wheel
- Lint: runs black, flake8 and pylint on the python scripts, plus shellcheck

To support this:
- the demo notebook funds its wallets and mines blocks on its own, through
  the new regtest.py helpers, so it can be executed unattended (and no longer
  requires switching to the console when run interactively)
- services.sh gains a "test" command, that executes the notebook with
  nbconvert and fails if any cell raises, and waits for services with a
  timeout instead of looping forever
- the demo image accepts a RGB_LIB_SPEC build arg, to install a locally built
  wheel instead of the released package
- build.py can pass extra options to the cross image build (used to cache its
  layers in CI) and ignores GITHUB_REF_*, which the cross xtask would
  otherwise use to derive image tags
- build_packages.py gains build_wheel(), to build a single platform
@zoedberg
zoedberg requested a review from nicbus November 13, 2026 17:41
@zoedberg zoedberg self-assigned this Nov 13, 2026
Switch the cross submodule to the RGB-Tools fork, which patches xargo
before installing it, as recent rust versions fail to build it.
The cross-toolchains commit the build script resets to is newer than the
one pinned by the cross submodule, so it's missing when submodules are
cloned shallow (e.g. by actions/checkout). Fetch the cross and
cross-toolchains commits if missing, using full hashes as fetching by
short hash is not supported.
The native image (used for the host platform target) builds qemu from
source, downloading util-linux and libcap from kernel.org, whose origin
host is not reachable from the GitHub Actions runners, so the build fails
after exhausting the curl retries. Patch the downloads to use the
kernel.org CDN, which is reachable.
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