Skip to content

Remove the script/build.sh hook; rainix is the sole staged-config installer - #433

Merged
thedavidmeister merged 2 commits into
mainfrom
remove-build-hook-skip
Nov 2, 2026
Merged

thedavidmeister merged 2 commits into
mainfrom
remove-build-hook-skip

Conversation

@thedavidmeister

Copy link
Copy Markdown
Contributor

Closes #418

  • install-staged-config: BUILD_HOOK and the script/build.sh skip are gone. It always installs .staged-config/.
  • rainix-copy-artifacts: the step that ran script/build.sh because the file existed is gone. A repo that regenerates more committed artifacts after forge build + CopyArtifacts.sol now declares the command through a new regenerate-command input. The command reaches the step through env, not ${{ }} interpolation into the script. It is still teed into the codegen-declaration log.
  • README and the action description don't mention the hook any more.

Consumer migration (default branches + S01-Issuer/st0x.deploy#518)

Each repo below has script/build.sh and calls rainix-copy-artifacts@main.

repo build.sh does after this lands
rainlanguage/rain.merkle.deploy install only green. rainix installs and build.sh never runs. rainlanguage/rain.merkle.deploy#34 deletes it
rainlanguage/rain.factory.deploy install only green. Delete build.sh
rainlanguage/raindex.deploy install, then subgraph ABIs + graph codegen, bindings ABIs, test_fixtures needs a PR: remove the install block (it errors when .staged-config/ is missing) and pass regenerate-command. Until then its ABI and subgraph regen is not checked
rainlanguage/rain.erc4626.words nix develop -c erc4626-words-prelude needs a PR: pass regenerate-command: ./script/build.sh. Until then the regen is not checked
rainlanguage/rain.flare rain-flare-prelude same
rainlanguage/rain.dia authoring meta, rain meta build, Build.sol same
rainlanguage/rain.pyth authoring meta, rain meta build same
rainlanguage/rain.metadata cargo run --example emit-calldata-fixture same
S01-Issuer/st0x.deploy (PR #518, not merged) BuildPrivilegedAddresses/SubgraphNetworks/IdealRoles/Migrations, git add --intent-to-add --all #518 has to pass regenerate-command

A workflow_call input that the reusable does not declare fails validation. So consumers can only pass regenerate-command once this PR is merged.

QA

  • Discriminating tests: these fail on base, verified by putting the base behaviour back as mutants (below):
    • a repo with script/build.sh has its staged config installed
    • a repo with script/build.sh and nothing staged still fails
    • derived artifacts regenerate from the declared input, never a file the repo happens to have
  • Mutations applied (run locally, then reverted):
    • put the script/build.sh skip back into install_staged_config::run: killed by tests 10 and 11.
    • put back if: hashFiles('script/build.sh') != '' on the regenerate step: killed by test 21.
  • Oracle: the ruling in install-staged-config: remove the script/build.sh hook skip; rainix is the sole installer #418 (rainix is the sole installer, no hook). The consumer table comes from reading each repo's script/build.sh on its default branch, and #518's head.
  • Category check: the issue asks for four things: remove the skip from the action, remove it from copy-artifacts, delete BUILD_HOOK + the skip tests, update the README. All four are done. The hook invocation in copy-artifacts is removed. Six consumers use it for regeneration, so the regen moves to an explicit input rather than being dropped.
  • Removed tests: the three tests that pinned the skip, including the one for a directory named script/build.sh.
  • Local runs: cargo test in rainix-static (338 passed). bats for install-staged-config + rainix-copy-artifacts (21/21 passed). pre-commit run --all-files is clean.

🤖 Generated with Claude Code

…taller

install-staged-config no longer skips when script/build.sh exists, and
rainix-copy-artifacts no longer runs script/build.sh by presence. Repos
that regenerate further committed artifacts declare the command through
the regenerate-command input.

Closes #418

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@thedavidmeister thedavidmeister self-assigned this Oct 26, 2026
@coderabbitai

coderabbitai Bot commented Oct 26, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 33 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration
Commits

Reviewing files that changed from the base of the PR and between 1b58990 and 3213bd0.

Files selected for processing: 7
  • .github/actions/install-staged-config/action.yml
  • .github/workflows/rainix-copy-artifacts.yaml
  • README.md
  • rainix-static/src/install_staged_config.rs
  • rainix-static/src/main.rs
  • test/bats/action/install-staged-config.test.bats
  • test/bats/workflow/rainix-copy-artifacts.test.bats
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

…ranch

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@thedavidmeister
thedavidmeister merged commit 09214ee into main Nov 2, 2026
18 of 23 checks passed
@linear

linear Bot commented Nov 2, 2026

Copy link
Copy Markdown

RAI-4295

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.

install-staged-config: remove the script/build.sh hook skip; rainix is the sole installer

1 participant