diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 00000000..29202b7c --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,38 @@ +name: Publish Packages +on: + push: + tags: + - "v*.*.*" +jobs: + publish-rust: + runs-on: ubuntu-latest + environment: release # Optional: for enhanced security + permissions: + contents: read + id-token: write # Required for OIDC token exchange + steps: + - name: Setup Rust + uses: actions-rust-lang/setup-rust-toolchain@fb51252c7ba57d633bc668f941da052e410add48 + with: + toolchain: nightly,stable + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 + - uses: rust-lang/crates-io-auth-action@e919bc7605cde86df457cf5b93c5e103838bd879 + id: auth + - run: cargo publish + env: + CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} + publish-npm: + runs-on: ubuntu-latest + environment: release # Optional: for enhanced security + permissions: + contents: read + id-token: write + steps: + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 + # Setup .npmrc file to publish to npm + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 + with: + node-version: "lts/*" + registry-url: "https://registry.npmjs.org" + - run: npm ci + - run: npm publish