Repository navigation
ci: add GitHub Actions test workflow - #689
Merged
Merged
Conversation
Replace the old pull request workflow with a self-contained GitHub Actions test workflow: - unit: npm install, npm test, and builds of bitcoin-mainnet and liquid-mainnet (Node 18.20.4, as in contrib/Dockerfile.base) - regtest (amd64, arm64): build contrib/Dockerfile.base (public base image as build cache) and contrib/docker-compose.yml, then wait until the regtest API reports block height 100 Runs on pull_request and pushes to master with a read-only token and no secrets.
DeviaVir
force-pushed
the
ci-github-actions
branch
from
October 6, 2026 09:32
41de9f8 to
824285c
Compare
There was a problem hiding this comment.
Copilot review overview
🔵 Needs a closer look
The cross-architecture Docker workflow and pinned external actions require validation on GitHub-hosted runners.
Review effort: Balanced
Findings: None
What changed in this PR
Replaces GitLab-triggered PR testing with a secret-free GitHub Actions workflow.
Changes:
- Adds unit tests and production builds on Node 18.20.4.
- Adds native amd64/arm64 Docker regtest validation.
- Removes the previous GitHub-to-GitLab test bridge.
| File | Description |
|---|---|
.github/workflows/test.yml |
Adds the GitHub Actions test workflow. |
.github/workflows/start-gitlab.yml |
Removes the GitLab trigger workflow. |
gitlab/test.yml |
Removes GitLab PR test and status-reporting jobs. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
DeviaVir
marked this pull request as ready for review
October 6, 2026 09:35
The static assets are not content-hashed (app.js, style.css, ...), so any
cache in front of the explorer has to choose between long TTLs (deploys
take hours to show up, and new HTML can load old JS/CSS) and frequent
revalidation.
The build now writes content-hashed copies (sha256, 12 hex) of app.js,
style.css, style-rtl.css, instascan.min.js, js/infinite-scroll.js and the
fonts referenced from the CSS, keeps the original files, and writes
asset-manifest.json. index.html, notfound.html and the prerender server
reference the hashed names, so deployments can serve hashed files with
`Cache-Control: public, max-age=31536000, immutable` and keep only the HTML
short-lived. The stylesheet link carries data-ltr/data-rtl so the Hebrew
switch picks the hashed RTL file (HTML cached before this change still
works). Fonts are rewritten inside the CSS before the CSS is hashed.
HASH_ASSETS=0 restores the old names (no manifest, no copies).
Also fixes two absolute paths that broke when the explorer is served under
a prefix: lander.js loaded `${staticRoot}/js/infinite-scroll.js` (double
slash) and style.css used url('/img/icons/arrow-right-orange.svg').
The Docker image builds each flavor into /srv/explorer/static/<flavor>, so the default manifest path (dist/asset-manifest.json) did not exist for the bundled prerender service and /nojs/ pages kept the unhashed asset names.
The prerender bundle is compiled before the static builds, so envify cannot bake the hashed infinite-scroll name into it, and lander.js read the env var once at module load. The prerender server now loads the flavor's manifest once at startup and exports the lazy-script names (exportAssetEnv), and lander.js reads the name at render time. The browser bundle is unchanged: envify still inlines the literal.
Randy808
approved these changes
Oct 6, 2026
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaces the old PR workflow with a self-contained GitHub Actions test workflow.
contrib/Dockerfile.base):npm install,npm test, and builds ofbitcoin-mainnetandliquid-mainnet.contrib/Dockerfile.base(using the publicblockstream/esplora-baseimage as a build cache), startcontrib/docker-compose.yml, and wait until/regtest/api/blocks/tip/heightreturns100. Container logs are printed on failure.The workflow runs on
pull_requestand pushes tomaster, withpermissions: contents: read,persist-credentials: falseand no secrets. Actions are pinned to commit SHAs.