Skip to content

ci: fix CodSpeed integration and switch to OIDC auth#2

Closed
codspeed-hq[bot] wants to merge 1 commit intomainfrom
codspeed-wizard-1776519722328
Closed

ci: fix CodSpeed integration and switch to OIDC auth#2
codspeed-hq[bot] wants to merge 1 commit intomainfrom
codspeed-wizard-1776519722328

Conversation

@codspeed-hq
Copy link
Copy Markdown

@codspeed-hq codspeed-hq Bot commented Apr 18, 2026

Summary

This PR fixes the existing CodSpeed benchmarking setup and improves the CI integration.

Changes

CI workflow fixes (.github/workflows/ci.yml):

  • Fixed CodSpeed action commit hash: The previous hash (76578c2a7...) pointed to v3.8.1, not v4.13.1 as the comment stated. Updated to the correct v4.13.1 commit (db35df748...).
  • Switched to OIDC authentication: Removed the token: ${{ secrets.CODSPEED_TOKEN }} parameter. The workflow already has id-token: write permission, so OIDC authentication works out of the box without needing a secret.
  • Added mode: simulation: Explicitly sets the CodSpeed instrument to CPU simulation mode, which provides deterministic, noise-free measurements with less than 1% variance.
  • Added workflow_dispatch trigger: Enables CodSpeed to trigger backtest analysis for generating initial baseline data.

README badge: Added CodSpeed performance badge to the repository README.

Existing benchmark coverage

The repository already has well-structured benchmarks covering core functionality:

  • pipe.bench.ts -- pipe vs manual function chaining
  • arrays/transform.bench.ts -- map, filter, flatMap vs native, plus dual-API (data-first vs curried) overhead
  • result/transform.bench.ts -- Result.map/flatMap vs try/catch error handling patterns

Next steps

  • Once the PR is merged and the first run on main completes, CodSpeed will have baseline data and will automatically report performance changes on future pull requests.
  • Visit CodSpeed dashboard to view benchmark results and flamegraphs.

Note: since kelsos is a personal GitHub account, codspeed-macro runners are not available. The benchmarks run on standard ubuntu-latest runners. This means walltime measurements would have significantly higher variance -- which is why this setup uses simulation mode instead, providing deterministic results regardless of the runner hardware. For more details, see the walltime docs.

@kelsos
Copy link
Copy Markdown
Owner

kelsos commented Apr 18, 2026

Applied equivalent changes manually in f9077da to keep contributors as humans. Thanks for catching the wrong SHA + the OIDC tip!

@kelsos kelsos closed this Apr 18, 2026
kelsos added a commit that referenced this pull request Apr 18, 2026
Update the API map table in packages/plainfp/README.md so the
Result and Option rows reflect what the barrels actually export.

Result now lists: tap, tapError, toOption (added in batch #1 and #2).
Option now lists: tap, tapNone, all, any, zip, toResult (same).

Verified every listed symbol against
packages/plainfp/src/<namespace>/index.ts; result-async / arrays /
records / strings / predicates / functions / brand / non-empty-array /
tagged / interop/zod rows were already correct.
kelsos added a commit that referenced this pull request Apr 18, 2026
Update the API map table in packages/plainfp/README.md so the
Result and Option rows reflect what the barrels actually export.

Result now lists: tap, tapError, toOption (added in batch #1 and #2).
Option now lists: tap, tapNone, all, any, zip, toResult (same).

Verified every listed symbol against
packages/plainfp/src/<namespace>/index.ts; result-async / arrays /
records / strings / predicates / functions / brand / non-empty-array /
tagged / interop/zod rows were already correct.
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.

1 participant