ci: Build a debug binary of the CLI

This commit is contained in:
Adam Szkoda 2023-05-08 13:30:43 +02:00 committed by Alexis Sellier
parent 76ba25268d
commit 216f48b7f1
No known key found for this signature in database
1 changed files with 55 additions and 20 deletions

View File

@ -2,7 +2,7 @@ name: Release
on: on:
push: push:
branches: [master] branches: [master, release/*]
jobs: jobs:
release-linux-binaries: release-linux-binaries:
@ -37,27 +37,46 @@ jobs:
image: ${{ matrix.docker_image }} image: ${{ matrix.docker_image }}
options: ${{ matrix.docker_options }} options: ${{ matrix.docker_options }}
run: | run: |
staging="radicle-${{ matrix.target }}"
mkdir -p "$staging"
rustup target add ${{ matrix.target }} rustup target add ${{ matrix.target }}
cargo build --target=${{ matrix.target }} --package=radicle-httpd --release 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 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 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 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 chmod --recursive go+r /root/.cargo/registry
- shell: bash - name: Build the debug binaries
run: | uses: addnab/docker-run-action@v3
staging="radicle-${{ matrix.target }}" with:
mkdir -p "$staging" image: ${{ matrix.docker_image }}
cp target/${{ matrix.target }}/release/radicle-httpd "$staging"/ options: ${{ matrix.docker_options }}
cp target/${{ matrix.target }}/release/radicle-node "$staging"/ run: |
cp target/${{ matrix.target }}/release/rad "$staging"/ staging="radicle-${{ matrix.target }}"
cp target/${{ matrix.target }}/release/git-remote-rad "$staging"/ mkdir -p "$staging/debug"
tar czf "$staging.tar.gz" "$staging"
cp "$staging.tar.gz" "$staging"/ 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 - shell: bash
run: | run: |
echo "$SSH_PRIVATE_KEY" >ssh-private-key echo "$SSH_PRIVATE_KEY" >ssh-private-key
chmod go-rwx 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 }}" 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: env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
@ -84,27 +103,43 @@ jobs:
key: cargo-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }} key: cargo-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }}
- uses: dtolnay/rust-toolchain@1.67 - uses: dtolnay/rust-toolchain@1.67
- name: Build the release binaries - 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: | run: |
staging="radicle-${{ matrix.target }}" staging="radicle-${{ matrix.target }}"
mkdir -p "$staging" 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"/ 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"/ cp target/${{ matrix.target }}/release/radicle-node "$staging"/
cargo build --target ${{ matrix.target }} --bin rad --release
cp target/${{ matrix.target }}/release/rad "$staging"/ 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"/ cp target/${{ matrix.target }}/release/git-remote-rad "$staging"/
tar czf "$staging.tar.gz" "$staging" tar czf "$staging.tar.gz" "$staging"
cp "$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 - shell: bash
run: | run: |
echo "$SSH_PRIVATE_KEY" >ssh-private-key echo "$SSH_PRIVATE_KEY" >ssh-private-key
chmod go-rwx 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 }}" 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: env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}