From c71c95feb0942abd07fb5d5893125dae80f7aabb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9mentine=20Urquizar?= Date: Wed, 2 Feb 2022 19:25:28 +0100 Subject: [PATCH] Refactor CIs to publish aaarch64 binary --- .github/workflows/publish-binaries.yml | 77 ++++++++++++++++++------ .github/workflows/publish-crossbuild.yml | 76 ----------------------- 2 files changed, 59 insertions(+), 94 deletions(-) delete mode 100644 .github/workflows/publish-crossbuild.yml diff --git a/.github/workflows/publish-binaries.yml b/.github/workflows/publish-binaries.yml index c7744e35e..9893b79a8 100644 --- a/.github/workflows/publish-binaries.yml +++ b/.github/workflows/publish-binaries.yml @@ -38,28 +38,69 @@ jobs: asset_name: ${{ matrix.asset_name }} tag: ${{ github.ref }} - publish-armv8: - name: Publish for ARMv8 - runs-on: ubuntu-18.04 + publish-aarch64: + name: Publish to Github + runs-on: ${{ matrix.os }} + continue-on-error: false + strategy: + fail-fast: false + matrix: + include: + - build: aarch64 + os: ubuntu-18.04 + target: aarch64-unknown-linux-gnu + linker: gcc-aarch64-linux-gnu + use-cross: true + asset_name: meilisearch-linux-aarch64 + steps: - - uses: actions/checkout@v2 - - uses: uraimo/run-on-arch-action@v2.1.1 - id: runcmd + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Installing Rust toolchain + uses: actions-rs/toolchain@v1 with: - arch: aarch64 # aka ARMv8 - distro: ubuntu18.04 - env: | - JEMALLOC_SYS_WITH_LG_PAGE: 16 - run: | - apt update - apt install -y curl gcc make - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain stable - source $HOME/.cargo/env - cargo build --release --locked + toolchain: stable + profile: minimal + target: ${{ matrix.target }} + override: true + + - name: APT update + run: | + sudo apt update + + - name: Install target specific tools + if: matrix.use-cross + run: | + sudo apt-get install -y ${{ matrix.linker }} + + - name: Configure target aarch64 GNU + if: matrix.target == 'aarch64-unknown-linux-gnu' + ## Environment variable is not passed using env: + ## LD gold won't work with MUSL + # env: + # JEMALLOC_SYS_WITH_LG_PAGE: 16 + # RUSTFLAGS: '-Clink-arg=-fuse-ld=gold' + run: | + echo '[target.aarch64-unknown-linux-gnu]' >> ~/.cargo/config + echo 'linker = "aarch64-linux-gnu-gcc"' >> ~/.cargo/config + echo 'JEMALLOC_SYS_WITH_LG_PAGE=16' >> $GITHUB_ENV + echo RUSTFLAGS="-Clink-arg=-fuse-ld=gold" >> $GITHUB_ENV + + - name: Cargo build + uses: actions-rs/cargo@v1 + with: + command: build + use-cross: ${{ matrix.use-cross }} + args: --release --target ${{ matrix.target }} + + - name: List target output files + run: ls -lR ./target + - name: Upload the binary to release uses: svenstaro/upload-release-action@v1-release with: repo_token: ${{ secrets.PUBLISH_TOKEN }} - file: target/release/meilisearch - asset_name: meilisearch-linux-armv8 + file: target/${{ matrix.target }}/release/meilisearch + asset_name: ${{ matrix.asset_name }} tag: ${{ github.ref }} diff --git a/.github/workflows/publish-crossbuild.yml b/.github/workflows/publish-crossbuild.yml deleted file mode 100644 index 4e1e7a9c8..000000000 --- a/.github/workflows/publish-crossbuild.yml +++ /dev/null @@ -1,76 +0,0 @@ -name: Publish aarch64 binary - -on: - release: - types: [published] - -env: - CARGO_TERM_COLOR: always - -jobs: - publish-aarch64: - name: Publish to Github - runs-on: ${{ matrix.os }} - continue-on-error: false - strategy: - fail-fast: false - matrix: - include: - - build: aarch64 - os: ubuntu-18.04 - target: aarch64-unknown-linux-gnu - linker: gcc-aarch64-linux-gnu - use-cross: true - asset_name: meilisearch-linux-aarch64 - - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - - name: Installing Rust toolchain - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - profile: minimal - target: ${{ matrix.target }} - override: true - - - name: APT update - run: | - sudo apt update - - - name: Install target specific tools - if: matrix.use-cross - run: | - sudo apt-get install -y ${{ matrix.linker }} - - - name: Configure target aarch64 GNU - if: matrix.target == 'aarch64-unknown-linux-gnu' - ## Environment variable is not passed using env: - ## LD gold won't work with MUSL - # env: - # JEMALLOC_SYS_WITH_LG_PAGE: 16 - # RUSTFLAGS: '-Clink-arg=-fuse-ld=gold' - run: | - echo '[target.aarch64-unknown-linux-gnu]' >> ~/.cargo/config - echo 'linker = "aarch64-linux-gnu-gcc"' >> ~/.cargo/config - echo 'JEMALLOC_SYS_WITH_LG_PAGE=16' >> $GITHUB_ENV - echo RUSTFLAGS="-Clink-arg=-fuse-ld=gold" >> $GITHUB_ENV - - - name: Cargo build - uses: actions-rs/cargo@v1 - with: - command: build - use-cross: ${{ matrix.use-cross }} - args: --release --target ${{ matrix.target }} - - - name: List target output files - run: ls -lR ./target - - - name: Upload the binary to release - uses: svenstaro/upload-release-action@v1-release - with: - repo_token: ${{ secrets.PUBLISH_TOKEN }} - file: target/${{ matrix.target }}/release/meilisearch - asset_name: ${{ matrix.asset_name }} - tag: ${{ github.ref }}