Skip to content

Harden installer, add zef module support, new inputs/outputs, expanded CI - #2

Merged
drzo merged 2 commits into
masterfrom
copilot/task-175208138-1381481465-07ec6708-f1a5-4fdb-b43b-9e2ee36018dd
Sep 22, 2026
Merged

drzo merged 2 commits into
masterfrom
copilot/task-175208138-1381481465-07ec6708-f1a5-4fdb-b43b-9e2ee36018dd

Conversation

Copilot AI commented Sep 22, 2026

Copy link
Copy Markdown

Evolves setup-raku from a compiler installer into a fuller Raku development environment: hardened release resolution, zef module installation and caching, and actionable outputs for downstream jobs.

Installer hardening

  • Validates raku-version input (latest or YYYY.MM[.N]) with a clear error.
  • "Not found" errors now list platform, arch, and available versions.
  • Fixes cache dir naming when build_rev is null (previously produced -0null) via new cacheVersion().
  • Short-circuits on tool-cache hits — re-runs skip the download entirely.
  • Grouped log output around download/extract.

New inputs & outputs (action.yml)

  • zef-modules: space/comma-separated modules installed via zef install after setup; zef --version is verified first with a clear failure message.
  • enable-zef-cache: caches ~/.zef via @actions/cache, keyed on a SHA-256 of META6.json.
  • Outputs raku-version (resolved) and raku-path for downstream steps.
- uses: Raku/setup-raku@v1
  id: raku
  with:
    raku-version: "latest"
    zef-modules: "Test::META Cro::Core"
    enable-zef-cache: "true"
- run: raku -I. -MTest::META -e 'meta-ok'   # uses ${{ steps.raku.outputs.raku-path }}

Testing

  • New offline unit tests mocking @actions/http-client: latest selection, build_rev ordering (incl. null), platform/arch/backend/type filtering, no-match → null, cacheVersion, parseZefModules, zefCacheKey.
  • Existing live tests moved to tests/installer.integration.test.ts; full suite runs by default.

CI

  • Dogfood matrix adds macos-latest and latest, plus a smoke step (raku -e 'say "ok"', zef --version).
  • test.yml gains a dist-consistency check (git diff --exit-code dist/).

Docs

  • README documents inputs/outputs with zef and caching examples; CHANGELOG gets an Unreleased entry.

Note: CodeQL flags 4 alerts in dist/index.js, all inside bundled dependency code (undici WebSocket SHA-1 handshake, fast-xml-parser regex via @azure/core-xml) — no first-party source findings.

Copilot AI and others added 2 commits September 22, 2026 12:53
Co-authored-by: drzo <15202748+drzo@users.noreply.github.com>
Co-authored-by: drzo <15202748+drzo@users.noreply.github.com>
@drzo
drzo marked this pull request as ready for review September 22, 2026 13:01
@drzo
drzo merged commit 1e61b72 into master Sep 22, 2026
8 of 19 checks passed
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.

2 participants