name: publish-nym-binaries on: workflow_dispatch: inputs: add_tokio_unstable: description: 'True to add RUSTFLAGS="--cfg tokio_unstable"' required: true default: false type: boolean release: types: [created] env: NETWORK: mainnet jobs: publish-nym: if: ${{ (startsWith(github.ref, 'refs/tags/nym-binaries-') && github.event_name == 'release') || github.event_name == 'workflow_dispatch' }} strategy: fail-fast: false matrix: platform: [custom-ubuntu-20.04] runs-on: ${{ matrix.platform }} outputs: release_id: ${{ steps.create-release.outputs.id }} release_date: ${{ fromJSON(steps.create-release.outputs.assets)[0].published_at }} client_hash: ${{ steps.binary-hashes.outputs.client_hash }} nymvisor_hash: ${{ steps.binary-hashes.outputs.nymvisor_hash }} nymnode_hash: ${{ steps.binary-hashes.outputs.nymnode_hash }} socks5_hash: ${{ steps.binary-hashes.outputs.socks5_hash }} netreq_hash: ${{ steps.binary-hashes.outputs.netreq_hash }} cli_hash: ${{ steps.binary-hashes.outputs.cli_hash }} client_version: ${{ steps.binary-versions.outputs.client_version }} nymvisor_version: ${{ steps.binary-versions.outputs.nymvisor_version }} nymnode_version: ${{ steps.binary-versions.outputs.nymnode_version }} socks5_version: ${{ steps.binary-versions.outputs.socks5_version }} netreq_version: ${{ steps.binary-versions.outputs.netreq_version }} cli_version: ${{ steps.binary-versions.outputs.cli_version }} steps: - uses: actions/checkout@v3 - name: Install Dependencies (Linux) run: sudo apt-get update && sudo apt-get -y install ripgrep libwebkit2gtk-4.0-dev build-essential curl wget libssl-dev libgtk-3-dev libudev-dev squashfs-tools continue-on-error: true - name: Sets env vars for tokio if set in manual dispatch inputs run: | echo 'RUSTFLAGS="--cfg tokio_unstable"' >> $GITHUB_ENV if: github.event_name == 'workflow_dispatch' && inputs.add_tokio_unstable == true - name: Install Rust stable uses: actions-rs/toolchain@v1 with: toolchain: stable - name: Build all binaries uses: actions-rs/cargo@v1 with: command: build args: --workspace --release - name: Upload Artifact uses: actions/upload-artifact@v3 with: name: my-artifact path: | target/release/explorer-api target/release/nym-client target/release/nym-socks5-client target/release/nym-api target/release/nym-network-requester target/release/nym-cli target/release/nymvisor target/release/nym-node retention-days: 30 - id: create-release name: Upload to release based on tag name uses: softprops/action-gh-release@v1 if: github.event_name == 'release' with: files: | target/release/explorer-api target/release/nym-client target/release/nym-socks5-client target/release/nym-api target/release/nym-network-requester target/release/nym-cli target/release/nymvisor target/release/nym-node push-release-data-client: if: ${{ (startsWith(github.ref, 'refs/tags/nym-binaries-') && github.event_name == 'release') || github.event_name == 'workflow_dispatch' }} uses: ./.github/workflows/release-calculate-hash.yml needs: publish-nym with: release_tag: ${{ github.ref_name }} secrets: inherit