Skip to content

🚀 Publish

🚀 Publish #3

Workflow file for this run

name: 🚀 Publish
on:
release:
types: [created]
jobs:
test:
runs-on: ubuntu-24.04
strategy:
matrix:
node-version:
- 18.x
- 20.x
- 22.x
services:
elasticmq:
image: softwaremill/elasticmq
options: -p 9324:9324 --name elasticmq
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: ElasticMQ Configuration
run: |
cp ${{ github.workspace }}/.github/build/elasticmq.conf /tmp/elasticmq.conf
docker cp /tmp/elasticmq.conf elasticmq:/opt/elasticmq.conf
docker restart elasticmq
- name: Setup pnpm
uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
name: Use Node.js ${{ matrix.node-version }}
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- name: Install Dependencies
run: pnpm install
- name: Check lint
run: pnpm biome ci
- name: Run Tests
run: pnpm run test:e2e
publish-npm:
runs-on: ubuntu-24.04
needs: test
permissions:
contents: read
id-token: write
packages: write
steps:
- name: ⬇️ Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 20.x
- uses: pnpm/action-setup@v4
name: Install pnpm
id: pnpm-install
with:
run_install: false
- name: Install Dependencies
run: pnpm install --frozen-lockfile --strict-peer-dependencies
- name: Build
run: pnpm build
- name: 📝 Version
env:
TAG_NAME: ${{ github.event.release.tag_name }}
run: pnpm version ${TAG_NAME} --no-git-tag-version
- name: Set publishing config
run: pnpm config set '//registry.npmjs.org/:_authToken' "${NODE_AUTH_TOKEN}"
env:
NODE_AUTH_TOKEN: ${{ secrets.REGISTRY_TOKEN }}
- name: 🐙 Publish
run: |
pnpm publish --no-git-checks --access=public