diff --git a/.github/workflows/nym-connect-publish-macos.yml b/.github/workflows/nym-connect-publish-macos.yml index 379443d4dd..e536ad5a08 100644 --- a/.github/workflows/nym-connect-publish-macos.yml +++ b/.github/workflows/nym-connect-publish-macos.yml @@ -15,8 +15,15 @@ jobs: fail-fast: false matrix: platform: [macos-latest] - runs-on: ${{ matrix.platform }} + + outputs: + release_id: ${{ steps.create-release.outputs.id }} + release_date: ${{ fromJSON(steps.create-release.outputs.assets)[0].published_at }} + version: ${{ steps.release-info.outputs.version }} + filename: ${{ steps.release-info.outputs.filename }} + file_hash: ${{ steps.release-info.outputs.file_hash }} + steps: - uses: actions/checkout@v2 @@ -81,10 +88,38 @@ jobs: run: | security delete-keychain $RUNNER_TEMP/app-signing.keychain-db - - name: Upload to release based on tag name + - id: create-release + name: Upload to release based on tag name uses: softprops/action-gh-release@v1 if: github.event_name == 'release' with: files: | nym-connect/desktop/target/release/bundle/dmg/*.dmg nym-connect/desktop/target/release/bundle/macos/*.app.tar.gz* + - id: release-info + name: Prepare release info + run: | + semver="${${{ github.ref_name }}##nym-connect-}" && semver="${semver##v}" + echo "version=$semver" >> "$GITHUB_OUTPUT" + echo "filename=nym-connect_$version_x64.dmg" >> "$GITHUB_OUTPUT" + echo "file_hash=${{ hashFiles('nym-connect/desktop/target/release/bundle/dmg/nym-connect_*_x64.dmg') }}" >> "$GITHUB_OUTPUT" + + push-release-data: + if: ${{ (startsWith(github.ref, 'refs/tags/nym-connect-') && github.event_name == 'release') || github.event_name == 'workflow_dispatch' }} + uses: ./.github/workflows/push-release-data.yml + needs: publish-tauri + with: + release_tag: ${{ github.ref_name }} + release_id: ${{ needs.publish-tauri.outputs.release_id }} + release_date: ${{ needs.publish-tauri.outputs.release_date }} + download_base_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }} + changelog_url: https://github.com/nymtech/nym/blob/${{ github.ref_name }}/nym-connect/desktop/CHANGELOG.md + archive_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }}/nym-connect.app.tar.gz + sig_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }}/nym-connect.app.tar.gz.sig + version: ${{ needs.publish-tauri.outputs.version }} + filename: ${{ needs.publish-tauri.outputs.filename }} + file_hash: ${{ needs.publish-tauri.outputs.file_hash }} + name: NymConnect + category: connect + platform: MacOS + secrets: inherit diff --git a/.github/workflows/nym-connect-publish-ubuntu.yml b/.github/workflows/nym-connect-publish-ubuntu.yml index 25d288581d..1618167a26 100644 --- a/.github/workflows/nym-connect-publish-ubuntu.yml +++ b/.github/workflows/nym-connect-publish-ubuntu.yml @@ -15,8 +15,15 @@ jobs: fail-fast: false matrix: platform: [custom-runner-linux] - runs-on: ${{ matrix.platform }} + + outputs: + release_id: ${{ steps.create-release.outputs.id }} + release_date: ${{ fromJSON(steps.create-release.outputs.assets)[0].published_at }} + version: ${{ steps.release-info.outputs.version }} + filename: ${{ steps.release-info.outputs.filename }} + file_hash: ${{ steps.release-info.outputs.file_hash }} + steps: - uses: actions/checkout@v2 @@ -56,10 +63,38 @@ jobs: path: nym-connect/desktop/target/release/bundle/appimage/nym-connect_1.0.0_amd64.AppImage retention-days: 30 - - name: Upload to release based on tag name + - id: create-release + name: Upload to release based on tag name uses: softprops/action-gh-release@v1 if: github.event_name == 'release' with: files: | nym-connect/desktop/target/release/bundle/appimage/*.AppImage nym-connect/desktop/target/release/bundle/appimage/*.AppImage.tar.gz* + - id: release-info + name: Prepare release info + run: | + semver="${${{ github.ref_name }}##nym-connect-}" && semver="${semver##v}" + echo "version=$semver" >> "$GITHUB_OUTPUT" + echo "filename=nym-connect_$version_amd64.AppImage" >> "$GITHUB_OUTPUT" + echo "file_hash=${{ hashFiles('nym-connect/desktop/target/release/bundle/appimage/nym-connect_*_amd64.AppImage') }}" >> "$GITHUB_OUTPUT" + + push-release-data: + if: ${{ (startsWith(github.ref, 'refs/tags/nym-connect-') && github.event_name == 'release') || github.event_name == 'workflow_dispatch' }} + uses: ./.github/workflows/push-release-data.yml + needs: publish-tauri + with: + release_tag: ${{ github.ref_name }} + release_id: ${{ needs.publish-tauri.outputs.release_id }} + release_date: ${{ needs.publish-tauri.outputs.release_date }} + download_base_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }} + changelog_url: https://github.com/nymtech/nym/blob/${{ github.ref_name }}/nym-connect/desktop/CHANGELOG.md + archive_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }}/nym-connect_${{ needs.publish-tauri.outputs.version }}_amd64.AppImage.tar.gz + sig_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }}/nym-connect_${{ needs.publish-tauri.outputs.version }}_amd64.AppImage.tar.gz.sig + version: ${{ needs.publish-tauri.outputs.version }} + filename: ${{ needs.publish-tauri.outputs.filename }} + file_hash: ${{ needs.publish-tauri.outputs.file_hash }} + name: NymConnect + category: connect + platform: Ubuntu + secrets: inherit diff --git a/.github/workflows/nym-connect-publish-windows10.yml b/.github/workflows/nym-connect-publish-windows10.yml index 4a869caf3e..9b568cfd74 100644 --- a/.github/workflows/nym-connect-publish-windows10.yml +++ b/.github/workflows/nym-connect-publish-windows10.yml @@ -15,8 +15,15 @@ jobs: fail-fast: false matrix: platform: [windows10] - runs-on: ${{ matrix.platform }} + + outputs: + release_id: ${{ steps.create-release.outputs.id }} + release_date: ${{ fromJSON(steps.create-release.outputs.assets)[0].published_at }} + version: ${{ steps.release-info.outputs.version }} + filename: ${{ steps.release-info.outputs.filename }} + file_hash: ${{ steps.release-info.outputs.file_hash }} + steps: - name: Clean up first continue-on-error: true @@ -75,10 +82,38 @@ jobs: path: nym-connect/desktop/target/release/bundle/msi/nym-connect_1.0.0_x64_en-US.msi retention-days: 30 - - name: Upload to release based on tag name + - id: create-release + name: Upload to release based on tag name uses: softprops/action-gh-release@v1 if: github.event_name == 'release' with: files: | nym-connect/desktop/target/release/bundle/msi/*.msi nym-connect/desktop/target/release/bundle/msi/*.msi.zip* + - id: release-info + name: Prepare release info + run: | + semver="${${{ github.ref_name }}##nym-connect-}" && semver="${semver##v}" + echo "version=$semver" >> "$GITHUB_OUTPUT" + echo "filename=nym-connect_$version_x64_en-US.msi" >> "$GITHUB_OUTPUT" + echo "file_hash=${{ hashFiles('nym-connect/desktop/target/release/bundle/msi/nym-connect_*_x64_en-US.msi') }}" >> "$GITHUB_OUTPUT" + + push-release-data: + if: ${{ (startsWith(github.ref, 'refs/tags/nym-connect-') && github.event_name == 'release') || github.event_name == 'workflow_dispatch' }} + uses: ./.github/workflows/push-release-data.yml + needs: publish-tauri + with: + release_tag: ${{ github.ref_name }} + release_id: ${{ needs.publish-tauri.outputs.release_id }} + release_date: ${{ needs.publish-tauri.outputs.release_date }} + download_base_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }} + changelog_url: https://github.com/nymtech/nym/blob/${{ github.ref_name }}/nym-connect/desktop/CHANGELOG.md + archive_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }}/nym-connect_${{ needs.publish-tauri.outputs.version }}_x64_en-US.msi.zip + sig_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }}/nym-connect_${{ needs.publish-tauri.outputs.version }}_x64_en-US.msi.zip.sig + version: ${{ needs.publish-tauri.outputs.version }} + filename: ${{ needs.publish-tauri.outputs.filename }} + file_hash: ${{ needs.publish-tauri.outputs.file_hash }} + name: NymConnect + category: connect + platform: Windows + secrets: inherit diff --git a/.github/workflows/nym-release-publish.yml b/.github/workflows/nym-release-publish.yml index a73eabfcb3..9252d7122d 100644 --- a/.github/workflows/nym-release-publish.yml +++ b/.github/workflows/nym-release-publish.yml @@ -2,17 +2,17 @@ name: Publish Nym binaries on: workflow_dispatch: - inputs: + inputs: add_tokio_unstable: description: 'True to add RUSTFLAGS="--cfg tokio_unstable"' required: true default: false - type: boolean + type: boolean release: types: [created] - + env: - NETWORK: mainnet + NETWORK: mainnet jobs: publish-nym: @@ -21,15 +21,33 @@ jobs: fail-fast: false matrix: platform: [custom-runner-linux] - 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 }} + mixnode_hash: ${{ steps.binary-hashes.outputs.mixnode_hash }} + gateway_hash: ${{ steps.binary-hashes.outputs.gateway_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 }} + netstat_hash: ${{ steps.binary-hashes.outputs.netstat_hash }} + client_version: ${{ steps.binary-versions.outputs.client_version }} + mixnode_version: ${{ steps.binary-versions.outputs.mixnode_version }} + gateway_version: ${{ steps.binary-versions.outputs.gateway_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 }} + netstat_version: ${{ steps.binary-versions.outputs.netstat_version }} + steps: - uses: actions/checkout@v3 - name: Install Dependencies (Linux) - run: sudo apt-get update && sudo apt-get -y install libwebkit2gtk-4.0-dev build-essential curl wget libssl-dev libgtk-3-dev libudev-dev squashfs-tools + 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 @@ -62,7 +80,8 @@ jobs: target/release/nym-cli retention-days: 30 - - name: Upload to release based on tag name + - id: create-release + name: Upload to release based on tag name uses: softprops/action-gh-release@v1 if: github.event_name == 'release' with: @@ -76,3 +95,150 @@ jobs: target/release/nym-network-requester target/release/nym-network-statistics target/release/nym-cli + + - id: release-info + name: Prepare release info + run: | + semver="${${{ github.ref_name }}##nym-binaries-}" && semver="${semver##v}" + echo "version=$semver" >> "$GITHUB_OUTPUT" + + - id: binary-hashes + name: Generate binary hashes + run: | + echo "client_hash=${{ hashFiles('target/release/nym-client') }}" >> "$GITHUB_OUTPUT" + echo "mixnode_hash=${{ hashFiles('target/release/nym-mixnode') }}" >> "$GITHUB_OUTPUT" + echo "gateway_hash=${{ hashFiles('target/release/nym-gateway') }}" >> "$GITHUB_OUTPUT" + echo "socks5_hash=${{ hashFiles('target/release/nym-socks5-client') }}" >> "$GITHUB_OUTPUT" + echo "netreq_hash=${{ hashFiles('target/release/nym-network-requester') }}" >> "$GITHUB_OUTPUT" + echo "cli_hash=${{ hashFiles('target/release/nym-cli') }}" >> "$GITHUB_OUTPUT" + echo "netstat_hash=${{ hashFiles('target/release/nym-network-statistics') }}" >> "$GITHUB_OUTPUT" + + - id: binary-versions + name: Get binary versions + run: | + v=$(rg '^version = "(.*)"' -or '$1' clients/native/Cargo.toml) && echo "client_version=$v" >> "$GITHUB_OUTPUT" + v=$(rg '^version = "(.*)"' -or '$1' mixnode/Cargo.toml) && echo "mixnode_version=$v" >> "$GITHUB_OUTPUT" + v=$(rg '^version = "(.*)"' -or '$1' gateway/Cargo.toml) && echo "gateway_version=$v" >> "$GITHUB_OUTPUT" + v=$(rg '^version = "(.*)"' -or '$1' clients/socks5/Cargo.toml) && echo "socks5_version=$v" >> "$GITHUB_OUTPUT" + v=$(rg '^version = "(.*)"' -or '$1' service-providers/network-requester/Cargo.toml) && echo "netreq_version=$v" >> "$GITHUB_OUTPUT" + v=$(rg '^version = "(.*)"' -or '$1' tools/nym-cli/Cargo.toml) && echo "cli_version=$v" >> "$GITHUB_OUTPUT" + v=$(rg '^version = "(.*)"' -or '$1' service-providers/network-statistics/Cargo.toml) && echo "netstat_version=$v" >> "$GITHUB_OUTPUT" + + push-release-data-client: + if: ${{ (startsWith(github.ref, 'refs/tags/nym-binaries-') && github.event_name == 'release') || github.event_name == 'workflow_dispatch' }} + uses: ./.github/workflows/push-release-data.yml + needs: publish-nym + with: + release_tag: ${{ github.ref_name }} + release_id: ${{ needs.publish-nym.outputs.release_id }} + release_date: ${{ needs.publish-nym.outputs.release_date }} + download_base_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }} + changelog_url: https://github.com/nymtech/nym/blob/${{ github.ref_name }}/CHANGELOG.md + version: ${{ needs.publish-nym.outputs.client_version }} + filename: nym-client + file_hash: ${{ needs.publish-nym.outputs.client_hash }} + name: Client + category: binaries + secrets: inherit + + push-release-data-mixnode: + if: ${{ (startsWith(github.ref, 'refs/tags/nym-binaries-') && github.event_name == 'release') || github.event_name == 'workflow_dispatch' }} + uses: ./.github/workflows/push-release-data.yml + needs: publish-nym + with: + release_tag: ${{ github.ref_name }} + release_id: ${{ needs.publish-nym.outputs.release_id }} + release_date: ${{ needs.publish-nym.outputs.release_date }} + download_base_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }} + changelog_url: https://github.com/nymtech/nym/blob/${{ github.ref_name }}/CHANGELOG.md + version: ${{ needs.publish-nym.outputs.mixnode_version }} + filename: nym-mixnode + file_hash: ${{ needs.publish-nym.outputs.mixnode_hash }} + name: Mixnode + category: binaries + secrets: inherit + + push-release-data-gateway: + if: ${{ (startsWith(github.ref, 'refs/tags/nym-binaries-') && github.event_name == 'release') || github.event_name == 'workflow_dispatch' }} + uses: ./.github/workflows/push-release-data.yml + needs: publish-nym + with: + release_tag: ${{ github.ref_name }} + release_id: ${{ needs.publish-nym.outputs.release_id }} + release_date: ${{ needs.publish-nym.outputs.release_date }} + download_base_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }} + changelog_url: https://github.com/nymtech/nym/blob/${{ github.ref_name }}/CHANGELOG.md + version: ${{ needs.publish-nym.outputs.gateway_version }} + filename: nym-gateway + file_hash: ${{ needs.publish-nym.outputs.gateway_hash }} + name: Gateway + category: binaries + secrets: inherit + + push-release-data-socks5: + if: ${{ (startsWith(github.ref, 'refs/tags/nym-binaries-') && github.event_name == 'release') || github.event_name == 'workflow_dispatch' }} + uses: ./.github/workflows/push-release-data.yml + needs: publish-nym + with: + release_tag: ${{ github.ref_name }} + release_id: ${{ needs.publish-nym.outputs.release_id }} + release_date: ${{ needs.publish-nym.outputs.release_date }} + download_base_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }} + changelog_url: https://github.com/nymtech/nym/blob/${{ github.ref_name }}/CHANGELOG.md + version: ${{ needs.publish-nym.outputs.socks5_version }} + filename: nym-socks5-client + file_hash: ${{ needs.publish-nym.outputs.socks5_hash }} + name: Socks5 Client + category: binaries + secrets: inherit + + push-release-data-network-requester: + if: ${{ (startsWith(github.ref, 'refs/tags/nym-binaries-') && github.event_name == 'release') || github.event_name == 'workflow_dispatch' }} + uses: ./.github/workflows/push-release-data.yml + needs: publish-nym + with: + release_tag: ${{ github.ref_name }} + release_id: ${{ needs.publish-nym.outputs.release_id }} + release_date: ${{ needs.publish-nym.outputs.release_date }} + download_base_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }} + changelog_url: https://github.com/nymtech/nym/blob/${{ github.ref_name }}/CHANGELOG.md + version: ${{ needs.publish-nym.outputs.netreq_version }} + filename: nym-network-requester + file_hash: ${{ needs.publish-nym.outputs.netreq_hash }} + name: Network Requester + category: binaries + secrets: inherit + + push-release-data-cli: + if: ${{ (startsWith(github.ref, 'refs/tags/nym-binaries-') && github.event_name == 'release') || github.event_name == 'workflow_dispatch' }} + uses: ./.github/workflows/push-release-data.yml + needs: publish-nym + with: + release_tag: ${{ github.ref_name }} + release_id: ${{ needs.publish-nym.outputs.release_id }} + release_date: ${{ needs.publish-nym.outputs.release_date }} + download_base_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }} + changelog_url: https://github.com/nymtech/nym/blob/${{ github.ref_name }}/CHANGELOG.md + version: ${{ needs.publish-nym.outputs.cli_version }} + filename: nym-cli + file_hash: ${{ needs.publish-nym.outputs.cli_hash }} + name: Cli + category: binaries + secrets: inherit + + push-release-data-network-stat: + if: ${{ (startsWith(github.ref, 'refs/tags/nym-binaries-') && github.event_name == 'release') || github.event_name == 'workflow_dispatch' }} + uses: ./.github/workflows/push-release-data.yml + needs: publish-nym + with: + release_tag: ${{ github.ref_name }} + release_id: ${{ needs.publish-nym.outputs.release_id }} + release_date: ${{ needs.publish-nym.outputs.release_date }} + download_base_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }} + changelog_url: https://github.com/nymtech/nym/blob/${{ github.ref_name }}/CHANGELOG.md + version: ${{ needs.publish-nym.outputs.netstat_version }} + filename: nym-network-statistics + file_hash: ${{ needs.publish-nym.outputs.netstat_hash }} + name: Network Statistics + category: binaries + secrets: inherit diff --git a/.github/workflows/nym-wallet-publish-macos.yml b/.github/workflows/nym-wallet-publish-macos.yml index 81c27a8338..2216222498 100644 --- a/.github/workflows/nym-wallet-publish-macos.yml +++ b/.github/workflows/nym-wallet-publish-macos.yml @@ -15,8 +15,15 @@ jobs: fail-fast: false matrix: platform: [macos-latest] - runs-on: ${{ matrix.platform }} + + outputs: + release_id: ${{ steps.create-release.outputs.id }} + release_date: ${{ fromJSON(steps.create-release.outputs.assets)[0].published_at }} + version: ${{ steps.release-info.outputs.version }} + filename: ${{ steps.release-info.outputs.filename }} + file_hash: ${{ steps.release-info.outputs.file_hash }} + steps: - uses: actions/checkout@v2 @@ -80,11 +87,38 @@ jobs: if: ${{ always() }} run: | security delete-keychain $RUNNER_TEMP/app-signing.keychain-db - - - name: Upload to release based on tag name + - id: create-release + name: Upload to release based on tag name uses: softprops/action-gh-release@v1 if: github.event_name == 'release' with: files: | nym-wallet/target/release/bundle/dmg/*.dmg nym-wallet/target/release/bundle/macos/*.app.tar.gz* + - id: release-info + name: Prepare release info + run: | + semver="${${{ github.ref_name }}##nym-wallet-}" && semver="${semver##v}" + echo "version=$semver" >> "$GITHUB_OUTPUT" + echo "filename=nym-wallet_$version_x64.dmg" >> "$GITHUB_OUTPUT" + echo "file_hash=${{ hashFiles('nym-wallet/target/release/bundle/dmg/nym-wallet_*_x64.dmg') }}" >> "$GITHUB_OUTPUT" + + push-release-data: + if: ${{ (startsWith(github.ref, 'refs/tags/nym-wallet-') && github.event_name == 'release') || github.event_name == 'workflow_dispatch' }} + uses: ./.github/workflows/push-release-data.yml + needs: publish-tauri + with: + release_tag: ${{ github.ref_name }} + release_id: ${{ needs.publish-tauri.outputs.release_id }} + release_date: ${{ needs.publish-tauri.outputs.release_date }} + download_base_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }} + changelog_url: https://github.com/nymtech/nym/blob/${{ github.ref_name }}/nym-wallet/CHANGELOG.md + archive_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }}/nym-wallet.app.tar.gz + sig_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }}/nym-wallet.app.tar.gz.sig + version: ${{ needs.publish-tauri.outputs.version }} + filename: ${{ needs.publish-tauri.outputs.filename }} + file_hash: ${{ needs.publish-tauri.outputs.file_hash }} + name: Wallet + category: wallet + platform: MacOS + secrets: inherit diff --git a/.github/workflows/nym-wallet-publish-ubuntu.yml b/.github/workflows/nym-wallet-publish-ubuntu.yml index 1f2bb0330d..bd40db0783 100644 --- a/.github/workflows/nym-wallet-publish-ubuntu.yml +++ b/.github/workflows/nym-wallet-publish-ubuntu.yml @@ -14,8 +14,15 @@ jobs: fail-fast: false matrix: platform: [custom-runner-linux] - runs-on: ${{ matrix.platform }} + + outputs: + release_id: ${{ steps.create-release.outputs.id }} + release_date: ${{ fromJSON(steps.create-release.outputs.assets)[0].published_at }} + version: ${{ steps.release-info.outputs.version }} + filename: ${{ steps.release-info.outputs.filename }} + file_hash: ${{ steps.release-info.outputs.file_hash }} + steps: - uses: actions/checkout@v2 @@ -47,9 +54,37 @@ jobs: env: TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} - - name: Upload to release based on tag name + - id: create-release + name: Upload to release based on tag name uses: softprops/action-gh-release@v1 with: files: | nym-wallet/target/release/bundle/appimage/*.AppImage nym-wallet/target/release/bundle/appimage/*.AppImage.tar.gz* + - id: release-info + name: Prepare release info + run: | + semver="${${{ github.ref_name }}##nym-wallet-}" && semver="${semver##v}" + echo "version=$semver" >> "$GITHUB_OUTPUT" + echo "filename=nym-wallet_$version_amd64.AppImage" >> "$GITHUB_OUTPUT" + echo "file_hash=${{ hashFiles('nym-wallet/target/release/bundle/appimage/nym-wallet_*_amd64.AppImage') }}" >> "$GITHUB_OUTPUT" + + push-release-data: + if: ${{ (startsWith(github.ref, 'refs/tags/nym-wallet-') && github.event_name == 'release') || github.event_name == 'workflow_dispatch' }} + uses: ./.github/workflows/push-release-data.yml + needs: publish-tauri + with: + release_tag: ${{ github.ref_name }} + release_id: ${{ needs.publish-tauri.outputs.release_id }} + release_date: ${{ needs.publish-tauri.outputs.release_date }} + download_base_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }} + changelog_url: https://github.com/nymtech/nym/blob/${{ github.ref_name }}/nym-wallet/CHANGELOG.md + archive_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }}/nym-wallet_${{ needs.publish-tauri.outputs.version }}_amd64.AppImage.tar.gz + sig_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }}/nym-wallet_${{ needs.publish-tauri.outputs.version }}_amd64.AppImage.tar.gz.sig + version: ${{ needs.publish-tauri.outputs.version }} + filename: ${{ needs.publish-tauri.outputs.filename }} + file_hash: ${{ needs.publish-tauri.outputs.file_hash }} + name: Wallet + category: wallet + platform: Ubuntu + secrets: inherit diff --git a/.github/workflows/nym-wallet-publish-windows10.yml b/.github/workflows/nym-wallet-publish-windows10.yml index 044816953b..567a34980f 100644 --- a/.github/workflows/nym-wallet-publish-windows10.yml +++ b/.github/workflows/nym-wallet-publish-windows10.yml @@ -15,8 +15,15 @@ jobs: fail-fast: false matrix: platform: [windows10] - runs-on: ${{ matrix.platform }} + + outputs: + release_id: ${{ steps.create-release.outputs.id }} + release_date: ${{ fromJSON(steps.create-release.outputs.assets)[0].published_at }} + version: ${{ steps.release-info.outputs.version }} + filename: ${{ steps.release-info.outputs.filename }} + file_hash: ${{ steps.release-info.outputs.file_hash }} + steps: - name: Clean up first continue-on-error: true @@ -75,10 +82,38 @@ jobs: path: nym-wallet/target/release/bundle/msi/nym-wallet_1.*.msi retention-days: 30 - - name: Upload to release based on tag name + - id: create-release + name: Upload to release based on tag name uses: softprops/action-gh-release@v1 if: github.event_name == 'release' with: files: | nym-wallet/target/release/bundle/msi/*.msi nym-wallet/target/release/bundle/msi/*.msi.zip* + - id: release-info + name: Prepare release info + run: | + semver="${${{ github.ref_name }}##nym-wallet-}" && semver="${semver##v}" + echo "version=$semver" >> "$GITHUB_OUTPUT" + echo "filename=nym-wallet_$version_x64_en-US.msi" >> "$GITHUB_OUTPUT" + echo "file_hash=${{ hashFiles('nym-wallet/target/release/bundle/msi/nym-wallet_*_x64_en-US.msi') }}" >> "$GITHUB_OUTPUT" + + push-release-data: + if: ${{ (startsWith(github.ref, 'refs/tags/nym-wallet-') && github.event_name == 'release') || github.event_name == 'workflow_dispatch' }} + uses: ./.github/workflows/push-release-data.yml + needs: publish-tauri + with: + release_tag: ${{ github.ref_name }} + release_id: ${{ needs.publish-tauri.outputs.release_id }} + release_date: ${{ needs.publish-tauri.outputs.release_date }} + download_base_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }} + changelog_url: https://github.com/nymtech/nym/blob/${{ github.ref_name }}/nym-wallet/CHANGELOG.md + archive_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }}/nym-wallet_${{ needs.publish-tauri.outputs.version }}_x64_en-US.msi.zip + sig_url: https://github.com/nymtech/nym/releases/download/${{ github.ref_name }}/nym-wallet_${{ needs.publish-tauri.outputs.version }}_x64_en-US.msi.zip.sig + version: ${{ needs.publish-tauri.outputs.version }} + filename: ${{ needs.publish-tauri.outputs.filename }} + file_hash: ${{ needs.publish-tauri.outputs.file_hash }} + name: Wallet + category: wallet + platform: Windows + secrets: inherit diff --git a/.github/workflows/push-release-data.yml b/.github/workflows/push-release-data.yml index 96bda89178..d1aa591845 100644 --- a/.github/workflows/push-release-data.yml +++ b/.github/workflows/push-release-data.yml @@ -7,6 +7,10 @@ env: on: workflow_call: inputs: + release_tag: + required: true + description: Release tag + type: string release_id: required: true description: Release ID @@ -58,7 +62,7 @@ on: workflow_dispatch: inputs: # ⚠ since inputs are limited to 10 max for workflow_dispatch - # `archive_url` and `sig_url` properties were omitted + # some properties were omitted version: required: true description: Release version (semver) @@ -124,6 +128,10 @@ jobs: runs-on: custom-runner-linux steps: + - name: Release info + run: | + echo "version: ${{ inputs.version }}" + echo "tag: ${{ inputs.release_tag }}" - id: get_sig name: Get sig if: ${{ inputs.sig_url != null }} @@ -136,7 +144,7 @@ jobs: with: url: ${{ env.strapi_download_url }} method: 'POST' - # bearerToken: ${{ secrets.STRAPI_AUTH_TOKEN }} TODO + bearerToken: ${{ secrets.STRAPI_API_TOKEN_RELEASES }} customHeaders: '{"Content-Type": "application/json"}' data: | { @@ -165,6 +173,10 @@ jobs: if: ${{ inputs.category == 'wallet' || inputs.category == 'connect' }} steps: + - name: Release info + run: | + echo "version: ${{ inputs.version }}" + echo "tag: ${{ inputs.release_tag }}" - id: get_sig name: Get sig if: ${{ inputs.sig_url != null }} @@ -177,7 +189,7 @@ jobs: with: url: ${{ env.strapi_updater_url }} method: 'POST' - # bearerToken: ${{ secrets.STRAPI_AUTH_TOKEN }} TODO + bearerToken: ${{ secrets.STRAPI_API_TOKEN_RELEASES }} customHeaders: '{"Content-Type": "application/json"}' data: | {