Skip to content

Add github action to use latest buildtools snapshot and add it to CI#975

Merged
jormundur00 merged 6 commits intomasterfrom
jormundur00/gh-966
Feb 2, 2026
Merged

Add github action to use latest buildtools snapshot and add it to CI#975
jormundur00 merged 6 commits intomasterfrom
jormundur00/gh-966

Conversation

@jormundur00
Copy link
Copy Markdown
Member

@jormundur00 jormundur00 commented Jan 28, 2026

What does this PR do?

In this PR we introduce the setup-native-build-tools GitHub action that builds the latest Native Build Tools snapshot and sets the buildtools version in libs.versions.toml to that snapshot. This allows us to test the Reachability Metadata repositories CI with the latest buildtools changes. This is a requirement for merging PR whose changes create circular dependencies between the two repositories, while also allowing the CI to run without breaking in the time it takes to release new buildtools releases.

The newly added action is fully-customizable through its inputs, where nbt-ref can be used to make specific PRs run their CI on different Native Build Tools branches, if that is needed (and it will be needed for #960).

We can most likely stop using this action in our workflows once the new release of NBT is released (with the big refactoring changes), to stay consistent with "stable" NBT releases, but we should still keep the action in the repository for future changes like this. The test-all-metadata workflow was ran on this PR with the latest NBT snapshot and it passes (workflow run).

Fixes: #966

@jormundur00 jormundur00 self-assigned this Jan 28, 2026
@jormundur00 jormundur00 added the enhancement New feature or request label Jan 28, 2026
- name: "☁️ Checkout repository"
uses: actions/checkout@v4

- name: "🛠️ Setup latest native-build-tools snapshot"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, this should be optional, right? We want to test with the latest release always, but on demand we can enable this.

Copy link
Copy Markdown
Member Author

@jormundur00 jormundur00 Jan 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe we will need to test with the snapshot only (so no latest-release) in the time between us merging the metadata/index.json removal PR (both here and on buildtools) and the buildtools release including that PR releasing on the central Maven repository (otherwise, no PRs would be able to be merged in the meantime).

After that, I think we can remove this step of the workflows and on demand return it if a scenario like this arises again.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just add a variable to be able disable this.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Per our offline discussion I added the following:

  1. The action is disabled by default (has a variable named enabled-by-default which is currently set to false),
  2. The action WILL run (even if disabled by default) if there is a branch of the same name on the NBT repository,
  3. Short section in CI.md explaining this.

enabled-by-default will then temporarily be set to true once index.json removal is merged (until the new NBT release is released and added here).

@kimeta
Copy link
Copy Markdown
Collaborator

kimeta commented Jan 30, 2026

Changes LGTM.

@jormundur00 jormundur00 merged commit b2b6ac5 into master Feb 2, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature: Allow CI to run with SNAPSHOT versions of native build tools

3 participants