Skip to content

ci: Add preview publish workflow for PRs - #17

Merged
i11v merged 6 commits into
mainfrom
claude/npm-pr-publish-hash-xGts1
Feb 11, 2026
Merged

i11v merged 6 commits into
mainfrom
claude/npm-pr-publish-hash-xGts1

Conversation

@i11v

@i11v i11v commented Feb 10, 2026

Copy link
Copy Markdown
Owner

Automatically publishes a preview package to npm for each open PR, versioned as 0.0.0-pr.. with a pr- dist-tag. Cleans up the dist-tag when the PR is closed.

https://claude.ai/code/session_01KU3xVUdpt6CP6sjwRFFydY

Automatically publishes a preview package to npm for each open PR,
versioned as 0.0.0-pr.<number>.<sha> with a pr-<number> dist-tag.
Cleans up the dist-tag when the PR is closed.

https://claude.ai/code/session_01KU3xVUdpt6CP6sjwRFFydY
@github-actions

Copy link
Copy Markdown

JMAP Spec Coverage

effect-jmap@0.8.0 coverage:spec /home/runner/work/effect-jmap/effect-jmap
tsx scripts/spec-coverage.ts --markdown

Overall: 15/31 methods (48.4%)

Blob (0/4)

Method Status
copy ⬚
get ⬚
lookup ⬚
upload ⬚

Core (0/1)

Method Status
echo ⬚

Email (6/8)

Method Status
get ✅
set ✅
query ✅
queryChanges ✅
changes ⬚
copy ✅
import ✅
parse ⬚

EmailSubmission (5/5)

Method Status
get ✅
set ✅
query ✅
queryChanges ✅
changes ✅

Identity (0/3)

Method Status
get ⬚
set ⬚
changes ⬚

Mailbox (4/5)

Method Status
get ✅
set ✅
query ✅
queryChanges ✅
changes ⬚

SearchSnippet (0/1)

Method Status
get ⬚

Thread (0/2)

Method Status
get ⬚
changes ⬚

VacationResponse (0/2)

Method Status
get ⬚
set ⬚

Adds id-token: write permission and NPM_CONFIG_PROVENANCE to bypass
2FA/OTP requirement, matching the release workflow approach.
@github-actions

Copy link
Copy Markdown

JMAP Spec Coverage

effect-jmap@0.8.0 coverage:spec /home/runner/work/effect-jmap/effect-jmap
tsx scripts/spec-coverage.ts --markdown

Overall: 15/31 methods (48.4%)

Blob (0/4)

Method Status
copy ⬚
get ⬚
lookup ⬚
upload ⬚

Core (0/1)

Method Status
echo ⬚

Email (6/8)

Method Status
get ✅
set ✅
query ✅
queryChanges ✅
changes ⬚
copy ✅
import ✅
parse ⬚

EmailSubmission (5/5)

Method Status
get ✅
set ✅
query ✅
queryChanges ✅
changes ✅

Identity (0/3)

Method Status
get ⬚
set ⬚
changes ⬚

Mailbox (4/5)

Method Status
get ✅
set ✅
query ✅
queryChanges ✅
changes ⬚

SearchSnippet (0/1)

Method Status
get ⬚

Thread (0/2)

Method Status
get ⬚
changes ⬚

VacationResponse (0/2)

Method Status
get ⬚
set ⬚

Remove static token auth and use npm OIDC token exchange to bypass
2FA requirement, matching how semantic-release publishes.
@github-actions

Copy link
Copy Markdown

JMAP Spec Coverage

effect-jmap@0.8.0 coverage:spec /home/runner/work/effect-jmap/effect-jmap
tsx scripts/spec-coverage.ts --markdown

Overall: 15/31 methods (48.4%)

Blob (0/4)

Method Status
copy ⬚
get ⬚
lookup ⬚
upload ⬚

Core (0/1)

Method Status
echo ⬚

Email (6/8)

Method Status
get ✅
set ✅
query ✅
queryChanges ✅
changes ⬚
copy ✅
import ✅
parse ⬚

EmailSubmission (5/5)

Method Status
get ✅
set ✅
query ✅
queryChanges ✅
changes ✅

Identity (0/3)

Method Status
get ⬚
set ⬚
changes ⬚

Mailbox (4/5)

Method Status
get ✅
set ✅
query ✅
queryChanges ✅
changes ⬚

SearchSnippet (0/1)

Method Status
get ⬚

Thread (0/2)

Method Status
get ⬚
changes ⬚

VacationResponse (0/2)

Method Status
get ⬚
set ⬚

OIDC trusted publishing only supports one workflow per package.
Use granular token with bypass 2FA instead.
@github-actions

Copy link
Copy Markdown

JMAP Spec Coverage

effect-jmap@0.8.0 coverage:spec /home/runner/work/effect-jmap/effect-jmap
tsx scripts/spec-coverage.ts --markdown

Overall: 15/31 methods (48.4%)

Blob (0/4)

Method Status
copy ⬚
get ⬚
lookup ⬚
upload ⬚

Core (0/1)

Method Status
echo ⬚

Email (6/8)

Method Status
get ✅
set ✅
query ✅
queryChanges ✅
changes ⬚
copy ✅
import ✅
parse ⬚

EmailSubmission (5/5)

Method Status
get ✅
set ✅
query ✅
queryChanges ✅
changes ✅

Identity (0/3)

Method Status
get ⬚
set ⬚
changes ⬚

Mailbox (4/5)

Method Status
get ✅
set ✅
query ✅
queryChanges ✅
changes ⬚

SearchSnippet (0/1)

Method Status
get ⬚

Thread (0/2)

Method Status
get ⬚
changes ⬚

VacationResponse (0/2)

Method Status
get ⬚
set ⬚

Move preview publish and cleanup jobs into publish.yml so they share
the same trusted publisher configuration. This lets preview publishes
use OIDC token exchange instead of a static NPM_TOKEN, bypassing 2FA.
@github-actions

github-actions Bot commented Feb 11, 2026 •

Copy link
Copy Markdown

Preview Package Published

pnpm add effect-jmap@0.0.0-pr.17.1415978
# or
pnpm add effect-jmap@pr-17

Published from commit 1415978

@github-actions

Copy link
Copy Markdown

JMAP Spec Coverage

effect-jmap@0.8.0 coverage:spec /home/runner/work/effect-jmap/effect-jmap
tsx scripts/spec-coverage.ts --markdown

Overall: 15/31 methods (48.4%)

Blob (0/4)

Method Status
copy ⬚
get ⬚
lookup ⬚
upload ⬚

Core (0/1)

Method Status
echo ⬚

Email (6/8)

Method Status
get ✅
set ✅
query ✅
queryChanges ✅
changes ⬚
copy ✅
import ✅
parse ⬚

EmailSubmission (5/5)

Method Status
get ✅
set ✅
query ✅
queryChanges ✅
changes ✅

Identity (0/3)

Method Status
get ⬚
set ⬚
changes ⬚

Mailbox (4/5)

Method Status
get ✅
set ✅
query ✅
queryChanges ✅
changes ⬚

SearchSnippet (0/1)

Method Status
get ⬚

Thread (0/2)

Method Status
get ⬚
changes ⬚

VacationResponse (0/2)

Method Status
get ⬚
set ⬚

@github-actions

Copy link
Copy Markdown

JMAP Spec Coverage

effect-jmap@0.8.0 coverage:spec /home/runner/work/effect-jmap/effect-jmap
tsx scripts/spec-coverage.ts --markdown

Overall: 15/31 methods (48.4%)

Blob (0/4)

Method Status
copy ⬚
get ⬚
lookup ⬚
upload ⬚

Core (0/1)

Method Status
echo ⬚

Email (6/8)

Method Status
get ✅
set ✅
query ✅
queryChanges ✅
changes ⬚
copy ✅
import ✅
parse ⬚

EmailSubmission (5/5)

Method Status
get ✅
set ✅
query ✅
queryChanges ✅
changes ✅

Identity (0/3)

Method Status
get ⬚
set ⬚
changes ⬚

Mailbox (4/5)

Method Status
get ✅
set ✅
query ✅
queryChanges ✅
changes ⬚

SearchSnippet (0/1)

Method Status
get ⬚

Thread (0/2)

Method Status
get ⬚
changes ⬚

VacationResponse (0/2)

Method Status
get ⬚
set ⬚

@i11v
i11v merged commit 68eedbe into main Feb 11, 2026
9 checks passed
@i11v
i11v deleted the claude/npm-pr-publish-hash-xGts1 branch February 11, 2026 00:16
@effect-jmap-release

Copy link
Copy Markdown

🎉 This PR is included in version 0.9.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants