Skip to content

feat(contract): store rounds on Consensus.sol contract (#747) #263

feat(contract): store rounds on Consensus.sol contract (#747)

feat(contract): store rounds on Consensus.sol contract (#747) #263

name: Publish (Evm)
env:
DEBUG: napi:*
APP_NAME: evm
MACOSX_DEPLOYMENT_TARGET: "10.13"
permissions:
contents: write
id-token: write
on:
push:
branches:
- "develop"
jobs:
build:
if: "contains(github.event.head_commit.message, 'release:')"
strategy:
fail-fast: false
matrix:
settings:
- host: ubuntu-latest
target: x86_64-unknown-linux-gnu
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian
build: rustup update stable && cd ./packages/evm && pnpm run build-napi --target x86_64-unknown-linux-gnu
- host: ubuntu-latest
target: x86_64-unknown-linux-musl
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
build: rustup update stable && cd ./packages/evm && pnpm run build-napi --target x86_64-unknown-linux-musl
- host: ubuntu-latest
target: aarch64-unknown-linux-gnu
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64
build: rustup update stable && cd ./packages/evm && pnpm run build-napi --target aarch64-unknown-linux-gnu
- host: ubuntu-latest
target: aarch64-unknown-linux-musl
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
build: |-
set -e &&
rustup target add aarch64-unknown-linux-musl &&
rustup update stable && cd ./packages/evm && pnpm run build-napi --target aarch64-unknown-linux-musl
name: stable - ${{ matrix.settings.target }} - node@20
runs-on: ${{ matrix.settings.host }}
steps:
- uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: "20.x"
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
version: latest
- name: Get pnpm store directory
id: pnpm-cache
run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
shell: bash
- name: Cache pnpm modules
uses: actions/cache@v4
with:
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
restore-keys: ${{ runner.os }}-pnpm-
- name: Install dependencies
run: pnpm install
- name: Build in docker
uses: addnab/docker-run-action@v3
if: ${{ matrix.settings.docker }}
with:
image: ${{ matrix.settings.docker }}
options: "--user 0:0 -v ${{ github.workspace }}/.cargo-cache/git/db:/usr/local/cargo/git/db -v ${{ github.workspace }}/.cargo/registry/cache:/usr/local/cargo/registry/cache -v ${{ github.workspace }}/.cargo/registry/index:/usr/local/cargo/registry/index -v ${{ github.workspace }}:/build -w /build"
run: ${{ matrix.settings.build }}
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: bindings-${{ matrix.settings.target }}
path: ./packages/evm/${{ env.APP_NAME }}.*.node
if-no-files-found: error
publish:
name: Publish
if: "contains(github.event.head_commit.message, 'release:')"
runs-on: ubuntu-latest
needs:
- build
steps:
- uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: "20.x"
registry-url: https://registry.npmjs.org/
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
version: latest
- name: Get pnpm store directory
id: pnpm-cache
run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
shell: bash
- name: Cache pnpm modules
uses: actions/cache@v4
with:
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
restore-keys: ${{ runner.os }}-pnpm-
- name: Cache lerna
uses: actions/cache@v4
with:
key: ${{ runner.os }}-lerna
path: ./.cache
restore-keys: ${{ runner.os }}-lerna-
- name: Install dependencies
run: pnpm install
- name: Build
run: pnpm run build
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: ./packages/evm/artifacts
- name: Move artifacts
working-directory: ./packages/evm
run: pnpm artifacts
- name: List packages
working-directory: ./packages/evm
run: ls -R ./npm
shell: bash
- name: Publish to NPM
run: |
pnpm run release -- --publish-branch=develop --tag=evm --no-git-checks
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
# - name: Set dist-tag latest
# run: |
# bash ./scripts/dist-tag-latest.sh
# env:
# NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}