name: Build release of Nym smart contracts on: workflow_dispatch: release: types: [created] jobs: build: if: ${{ (startsWith(github.ref, 'refs/tags/nym-contracts-') && github.event_name == 'release') || github.event_name == 'workflow_dispatch' }} runs-on: [self-hosted, custom-runner-linux] steps: - uses: actions/checkout@v2 - name: Install Rust stable uses: actions-rs/toolchain@v1 with: toolchain: stable target: wasm32-unknown-unknown override: true components: rustfmt, clippy - name: Install wasm-opt run: cargo install --version 0.112.0 wasm-opt - name: Build release contracts run: make wasm - name: Upload Mixnet Contract Artifact uses: actions/upload-artifact@v3 with: name: mixnet_contract.wasm path: contracts/target/wasm32-unknown-unknown/release/mixnet_contract.wasm retention-days: 5 - name: Upload Vesting Contract Artifact uses: actions/upload-artifact@v3 with: name: vesting_contract.wasm path: contracts/target/wasm32-unknown-unknown/release/vesting_contract.wasm retention-days: 5 - name: Upload to release based on tag name uses: softprops/action-gh-release@v1 if: github.event_name == 'release' with: files: | contracts/target/wasm32-unknown-unknown/release/vesting_contract.wasm contracts/target/wasm32-unknown-unknown/release/mixnet_contract.wasm