Sync the daemon pairing to wavelength v0.1.1-rc2 #174
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: ci | |
| on: | |
| pull_request: | |
| push: | |
| branches: [main] | |
| jobs: | |
| # The deploy workflow downloads the runtime asset set from the wavelength | |
| # release named by RUNTIME_MANIFEST_VERSION, so a pin that resolves to no | |
| # downloadable archive fails every push to main once merged, including | |
| # unrelated changes. Probing it here keeps that failure on the PR that causes | |
| # it. A sync PR may legitimately sit on a commit-sha pin while the daemon | |
| # release is still unpublished: this check is expected to be red for that | |
| # stretch, and turns green once the pin is flipped to the published tag. | |
| # Deliberately its own job so it stays a fast, standalone required check | |
| # rather than waiting on an install and a full build. | |
| runtime-pin: | |
| name: Pinned runtime is downloadable | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/setup-node@v6 | |
| with: { node-version: 24 } | |
| # A HEAD request costs nothing next to the 40MB archive, and covers every | |
| # way the pin can be undeployable: no such tag, a release still in draft | |
| # (whose assets are not publicly downloadable), or an archive that never | |
| # got attached. | |
| - name: Probe the pinned runtime archive | |
| run: | | |
| VERSION="$(node scripts/runtime-version.mjs)" | |
| URL="https://github.com/lightninglabs/wavelength/releases/download/$VERSION/Wavewalletdk.wasm.tar.gz" | |
| if curl -fsSLI --retry 3 --retry-delay 2 -o /dev/null "$URL"; then | |
| echo "::notice::Runtime pin $VERSION resolves to a published release archive." | |
| exit 0 | |
| fi | |
| # Tell the two cases apart. Tag-shaped but undownloadable is the | |
| # surprising one: it looks like the pin was already flipped. | |
| if [[ "$VERSION" == v[0-9]* ]]; then | |
| echo "::error::Runtime pin $VERSION looks like a release tag, but $URL is not downloadable. The wavelength release is most likely still a draft, since draft assets are not public. Publish it, then re-run this check." | |
| else | |
| echo "::error::Runtime pin $VERSION is not a published wavelength release tag, so the Pages deploy would fail on merge. This is expected while a sync is prepared against an unreleased daemon revision. Before merging, flip RUNTIME_MANIFEST_VERSION in packages/core/src/version.ts to the release tag." | |
| fi | |
| exit 1 | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: pnpm/action-setup@v6 | |
| - uses: actions/setup-node@v6 | |
| with: { node-version: 24, cache: pnpm } | |
| - run: pnpm install --frozen-lockfile | |
| # Build first so each package's dist (.d.ts) exists before the workspace | |
| # typecheck resolves cross-package imports (e.g. web -> core). | |
| - run: pnpm build | |
| - run: pnpm typecheck | |
| - run: pnpm --filter @lightninglabs/wavelength-core test | |
| - run: pnpm --filter @lightninglabs/wavelength-web test | |
| - run: pnpm --filter @lightninglabs/wavelength-react test | |
| # Validate the packed packages: publint for packaging mistakes, attw for | |
| # type/runtime resolution across consumer modes (Node ESM, bundlers). | |
| - run: pnpm check:packages | |
| - name: Build docs site | |
| run: pnpm --filter @lightninglabs/wavelength-docs run build | |
| - name: Docs smoke test | |
| run: | | |
| pnpm --filter @lightninglabs/wavelength-docs exec playwright install --with-deps chromium | |
| pnpm --filter @lightninglabs/wavelength-docs test |