diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c1f003152..a48fa4d4d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,27 +12,35 @@ jobs: linux: name: Build - Linux runs-on: ubuntu-latest + strategy: + matrix: + include: + - name: linux-aarch64 + target: aarch64-unknown-linux-gnu + - name: linux + target: x86_64-unknown-linux-gnu steps: - name: Check out code uses: actions/checkout@v3 - - name: Set up docker buildx - uses: docker/setup-buildx-action@v2 - - name: Build docker image - uses: docker/build-push-action@v3 - with: - cache-from: type=gha - cache-to: type=gha,mode=max - context: ./ci/docker - push: false - load: true - tags: volta - - name: Compile and package Volta - run: docker run --volume ${PWD}:/root/workspace --workdir /root/workspace --rm --init --tty volta /root/workspace/ci/build-linux.sh volta-linux + - uses: actions-rs/toolchain@master + with: + profile: minimal + toolchain: 1.63 + override: true + - name: Cargo Cache + uses: Swatinem/rust-cache@v2 + - name: Install cross + run: cargo install cross + - name: Build + run: cross build --release --target ${{ matrix.target }} + - name: Create artifact + run: tar -czvf volta-${{ matrix.name }}.tar.gz volta volta-shim volta-migrate + working-directory: target/${{ matrix.target }}/release - name: Upload release artifact uses: actions/upload-artifact@v3 with: - name: linux - path: target/release/volta-linux.tar.gz + name: ${{ matrix.name }} + path: target/${{ matrix.target }}/release/volta-${{ matrix.name }}.tar.gz macos: name: Build - MacOS @@ -146,6 +154,11 @@ jobs: with: name: linux path: release + - name: Fetch Linux (ARM) artifact + uses: actions/download-artifact@v2 + with: + name: linux-aarch64 + path: release - name: Fetch MacOS artifact uses: actions/download-artifact@v2 with: @@ -186,6 +199,15 @@ jobs: asset_path: ./release/volta-linux.tar.gz asset_name: volta-${{ steps.release_info.outputs.version }}-linux.tar.gz asset_content_type: application/gzip + - name: Upload Linux (ARM) artifact + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./release/volta-linux-aarch64.tar.gz + asset_name: volta-${{ steps.release_info.outputs.version }}-linux-aarch64.tar.gz + asset_content_type: application/gzip - name: Upload MacOS artifact uses: actions/upload-release-asset@v1 env: diff --git a/dev/unix/volta-install.sh b/dev/unix/volta-install.sh index 1e587b32f..5acf0f44f 100755 --- a/dev/unix/volta-install.sh +++ b/dev/unix/volta-install.sh @@ -129,6 +129,8 @@ parse_os_info() { Linux) if [ "$arch" == "x86_64" ]; then echo "linux" + elif [ "$arch" == "aarch64" ]; then + echo "linux-aarch64" else error "Releases for non x64 architectures are not currently supported." return 1