diff --git a/.github/workflows/build-debug.bash b/.github/workflows/build-debug.bash deleted file mode 100755 index e9fdf843..00000000 --- a/.github/workflows/build-debug.bash +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash - -set -o errexit -set -o nounset -set -o pipefail - -main () { - if [[ $# -ne 1 ]]; then - echo "$#: Wrong number of arguments" - return 1 - fi - - local target=$1 - - rustup target add "$target" - staging="radicle-$target" - mkdir -p "$staging/debug" - - cargo build --target "$target" --bin git-remote-rad - cp target/"$target"/debug/git-remote-rad "$staging"/debug/ - - cargo build --target="$target" --bin rad - cp target/"$target"/debug/rad "$staging"/debug/ - - tar czf "$staging-debug.tar.gz" "$staging"/debug - cp "$staging-debug.tar.gz" "$staging"/debug/ -} - -main "$@" diff --git a/.github/workflows/build.bash b/.github/workflows/build.bash deleted file mode 100755 index 454ac1cd..00000000 --- a/.github/workflows/build.bash +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/sh - -set -e - -# Attempt to install `asciidoctor` on Debian, Arch Linux and MacOS. -install() { - os="$(uname)" - - case "$os" in - Linux) - if command -v apt-get >/dev/null 2>&1; then - # Debian - apt-get update - apt-get install -y asciidoctor - elif command -v pacman >/dev/null 2>&1; then - # Arch Linux - pacman -Sy --noconfirm asciidoctor - fi ;; - Darwin) # MacOS - if command -v brew >/dev/null 2>&1; then - brew install asciidoctor - fi ;; - *) - echo "fatal: unknown operating system: $os" - exit 1 ;; - esac -} - -main () { - if [ $# -ne 1 ]; then - echo "$#: Wrong number of arguments" - exit 1 - fi - - if ! command -v asciidoctor >/dev/null 2>&1; then - install - fi - - target="$1" - rustup target add "$target" - - staging="radicle-$target" - mkdir -p "$staging" - - cargo build --target="$target" --package=radicle-httpd --release - cp target/"$target"/release/radicle-httpd "$staging"/ - cp target/"$target"/release/rad-web "$staging"/ - - cargo build --target="$target" --package=radicle-node --release - cp target/"$target"/release/radicle-node "$staging"/ - - cargo build --target="$target" --bin rad --release - cp target/"$target"/release/rad "$staging"/ - - cargo build --target="$target" --bin git-remote-rad --release - cp target/"$target"/release/git-remote-rad "$staging"/ - - scripts/build-man-pages.sh "$staging" $(find . -name '*.1.adoc') - - tar czf "$staging.tar.gz" "$staging" - cp "$staging.tar.gz" "$staging"/ -} - -main "$@" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 05a5dfe8..00000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,90 +0,0 @@ -name: Release - -on: - push: - branches: [master, release/*] - -jobs: - release-linux-binaries: - permissions: - contents: 'read' - id-token: 'write' - runs-on: ubuntu-20.04 - strategy: - matrix: - target: [x86_64-unknown-linux-musl, aarch64-unknown-linux-musl] - include: - - target: x86_64-unknown-linux-musl - docker_image: registry.gitlab.com/rust_musl_docker/image:stable-latest - docker_options: -v /home/runner/work/heartwood/heartwood:/workdir -v /home/runner/.cargo/git:/root/.cargo/git -v /home/runner/.cargo/registry:/root/.cargo/registry - - target: aarch64-unknown-linux-musl - docker_image: messense/rust-musl-cross:aarch64-musl - docker_options: -v /home/runner/work/heartwood/heartwood:/home/rust/src -v /home/runner/.cargo/git:/root/.cargo/git -v /home/runner/.cargo/registry:/root/.cargo/registry - steps: - - name: Checkout source code - uses: actions/checkout@v4 - - name: Get tags - run: git fetch --prune --unshallow --tags origin - - name: Configure build cache - uses: actions/cache@v4 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - target - key: cargo-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }} - - name: Build the binaries - uses: addnab/docker-run-action@v3 - with: - image: ${{ matrix.docker_image }} - options: ${{ matrix.docker_options }} - run: .github/workflows/build.bash "${{ matrix.target }}" - - name: Build the debug binaries - uses: addnab/docker-run-action@v3 - with: - image: ${{ matrix.docker_image }} - options: ${{ matrix.docker_options }} - run: .github/workflows/build-debug.bash "${{ matrix.target }}" - - run: .github/workflows/upload.bash "${{ matrix.target }}" "${{ github.sha }}" - env: - SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} - - release-macos-binaries: - permissions: - contents: 'read' - id-token: 'write' - runs-on: macos-11 - strategy: - matrix: - target: - - aarch64-apple-darwin - - x86_64-apple-darwin - steps: - - uses: actions/checkout@v4 - - name: Get tags - run: git fetch --prune --unshallow --tags origin - - name: Configure build cache - uses: actions/cache@v4 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - target - key: cargo-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }} - - uses: dtolnay/rust-toolchain@stable - - name: Build the release binaries - run: .github/workflows/build.bash "${{ matrix.target }}" - - name: Build the debug binaries - run: .github/workflows/build-debug.bash "${{ matrix.target }}" - - run: .github/workflows/upload.bash "${{ matrix.target }}" "${{ github.sha }}" - env: - SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} - - update-latest-symlink: - needs: [release-linux-binaries, release-macos-binaries] - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v4 - - run: .github/workflows/update-latest-symlink.sh "${{ github.sha }}" - env: - SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} diff --git a/.github/workflows/update-latest-symlink.sh b/.github/workflows/update-latest-symlink.sh deleted file mode 100755 index 5526c46c..00000000 --- a/.github/workflows/update-latest-symlink.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -set -o errexit -set -o nounset - -remotely() { - ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i ssh-private-key github-actions@files.radicle.xyz "$@" -} - -main () { - if [ $# -ne 1 ]; then - echo "$#: Wrong number of arguments" - return 1 - fi - target="x86_64-unknown-linux-musl" - sha=$1 - - trap 'rm -f ssh-private-key' EXIT - - echo "$SSH_PRIVATE_KEY" > ssh-private-key - chmod go-rwx ssh-private-key - - remotely "/mnt/radicle/releases/${sha}/${target}/rad version --json > /mnt/radicle/releases/${sha}/version.json" - remotely ln -snf "/mnt/radicle/releases/${sha}" "/mnt/radicle/releases/latest" -} - -main "$@" diff --git a/.github/workflows/upload.bash b/.github/workflows/upload.bash deleted file mode 100755 index 9f2b0b50..00000000 --- a/.github/workflows/upload.bash +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -set -o errexit -set -o nounset -set -o pipefail - -main () { - if [[ $# -ne 2 ]]; then - echo "$#: Wrong number of arguments" - return 1 - fi - - local target=$1 - local sha=$2 - - 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/$sha/$target/debug" - scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i ssh-private-key -r radicle-$target/* "github-actions@files.radicle.xyz:/mnt/radicle/releases/$sha/$target" -} - -main "$@"