Skip to content

ci: prototype bulletin-polkadot in integration-test matrix#511

Open
x3c41a wants to merge 14 commits into
mainfrom
ndk/issue-507-bulletin-polkadot-ci
Open

ci: prototype bulletin-polkadot in integration-test matrix#511
x3c41a wants to merge 14 commits into
mainfrom
ndk/issue-507-bulletin-polkadot-ci

Conversation

@x3c41a
Copy link
Copy Markdown
Contributor

@x3c41a x3c41a commented May 8, 2026

Closes #507

Adds bulletin-polkadot to the integration test matrix. The runtime is built from polkadot-fellows/runtimes#1170 (override the source via FELLOWS_RUNTIMES_REPO / FELLOWS_RUNTIMES_REF). Runs through the same job as bulletin-westend / paseo.

Test plan

  • integration-tests job passes for bulletin-polkadot
  • westend / paseo jobs still pass

x3c41a added 5 commits May 8, 2026 09:07
Builds the Fellows bulletin-polkadot runtime out-of-tree (default tracks
PR polkadot-fellows/runtimes#1170) and runs it on the existing zombienet
flow. Configurable via FELLOWS_RUNTIMES_REPO/REF env vars.

The Fellows runtime only allows Root or sibling People XCM as Authorizer,
so JS/SDK tests that rely on signed authorize_account from TestAccounts are
gated behind a new `experimental` matrix flag and skipped for this entry.
chain-up + chopsticks compatibility still run, with continue-on-error so
prototype breakage does not block PRs.

Closes #507
If chain-up or chopsticks fail for the experimental runtime we want a
hard signal — silent failures defeat the point of running it in CI.
The full integration-tests matrix excludes experimental entries via the
runtime-matrix filter, dropping the per-step `if: !experimental` guards
that were sprayed across the workflow. A second job runs only the smoke
suite (chain-up + chopsticks) for experimental runtimes.
@x3c41a x3c41a requested a review from bkontur May 8, 2026 10:14

chain-spec-builder create \
-p 1010 \
-c westend \
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

westend?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

yeah, per @bkontur comment below: for now westend is ok. we will change it to polkadot-local relay later on...

Comment thread scripts/runtimes-matrix.json Outdated
"path": "external/fellows-runtimes/system-parachains/bulletin/bulletin-polkadot",
"uris": [],
"integration_tests": true,
"experimental": true,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

What's the divide between experimental and not?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

What's the divide between experimental and not?

yes, no experimental, point is to add to the runtimes-matrix.json (and do the very minimalistic changes on the way - only where is really needed - justfile, chain-spec script + zombienet, the important one is to run correct bulletin-polkadot-local.toml (for now westend is ok, we will chain with polkadot-local relay later) + scripts/create_bulletin_polkadot_spec.sh which will checkout that branch - this can be hard-coded here or I like external_runtime) and it should run

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

yes, no experimental, point is to add to the runtimes-matrix.json (...) and it should run

did that but the CI failed. The Authorizer is Root | EnsureXcm<Equals<PeopleLocation>>. So it accepts either Root or XCM from People. None of them work with local zombie-net.
We can:

  1. either have a smoke-only job (chain-up + chopsticks)
  2. or add #[cfg(feature = "test-accounts")] EnsureSignedBy<TestAccounts, _> to the Authorizer upstream (fellows repo) and build with that feature.

For now having a smoke test looks reasonable to me. What do you think? @bkontur @franciscoaguirre
Also what do we do long term? Can we add second option to fellows? it will make testing way easier...

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

  1. we can request a continuous (auto-renewed) quota for a test account and use that account

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

yes, no experimental, point is to add to the runtimes-matrix.json (...) and it should run

did that but the CI failed. The Authorizer is Root | EnsureXcm<Equals<PeopleLocation>>. So it accepts either Root or XCM from People. None of them work with local zombie-net. We can:

1. either have a smoke-only job (chain-up + chopsticks)

2. or add  `#[cfg(feature = "test-accounts")] EnsureSignedBy<TestAccounts, _>` to the Authorizer upstream (fellows repo) and build with that feature.

For now having a smoke test looks reasonable to me. What do you think? @bkontur @franciscoaguirre Also what do we do long term? Can we add second option to fellows? it will make testing way easier...

exactly, for this, we should be able to use #405 (let me rebase that)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

oh, nice! I was not aware of this PR.
Please, ping me, once you rebase it 🙏🏻

Comment thread .github/workflows/integration-test.yml Outdated
Comment thread scripts/runtimes-matrix.json Outdated
Per review, drop the experimental flag + dedicated job. The runtime ships
through the same matrix as bulletin-westend/paseo so the full suite runs
against it.
@bkontur
Copy link
Copy Markdown
Collaborator

bkontur commented May 12, 2026

@x3c41a could we also setup check migrations for polkadot runtime here?

Relates to: #319

Comment thread scripts/runtimes-matrix.json Outdated
Comment thread scripts/runtimes-matrix.json Outdated
Comment thread scripts/runtimes-matrix.json Outdated
Comment thread scripts/create_bulletin_polkadot_spec.sh Outdated
x3c41a added 7 commits May 13, 2026 09:38
- runtimes-matrix.json: nest `path` under `external_runtime`, add the
  production `uris` so try-runtime migration checks pick it up.
- create_bulletin_polkadot_spec.sh: only run chain-spec-builder; take the
  WASM via `WASM_PATH`.
- justfile: new `build-external-runtime` recipe handles clone+build,
  prints the WASM path.
- integration-test.yml: resolve Fellows commit sha, cache the WASM build
  on that key, build before `Start services`.
The check-runtime-migration workflow used `cargo build -p $PACKAGE` on the
local workspace, which doesn't work for runtimes that live in an out-of-tree
repo (bulletin-polkadot lives in the fellows runtimes fork). When the matrix
entry has `external_runtime`, resolve the upstream sha, cache the build under
`target/external-runtimes/<name>-try-runtime`, and build via just; then point
try-runtime at the resulting WASM. Local-workspace runtimes still go through
the original cargo path.

The just recipe now takes optional features and routes feature variants to
separate checkout directories so caches don't collide with the no-features
build used by integration-tests.
…n-polkadot-ci

# Conflicts:
#	examples/justfile
The external runtime ref now targets x3c41a/runtimes@ndk/port-pr405, which
bumps the bulletin pallet deps past 0.2.0-draft and wires #405's
`EnsureAllowedAuthorizers` + `allowed_authorizers` genesis seed into the
runtime. This is what unblocks the local-zombienet authorize-and-store
tests for bulletin-polkadot, which were failing with BadSigner because
the previous Authorizer was Root | XCM-from-People only.

Move the matrix back to bkontur/runtimes once #405 is upstreamed there.
…n-polkadot-ci

# Conflicts:
#	.github/workflows/integration-test.yml
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.

[Testing] Add bulletin-polkadot to the Bulletin CI

3 participants