From 216f48b7f100ce3158a77c6c4de0324937f42493 Mon Sep 17 00:00:00 2001 From: Adam Szkoda Date: Mon, 8 May 2023 13:30:43 +0200 Subject: [PATCH] ci: Build a debug binary of the CLI --- .github/workflows/release.yml | 75 +++++++++++++++++++++++++---------- 1 file changed, 55 insertions(+), 20 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f614d20c..eedec1f6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,7 +2,7 @@ name: Release on: push: - branches: [master] + branches: [master, release/*] jobs: release-linux-binaries: @@ -37,27 +37,46 @@ jobs: image: ${{ matrix.docker_image }} options: ${{ matrix.docker_options }} run: | + staging="radicle-${{ matrix.target }}" + mkdir -p "$staging" rustup target add ${{ matrix.target }} cargo build --target=${{ matrix.target }} --package=radicle-httpd --release + cp target/${{ matrix.target }}/release/radicle-httpd "$staging"/ + cargo build --target=${{ matrix.target }} --package=radicle-node --release + cp target/${{ matrix.target }}/release/radicle-node "$staging"/ + cargo build --target=${{ matrix.target }} --bin rad --release + cp target/${{ matrix.target }}/release/rad "$staging"/ + cargo build --target=${{ matrix.target }} --bin git-remote-rad --release + cp target/${{ matrix.target }}/release/git-remote-rad "$staging"/ + + tar czf "$staging.tar.gz" "$staging" + cp "$staging.tar.gz" "$staging"/ chmod --recursive go+r /root/.cargo/registry - - shell: bash - run: | - staging="radicle-${{ matrix.target }}" - mkdir -p "$staging" - cp target/${{ matrix.target }}/release/radicle-httpd "$staging"/ - cp target/${{ matrix.target }}/release/radicle-node "$staging"/ - cp target/${{ matrix.target }}/release/rad "$staging"/ - cp target/${{ matrix.target }}/release/git-remote-rad "$staging"/ - tar czf "$staging.tar.gz" "$staging" - cp "$staging.tar.gz" "$staging"/ + - name: Build the debug binaries + uses: addnab/docker-run-action@v3 + with: + image: ${{ matrix.docker_image }} + options: ${{ matrix.docker_options }} + run: | + staging="radicle-${{ matrix.target }}" + mkdir -p "$staging/debug" + + cargo build --target ${{ matrix.target }} --bin git-remote-rad + cp target/${{ matrix.target }}/debug/git-remote-rad "$staging"/debug/ + + cargo build --target=${{ matrix.target }} --bin rad + cp target/${{ matrix.target }}/debug/rad "$staging"/debug/ + + tar czf "$staging-debug.tar.gz" "$staging"/debug + cp "$staging-debug.tar.gz" "$staging"/debug/ - shell: bash run: | echo "$SSH_PRIVATE_KEY" >ssh-private-key chmod go-rwx ssh-private-key - ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i ssh-private-key github-actions@files.radicle.xyz mkdir -p "/mnt/radicle/releases/${{ github.sha }}/${{ matrix.target }}" + ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i ssh-private-key github-actions@files.radicle.xyz mkdir -p "/mnt/radicle/releases/${{ github.sha }}/${{ matrix.target }}/debug" scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i ssh-private-key -r radicle-${{ matrix.target }}/* "github-actions@files.radicle.xyz:/mnt/radicle/releases/${{ github.sha }}/${{ matrix.target }}" env: SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} @@ -84,27 +103,43 @@ jobs: key: cargo-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }} - uses: dtolnay/rust-toolchain@1.67 - name: Build the release binaries - run: | - rustup target add ${{ matrix.target }} - cargo build --target ${{ matrix.target }} --package=radicle-httpd --release - cargo build --target ${{ matrix.target }} --package=radicle-node --release - cargo build --target ${{ matrix.target }} --bin rad --release - cargo build --target ${{ matrix.target }} --bin git-remote-rad --release - - shell: bash run: | staging="radicle-${{ matrix.target }}" mkdir -p "$staging" + rustup target add ${{ matrix.target }} + + cargo build --target ${{ matrix.target }} --package=radicle-httpd --release cp target/${{ matrix.target }}/release/radicle-httpd "$staging"/ + + cargo build --target ${{ matrix.target }} --package=radicle-node --release cp target/${{ matrix.target }}/release/radicle-node "$staging"/ + + cargo build --target ${{ matrix.target }} --bin rad --release cp target/${{ matrix.target }}/release/rad "$staging"/ + + cargo build --target ${{ matrix.target }} --bin git-remote-rad --release cp target/${{ matrix.target }}/release/git-remote-rad "$staging"/ + tar czf "$staging.tar.gz" "$staging" cp "$staging.tar.gz" "$staging"/ + - name: Build the debug binaries + run: | + staging="radicle-${{ matrix.target }}" + mkdir -p "$staging/debug" + + cargo build --target ${{ matrix.target }} --bin git-remote-rad + cp target/${{ matrix.target }}/debug/git-remote-rad "$staging"/debug/ + + cargo build --target=${{ matrix.target }} --bin rad + cp target/${{ matrix.target }}/debug/rad "$staging"/debug/ + + tar czf "$staging-debug.tar.gz" "$staging"/debug + cp "$staging-debug.tar.gz" "$staging"/debug/ - shell: bash run: | echo "$SSH_PRIVATE_KEY" >ssh-private-key chmod go-rwx ssh-private-key - ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i ssh-private-key github-actions@files.radicle.xyz mkdir -p "/mnt/radicle/releases/${{ github.sha }}/${{ matrix.target }}" + ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i ssh-private-key github-actions@files.radicle.xyz mkdir -p "/mnt/radicle/releases/${{ github.sha }}/${{ matrix.target }}/debug" scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i ssh-private-key -r radicle-${{ matrix.target }}/* "github-actions@files.radicle.xyz:/mnt/radicle/releases/${{ github.sha }}/${{ matrix.target }}" env: SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}