flowchart TD
A[reusable-build.yml] -->|"bakes RELEASE_RESOLC_WASM_URI<br/>into resolc_web.js"| B[upload-artifact]
B -->|"per-run URL<br/>(auth-gated)"| C[release-nightly.yml<br/>generate-nightly-json]
C -->|"writes URL into<br/>resolc-bin/nightly/<platform>/list.json"| D[Consumer follows URL]
D -->|Anonymous| E[Download 404s]
D -->|Authenticated| F[Wasm fetch 404s]
Description
Issues
The nightly
resolc_web.jsbundle cannot fetchresolc.wasmjs/emscripten/build.jsbakes the wasm URL into the bundle at build time via envRELEASE_RESOLC_WASM_URI:revive/js/emscripten/build.js
Lines 7 to 8 in 3a20436
…/releases/download/${{ github.ref_name }}/resolc.wasmmainit becomes…/releases/download/main/resolc.wasm, which 404stest-wasm.ymldoesn't catch this because its bundle uses the localhost-fallback URL baked in insteadAll nightly binary URLs require GitHub auth
…/actions/runs/<id>/artifacts/<artifact-id>)Note
The issues are related:
For the nightly wasm release, the baked URL needs to be a deterministic (issue 1) and publicly-reachable (issue 2) URL.
Current Publish Chain
flowchart TD A[reusable-build.yml] -->|"bakes RELEASE_RESOLC_WASM_URI<br/>into resolc_web.js"| B[upload-artifact] B -->|"per-run URL<br/>(auth-gated)"| C[release-nightly.yml<br/>generate-nightly-json] C -->|"writes URL into<br/>resolc-bin/nightly/<platform>/list.json"| D[Consumer follows URL] D -->|Anonymous| E[Download 404s] D -->|Authenticated| F[Wasm fetch 404s]Solution Options
<bucket-url>/nightly/wasm/<longVersion>/{resolc.wasm, resolc.js, resolc_web.js}<bucket-url>/nightly/linux/<longVersion>/resolc-x86_64-unknown-linux-musl<bucket-url>/nightly/macos/<longVersion>/resolc-universal-apple-darwin<bucket-url>/nightly/windows/<longVersion>/resolc-x86_64-pc-windows-msvc.exeresolc_web.jsand have resolc-bin'slist.jsonreference the same URLsLikely Less Ideal
nightlyGitHub Release tagparitytech/resolc-binvia GitHub Pages