Skip to content

fix typo

fix typo #23

name: release + publish
on:
workflow_dispatch:
push:
branches:
- 'master'
paths:
- 'packages/**'
- '.github/workflows/publish-packages.yml'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9
- name: Setup Rust Toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
target: wasm32-unknown-unknown
override: true
- name: Install wasm-pack
run: cargo install wasm-pack
- name: Install
env:
DEPS_AUTO_DENY: "true"
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm -r build
- name: Check Artifact Size
run: du -sh packages/**/dist
- name: Upload Build Artifacts
uses: actions/upload-artifact@v4
with:
name: built-packages
path: |
packages/**/dist/
publish:
runs-on: ubuntu-latest
needs: build
strategy:
fail-fast: false
matrix:
include:
- package: 'core'
- package: 'wrapper'
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9
- name: Download Build Artifacts
uses: actions/download-artifact@v4
with:
name: built-packages
path: .
- name: Install Dependencies
run: pnpm install --frozen-lockfile --ignore-scripts
- name: Find Package
id: find_package
run: |
PKG_PATH=$(find packages -type d -name "${{ matrix.package }}" -print -quit)
echo "the_path=$PKG_PATH" >> "$GITHUB_OUTPUT"
- name: Check NPM Version
id: check_version
run: |
PACKAGE_JSON="${{ steps.find_package.outputs.the_path }}/package.json"
PACKAGE_NAME=$(jq -r .name "$PACKAGE_JSON")
PACKAGE_VERSION=$(jq -r .version "$PACKAGE_JSON")
if npm show "$PACKAGE_NAME@$PACKAGE_VERSION" > /dev/null 2>&1; then
echo "version_exists=true" >> "$GITHUB_OUTPUT"
else
echo "version_exists=false" >> "$GITHUB_OUTPUT"
fi
- name: Publish Package
id: publish
if: steps.check_version.outputs.version_exists == 'false'
uses: JS-DevTools/npm-publish@v3
with:
token: ${{ secrets.NPM_TOKEN }}
package: ${{ steps.find_package.outputs.the_path }}/package.json
strategy: all
access: public
- name: Set Meta
if: steps.check_version.outputs.version_exists == 'false'
id: meta
run: |
RELEASE_SLUG="${{ matrix.package }}@v${{ steps.publish.outputs.version }}"
echo "release_slug=$RELEASE_SLUG" >> "$GITHUB_OUTPUT"
- name: Archive Subdirectory
if: steps.check_version.outputs.version_exists == 'false'
id: archive
run: |
zip -r "${{ steps.meta.outputs.release_slug }}.zip" "${{ steps.find_package.outputs.the_path }}"
- name: Create Release ${{ steps.meta.outputs.release_slug }}
if: steps.check_version.outputs.version_exists == 'false'
id: create_release
uses: actions/create-release@latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.meta.outputs.release_slug }}
release_name: ${{ steps.meta.outputs.release_slug }}
body: ""
draft: false
prerelease: true
- name: Upload Release Asset
if: steps.check_version.outputs.version_exists == 'false'
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./${{ steps.meta.outputs.release_slug }}.zip
asset_name: ${{ steps.meta.outputs.release_slug }}.zip
asset_content_type: application/zip