Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
ci: Move shell scripts into standalone files
Adam Szkoda committed 2 years ago
commit 8c701dc908575b622b36620d0c96e08ee552e09a
parent 9418a20caef73bb0888a42c5462b4b19ed1af6cd
5 files changed +113 -82
added .github/workflows/build-debug.bash
@@ -0,0 +1,29 @@
+
#!/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 "$@"
added .github/workflows/build.bash
@@ -0,0 +1,35 @@
+
#!/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"
+

+
    local staging="radicle-$target"
+
    mkdir -p "$staging"
+

+
    cargo build --target="$target" --package=radicle-httpd --release
+
    cp target/"$target"/release/radicle-httpd "$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"/
+

+
    tar czf "$staging.tar.gz" "$staging"
+
    cp "$staging.tar.gz" "$staging"/
+
}
+

+
main "$@"
modified .github/workflows/release.yml
@@ -36,50 +36,14 @@ jobs:
        with:
          image: ${{ matrix.docker_image }}
          options: ${{ matrix.docker_options }}
-
          run: |
-
            rustup target add ${{ matrix.target }}
-
            staging="radicle-${{ matrix.target }}"
-
            mkdir -p "$staging"
-

-
            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
+
          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: |
-
            rustup target add ${{ matrix.target }}
-
            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 }}/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 }}"
+
          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 }}

@@ -105,45 +69,10 @@ 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 }}
-
          staging="radicle-${{ matrix.target }}"
-
          mkdir -p "$staging"
-

-
          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"/
+
        run: .github/workflows/build.bash "${{ matrix.target }}"
      - name: Build the debug binaries
-
        run: |
-
          rustup target add ${{ matrix.target }}
-
          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 }}/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 }}"
+
        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 }}

@@ -151,10 +80,7 @@ jobs:
    needs: [release-linux-binaries, release-macos-binaries]
    runs-on: ubuntu-20.04
    steps:
-
      - 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 ln -snf "/mnt/radicle/releases/${{ github.sha }}" "/mnt/radicle/releases/latest"
+
      - uses: actions/checkout@v3
+
      - run: .github/workflows/update-latest-symlink.bash "${{ github.sha }}"
        env:
          SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
added .github/workflows/update-latest-symlink.bash
@@ -0,0 +1,19 @@
+
#!/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 sha=$1
+
    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 ln -snf "/mnt/radicle/releases/${sha}" "/mnt/radicle/releases/latest"
+
}
+

+
main "$@"
added .github/workflows/upload.bash
@@ -0,0 +1,22 @@
+
#!/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 "$@"