From 1272e4c530b3a91450c2a06f9973887fa646bbcf Mon Sep 17 00:00:00 2001 From: Nick Cardin Date: Thu, 30 Sep 2021 14:25:09 +0000 Subject: [PATCH] Add linux/arm64 to release --- .github/workflows/release.yml | 98 ++++++++++++++++++----------------- 1 file changed, 51 insertions(+), 47 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8a425a7..ac5eb21 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,7 +11,8 @@ env: GITHUB_REF: '${{ github.ref }}' WINDOWS_TARGET: x86_64-pc-windows-msvc MACOS_TARGET: x86_64-apple-darwin - LINUX_TARGET: x86_64-unknown-linux-musl + LINUX_AMD64_TARGET: x86_64-unknown-linux-musl + LINUX_ARM64_TARGET: aarch64-unknown-linux-musl # Space separated paths to include in the archive. RELEASE_ADDS: README.md LICENSE-APACHE LICENSE-MIT @@ -22,15 +23,17 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - build: [linux, macos, windows] include: - - build: linux + - target: ${{ env.LINUX_AMD64_TARGET }} os: ubuntu-latest rust: stable - - build: macos + - target: ${{ env.LINUX_ARM64_TARGET }} + os: ubuntu-latest + rust: stable + - target: ${{ env.MACOS_TARGET }} os: macos-latest rust: stable - - build: windows + - target: ${{ env.WINDOWS_TARGET }} os: windows-latest rust: stable @@ -50,66 +53,52 @@ jobs: echo ::set-output name=version::"${GITHUB_REF:10}" - name: Install musl-tools (Linux) - if: matrix.build == 'linux' + if: matrix.os == 'ubuntu-latest' run: | sudo apt-get update -y sudo apt-get install musl-tools -y - name: Install p7zip (MacOS) - if: matrix.build == 'macos' + if: matrix.os == 'macos-latest' run: brew install p7zip - - name: Build (Linux) - if: matrix.build == 'linux' - run: | - rustup target add ${{ env.LINUX_TARGET }} - cargo build --release --target ${{ env.LINUX_TARGET }} + - name: Add rustup target + run: rustup target add ${{ matrix.target }} - - name: Build (MacOS) - if: matrix.build == 'macos' - run: cargo build --release + - name: Build + run: cargo build --release --target ${{ matrix.target }} - - name: Build (Windows) - if: matrix.build == 'windows' - run: cargo build --release - env: - RUSTFLAGS: -Ctarget-feature=+crt-static + - name: Set RUSTFLAGS (Windows) + if: matrix.os == 'windows-latest' + run: echo "RUSTFLAGS=-Ctarget-feature=+crt-static" >> $GITHUB_ENV - name: Create artifact directory run: | mkdir ${{ env.RELEASE_DIR }} - mkdir -p ${{ env.RELEASE_DIR }}/${{ env.RELEASE_BIN }}-${{ steps.get_version.outputs.VERSION }}-${{ env.LINUX_TARGET }} - mkdir -p ${{ env.RELEASE_DIR }}/${{ env.RELEASE_BIN }}-${{ steps.get_version.outputs.VERSION }}-${{ env.MACOS_TARGET }} - mkdir -p ${{ env.RELEASE_DIR }}/${{ env.RELEASE_BIN }}-${{ steps.get_version.outputs.VERSION }}-${{ env.WINDOWS_TARGET }} + mkdir -p ${{ env.RELEASE_DIR }}/${{ env.RELEASE_BIN }}-${{ steps.get_version.outputs.VERSION }}-${{ matrix.target }} - - name: Create tarball (Linux) - if: matrix.build == 'linux' + - name: Move binaries (Linux/MacOS) + if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' run: | - mv ./target/${{ env.LINUX_TARGET }}/release/${{ env.RELEASE_BIN }} ${{ env.RELEASE_DIR }}/${{ env.RELEASE_BIN }}-${{ steps.get_version.outputs.VERSION }}-${{ env.LINUX_TARGET }}/${{ env.RELEASE_BIN }} - mv ${{ env.RELEASE_ADDS }} ./${{ env.RELEASE_DIR }}/${{ env.RELEASE_BIN }}-${{ steps.get_version.outputs.VERSION }}-${{ env.LINUX_TARGET }} - 7z a -ttar -so -an ./${{ env.RELEASE_DIR }}/${{ env.RELEASE_BIN }}-${{ steps.get_version.outputs.VERSION }}-${{ env.LINUX_TARGET }} | 7z a -si ./${{ env.RELEASE_DIR }}/${{ env.RELEASE_BIN }}-${{ steps.get_version.outputs.VERSION }}-${{ env.LINUX_TARGET }}.tar.gz + mv ./target/${{ matrix.target }}/release/${{ env.RELEASE_BIN }} ${{ env.RELEASE_DIR }}/${{ env.RELEASE_BIN }}-${{ steps.get_version.outputs.VERSION }}-${{ matrix.target }}/${{ env.RELEASE_BIN }} + mv ${{ env.RELEASE_ADDS }} ./${{ env.RELEASE_DIR }}/${{ env.RELEASE_BIN }}-${{ steps.get_version.outputs.VERSION }}-${{ matrix.target }} - - name: Create tarball (Windows) - if: matrix.build == 'windows' + - name: Move binaries (Windows) + if: matrix.os == 'windows-latest' shell: bash run: | - cp ./target/release/${{ env.RELEASE_BIN }}.exe ./${{ env.RELEASE_DIR }}/${{ env.RELEASE_BIN }}-${{ steps.get_version.outputs.VERSION }}-${{ env.WINDOWS_TARGET }}/${{ env.RELEASE_BIN }}.exe + cp ./target/release/${{ env.RELEASE_BIN }}.exe ./${{ env.RELEASE_DIR }}/${{ env.RELEASE_BIN }}-${{ steps.get_version.outputs.VERSION }}-${{ matrix.target }}/${{ env.RELEASE_BIN }}.exe cp ./target/release/${{ env.RELEASE_BIN }}.exe wasm-pack-init.exe - mv ${{ env.RELEASE_ADDS }} ./${{ env.RELEASE_DIR }}/${{ env.RELEASE_BIN }}-${{ steps.get_version.outputs.VERSION }}-${{ env.WINDOWS_TARGET }} + mv ${{ env.RELEASE_ADDS }} ./${{ env.RELEASE_DIR }}/${{ env.RELEASE_BIN }}-${{ steps.get_version.outputs.VERSION }}-${{ matrix.target }} mv wasm-pack-init.exe ${{ env.RELEASE_DIR }} - 7z a -ttar -so -an ./${{ env.RELEASE_DIR }}/${{ env.RELEASE_BIN }}-${{ steps.get_version.outputs.VERSION }}-${{ env.WINDOWS_TARGET }} | 7z a -si ./${{ env.RELEASE_DIR }}/${{ env.RELEASE_BIN }}-${{ steps.get_version.outputs.VERSION }}-${{ env.WINDOWS_TARGET }}.tar.gz - - name: Create tarball (MacOS) - if: matrix.build == 'macos' - run: | - mv ./target/release/${{ env.RELEASE_BIN }} ./${{ env.RELEASE_DIR }}/${{ env.RELEASE_BIN }}-${{ steps.get_version.outputs.VERSION }}-${{ env.MACOS_TARGET }}/${{ env.RELEASE_BIN }} - mv ${{ env.RELEASE_ADDS }} ./${{ env.RELEASE_DIR }}/${{ env.RELEASE_BIN }}-${{ steps.get_version.outputs.VERSION }}-${{ env.MACOS_TARGET }} - 7z a -ttar -so -an ./${{ env.RELEASE_DIR }}/${{ env.RELEASE_BIN }}-${{ steps.get_version.outputs.VERSION }}-${{ env.MACOS_TARGET }} | 7z a -si ./${{ env.RELEASE_DIR }}/${{ env.RELEASE_BIN }}-${{ steps.get_version.outputs.VERSION }}-${{ env.MACOS_TARGET }}.tar.gz + - name: Create tarball + run: 7z a -ttar -so -an ./${{ env.RELEASE_DIR }}/${{ env.RELEASE_BIN }}-${{ steps.get_version.outputs.VERSION }}-${{ matrix.target }} | 7z a -si ./${{ env.RELEASE_DIR }}/${{ env.RELEASE_BIN }}-${{ steps.get_version.outputs.VERSION }}-${{ matrix.target }}.tar.gz - name: Upload Zip uses: actions/upload-artifact@v1 with: - name: ${{ matrix.build }} + name: ${{ matrix.target }} path: ./${{ env.RELEASE_DIR }} release: @@ -133,30 +122,45 @@ jobs: tag_name: ${{ steps.get_version.outputs.VERSION }} release_name: ${{ steps.get_version.outputs.VERSION }} - - name: Download Linux tarball + - name: Download Linux amd64 tarball + uses: actions/download-artifact@v1 + with: + name: ${{ env.LINUX_AMD64_TARGET }} + + - name: Download Linux arm64 tarball uses: actions/download-artifact@v1 with: - name: linux + name: ${{ env.LINUX_ARM64_TARGET }} - name: Download Windows tarball uses: actions/download-artifact@v1 with: - name: windows + name: ${{ env.WINDOWS_TARGET }} - name: Download MacOS tarball uses: actions/download-artifact@v1 with: - name: macos + name: ${{ env.MACOS_TARGET }} + + - name: Release Linux amd64 tarball + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./linux/wasm-pack-${{ steps.get_version.outputs.VERSION }}-${{ env.LINUX_AMD64_TARGET }}.tar.gz + asset_content_type: application/gzip + asset_name: wasm-pack-${{ steps.get_version.outputs.VERSION }}-${{ env.LINUX_AMD64_TARGET }}.tar.gz - - name: Release Linux tarball + - name: Release Linux arm64 tarball uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./linux/wasm-pack-${{ steps.get_version.outputs.VERSION }}-${{ env.LINUX_TARGET }}.tar.gz + asset_path: ./linux/wasm-pack-${{ steps.get_version.outputs.VERSION }}-${{ env.LINUX_ARM64_TARGET }}.tar.gz asset_content_type: application/gzip - asset_name: wasm-pack-${{ steps.get_version.outputs.VERSION }}-${{ env.LINUX_TARGET }}.tar.gz + asset_name: wasm-pack-${{ steps.get_version.outputs.VERSION }}-${{ env.LINUX_ARM64_TARGET }}.tar.gz - name: Release Windows tarball uses: actions/upload-release-asset@v1