Skip to content

v1.0.5

v1.0.5 #109

# 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-provider
run: >
cd packages/whisky-provider &&
cargo build
--locked
--verbose
- uses: actions/checkout@v3
- uses: swatinem/rust-cache@v2
- name: Build whisky-wallet
run: >
cd packages/whisky-wallet &&
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:
MAESTRO_API_KEY: ${{ secrets.MAESTRO_API_KEY }}
BLOCKFROST_PREPROD_PROJECT_ID: ${{ secrets.BLOCKFROST_PREPROD_PROJECT_ID }}
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-wallet-crate:
needs: [build-test, publish-common-crate, publish-csl-crate]
name: Publish whisky-wallet 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-wallet && cargo publish --token ${PUBLISH_KEY}
env:
PUBLISH_KEY: ${{ secrets.PUBLISH_KEY }}
publish-provider-crate:
needs: [build-test, publish-common-crate, publish-csl-crate]
name: Publish whisky-provider 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-provider && cargo publish --token ${PUBLISH_KEY}
env:
PUBLISH_KEY: ${{ secrets.PUBLISH_KEY }}
publish-whisky-crate:
needs:
[
build-test,
publish-common-crate,
publish-csl-crate,
publish-provider-crate,
publish-wallet-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 }}