From c8158ea0d0970f11bb49354fece79545424022c5 Mon Sep 17 00:00:00 2001 From: einliterflasche Date: Fri, 29 Aug 2025 11:22:11 +0200 Subject: [PATCH] use ubuntu 22, clean up packaging of binaries --- .../workflows/build-gui-release-binaries.yml | 4 +- .github/workflows/build-release-binaries.yml | 37 ++++++++++--------- .github/workflows/ci.yml | 32 ++++++++-------- .github/workflows/create-release.yml | 2 +- .github/workflows/draft-new-release.yml | 2 +- .github/workflows/preview-release.yml | 2 +- 6 files changed, 40 insertions(+), 39 deletions(-) diff --git a/.github/workflows/build-gui-release-binaries.yml b/.github/workflows/build-gui-release-binaries.yml index 188be1a8..0e13ce76 100644 --- a/.github/workflows/build-gui-release-binaries.yml +++ b/.github/workflows/build-gui-release-binaries.yml @@ -13,7 +13,7 @@ jobs: draft-cb-release: # Do not publish preview releases to CloudNebula if: ${{ !contains(github.ref_name, 'preview') }} - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 @@ -77,7 +77,7 @@ jobs: publish: if: ${{ !contains(github.ref_name, 'preview') }} # don't publish previews to crabnebula needs: [draft-cb-release, build] - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/build-release-binaries.yml b/.github/workflows/build-release-binaries.yml index cd533beb..94a3f748 100644 --- a/.github/workflows/build-release-binaries.yml +++ b/.github/workflows/build-release-binaries.yml @@ -50,11 +50,17 @@ jobs: target: ${{ matrix.target }} - name: Build ${{ matrix.bin }} in release mode - run: cargo build --bin ${{ matrix.bin }} --release -vv + run: | + BIN_PATH=$( + cargo build --bin ${{ matrix.bin }} --target ${{ matrix.target }} --release -vv \ + --message-format=json \ + | jq -r "select(.reason == \"compiler-artifact\" and .executable != null) | .executable" + ) + echo "BIN_PATH=$BIN_PATH" >> $GITHUB_ENV - name: Smoke test the binary if: matrix.bin != 'orchestrator' # ignore orchestrator, since it's interactive - run: target/${{ matrix.target }}/release/${{ matrix.bin }} --help + run: ${{ env.BIN_PATH }} --help - id: create-archive-name shell: python @@ -71,22 +77,17 @@ jobs: print(f'::set-output name=archive::{archive_name}') - - name: Pack macos archive - if: contains(matrix.target, 'apple') - shell: bash - run: gtar -C ./target/${{ matrix.target }}/release --create --file=${{ steps.create-archive-name.outputs.archive }} ${{ matrix.bin }} - - - name: Pack linux archive - if: contains(matrix.target, 'linux') - shell: bash - run: tar -C ./target/${{ matrix.target }}/release --create --file=${{ steps.create-archive-name.outputs.archive }} ${{ matrix.bin }} - - - name: Pack windows archive - if: contains(matrix.target, 'windows') + - name: Pack Linux/Mac binary (tar) + if: matrix.archive_extension == 'tar' shell: bash run: | - cp target/${{ matrix.target }}/release/${{ matrix.bin }}.exe ./${{ matrix.bin }}.exe - 7z a -tzip ${{ steps.create-archive-name.outputs.archive }} ./${{ matrix.bin }}.exe + tar -cf ${{ steps.create-archive-name.outputs.archive }} -C $(dirname ${{ env.BIN_PATH }}) $(basename ${{ env.BIN_PATH }}) + + - name: Pack Windows binary (zip) + if: matrix.archive_extension == 'zip' + shell: bash + run: | + zip ${{ steps.create-archive-name.outputs.archive }} -j ${{ env.BIN_PATH }} - name: Upload archive uses: actions/upload-release-asset@v1.0.2 @@ -100,7 +101,7 @@ jobs: build_and_push_docker: name: Build and Push Docker Image - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 needs: build_binaries permissions: contents: read @@ -111,7 +112,7 @@ jobs: - name: Setup build environment (cli tools, dependencies) uses: ./.github/actions/setup-build-environment with: - host: ubuntu-latest + host: ubuntu-22.04 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eb42750b..cb50b4b4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ concurrency: jobs: static_analysis: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 if: github.event_name == 'push' || !github.event.pull_request.draft steps: - uses: actions/checkout@v4 @@ -20,7 +20,7 @@ jobs: - name: Setup build environment (cli tools, dependencies) uses: ./.github/actions/setup-build-environment with: - host: ubuntu-latest + host: ubuntu-22.04 - name: Run clippy with default features run: cargo clippy --workspace --all-targets -- -D warnings @@ -29,14 +29,14 @@ jobs: run: cargo clippy --workspace --all-targets --all-features -- -D warnings sqlx_test: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 if: github.event_name == 'push' || !github.event.pull_request.draft steps: - uses: actions/checkout@v4 - name: Setup build environment (cli tools, dependencies) uses: ./.github/actions/setup-build-environment with: - host: ubuntu-latest + host: ubuntu-22.04 - name: Run sqlx cache setup script run: | @@ -48,26 +48,26 @@ jobs: matrix: include: - target: x86_64-unknown-linux-gnu - os: ubuntu-latest + os: ubuntu-22.04 - target: x86_64-apple-darwin os: macos-13 - target: aarch64-apple-darwin os: macos-latest - target: x86_64-pc-windows-gnu - os: ubuntu-latest + os: ubuntu-22.04 - runs-on: ${{ matrix.os }} + runs-on: ${{ matrix.host }} if: github.event_name == 'push' || !github.event.pull_request.draft steps: - uses: actions/checkout@v4 - name: Setup build environment (cli tools, dependencies) uses: ./.github/actions/setup-build-environment with: - host: ${{ matrix.os }} + host: ${{ matrix.host }} target: ${{ matrix.target }} - name: Build binary - run: cargo build -p swap --target ${{ matrix.target }} + run: cargo build -p swap --target ${{ matrix.target }} -vv - name: Upload swap binary uses: actions/upload-artifact@v4 @@ -85,18 +85,18 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-latest] - runs-on: ${{ matrix.os }} + os: [ubuntu-22.04, macos-latest] + runs-on: ${{ matrix.host }} if: github.event_name == 'push' || !github.event.pull_request.draft steps: - uses: actions/checkout@v4 - name: Setup build environment (cli tools, dependencies) uses: ./.github/actions/setup-build-environment with: - host: ${{ matrix.os }} + host: ${{ matrix.host }} - name: Run monero-harness tests - if: matrix.os == 'ubuntu-latest' + if: matrix.host == 'ubuntu-22.04' run: cargo test --package monero-harness --all-features - name: Run library tests for swap @@ -146,7 +146,7 @@ jobs: - package: swap test_name: alice_broken_wallet_rpc_after_started_btc_early_refund - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 if: github.event_name == 'push' || !github.event.pull_request.draft steps: - uses: actions/checkout@v4 @@ -160,14 +160,14 @@ jobs: run: cargo test --package ${{ matrix.package }} --test ${{ matrix.test_name }} -- --nocapture check_stable: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 if: github.event_name == 'push' || !github.event.pull_request.draft steps: - uses: actions/checkout@v4 - name: Setup build environment (cli tools, dependencies) uses: ./.github/actions/setup-build-environment with: - host: ubuntu-latest + host: ubuntu-22.04 - name: Run cargo check on stable rust run: cargo check --all-targets diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index aaee68c8..50aabbc4 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -9,7 +9,7 @@ jobs: create_release: name: Create from merged release branch if: github.event.pull_request.merged == true && startsWith(github.event.pull_request.head.ref, 'release/') - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4.1.7 diff --git a/.github/workflows/draft-new-release.yml b/.github/workflows/draft-new-release.yml index 5a6dcdbd..60cb3797 100644 --- a/.github/workflows/draft-new-release.yml +++ b/.github/workflows/draft-new-release.yml @@ -10,7 +10,7 @@ on: jobs: draft-new-release: name: "Draft a new release" - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4.1.7 with: diff --git a/.github/workflows/preview-release.yml b/.github/workflows/preview-release.yml index f6c26ef6..337b4c79 100644 --- a/.github/workflows/preview-release.yml +++ b/.github/workflows/preview-release.yml @@ -12,7 +12,7 @@ concurrency: jobs: create_release: name: Create preview release - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4.1.7