Skip to content

Publish

Publish #101

# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
name: Publish
on:
release:
types:
- created
jobs:
build-test:
name: Build and test (${{ matrix.os }})
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
env:
MAESTRO_API_KEY: ${{ secrets.MAESTRO_API_KEY }}
BLOCKFROST_PREPROD_PROJECT_ID: ${{ secrets.BLOCKFROST_PREPROD_PROJECT_ID }}
steps:
- uses: actions/checkout@v3
- uses: swatinem/rust-cache@v2
- name: Build whisky-common
run: >
cd packages/whisky-common &&
cargo build
--locked
--verbose
- uses: actions/checkout@v3
- uses: swatinem/rust-cache@v2
- name: Build whisky-csl
run: >
cd packages/whisky-csl &&
cargo build
--locked
--verbose
- uses: actions/checkout@v3
- uses: swatinem/rust-cache@v2
- name: Build whisky-js
run: >
cd packages/whisky-js &&
cargo build
--locked
--verbose
- uses: actions/checkout@v3
- uses: swatinem/rust-cache@v2
- name: Build whisky
run: >
cd packages/whisky &&
cargo build
--locked
--verbose
- name: Create .env file
run: >
echo "MAESTRO_API_KEY=${MAESTRO_API_KEY}" > packages/whisky/.env
echo "BLOCKFROST_PREPROD_PROJECT_ID=${BLOCKFROST_PREPROD_PROJECT_ID}" > packages/whisky/.env
- name: Run all tests (without coverage)
if: matrix.os != 'ubuntu-latest'
run: >
cd packages &&
cargo test
--verbose
publish-npm:
needs: [build-test]
name: Publish NPM wasm package
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
registry-url: https://registry.npmjs.org/
- name: Install dependencies
run: npm install && cargo install wasm-pack
- run: npm run js:publish-nodejs && npm run js:publish-browser
env:
NODE_AUTH_TOKEN: ${{secrets.npm_token}}
# publish-common-crate:
# needs: [build-test]
# name: Publish whisky-common crate
# runs-on: ubuntu-latest
# steps:
# - name: Checkout sources
# uses: actions/checkout@v4
# - name: Install stable toolchain
# uses: actions-rs/toolchain@v1
# with:
# profile: minimal
# toolchain: stable
# override: true
# - run: cd packages/whisky-common && cargo publish --token ${PUBLISH_KEY}
# env:
# PUBLISH_KEY: ${{ secrets.PUBLISH_KEY }}
# publish-csl-crate:
# needs: [build-test, publish-common-crate]
# name: Publish whisky-csl crate
# runs-on: ubuntu-latest
# steps:
# - name: Checkout sources
# uses: actions/checkout@v4
# - name: Install stable toolchain
# uses: actions-rs/toolchain@v1
# with:
# profile: minimal
# toolchain: stable
# override: true
# - run: cd packages/whisky-csl && cargo publish --token ${PUBLISH_KEY}
# env:
# PUBLISH_KEY: ${{ secrets.PUBLISH_KEY }}
# publish-whisky-crate:
# needs: [build-test, publish-common-crate, publish-csl-crate]
# name: Publish whisky crate
# runs-on: ubuntu-latest
# steps:
# - name: Checkout sources
# uses: actions/checkout@v4
# - name: Install stable toolchain
# uses: actions-rs/toolchain@v1
# with:
# profile: minimal
# toolchain: stable
# override: true
# - run: cd packages/whisky && cargo publish --token ${PUBLISH_KEY}
# env:
# PUBLISH_KEY: ${{ secrets.PUBLISH_KEY }}