From 008425553b4fc0caa88db255d6b17c3ddb0cd6f0 Mon Sep 17 00:00:00 2001 From: Caznix Date: Sun, 1 Dec 2024 19:35:48 -0500 Subject: [PATCH] seperate jobs --- .github/workflows/rust.yml | 78 +++++++++++++++++++++++++++++++------- 1 file changed, 64 insertions(+), 14 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 121fa46..d127464 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -1,4 +1,4 @@ -name: Rust +name: Compile & test Zenyx ⚡ on: push: @@ -36,20 +36,21 @@ jobs: runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 + - name: 📥 Clone repository + uses: actions/checkout@v3 - - name: Install cross-compilation dependencies (Ubuntu) + - name: 🛠️ Install cross-compilation dependencies (Ubuntu🐧) if: runner.os == 'Linux' run: | sudo apt-get update sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu qemu-user - - name: Install cross-compilation dependencies (macOS) + - name: 🛠️ Install cross-compilation dependencies (macOS🍎) if: runner.os == 'macOS' run: | brew install FiloSottile/musl-cross/musl-cross - - name: Install Rust + - name: 🦀 Install Rust uses: actions-rs/toolchain@v1 with: toolchain: stable @@ -57,25 +58,74 @@ jobs: target: ${{ matrix.target }} profile: minimal - - name: Build + - name: 🏗️ Build uses: actions-rs/cargo@v1 with: command: build args: --release --target ${{ matrix.target }} env: CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc + + - name: 📦 Upload artifacts + uses: actions/upload-artifact@v3 + with: + name: Zenyx-${{ runner.os }}-${{ matrix.arch }}-binary + path: target/${{ matrix.target }}/release/zenyx* + + test: + needs: build + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + arch: [x86_64, aarch64] + include: + - arch: x86_64 + target: x86_64-unknown-linux-gnu + - os: macos-latest + arch: x86_64 + target: x86_64-apple-darwin + - arch: aarch64 + target: aarch64-unknown-linux-gnu + - os: macos-latest + arch: aarch64 + target: aarch64-apple-darwin + - os: windows-latest + arch: x86_64 + target: x86_64-pc-windows-msvc + exclude: + - os: windows-latest + arch: aarch64 + runs-on: ${{ matrix.os }} + + steps: + - name: 📥 Clone repository + uses: actions/checkout@v3 + + - name: 🛠️ Install cross-compilation dependencies (Ubuntu🐧) + if: runner.os == 'Linux' + run: | + sudo apt-get update + sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu qemu-user + + - name: 🛠️ Install cross-compilation dependencies (macOS🍎) + if: runner.os == 'macOS' + run: | + brew install FiloSottile/musl-cross/musl-cross + + - name: 🦀 Install Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + target: ${{ matrix.target }} + profile: minimal - - name: Run tests + - name: 🧪 Run tests uses: actions-rs/cargo@v1 with: command: test args: --verbose --target ${{ matrix.target }} env: CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc - QEMU_LD_PREFIX: /usr/aarch64-linux-gnu - - - name: Upload artifacts - uses: actions/upload-artifact@v3 - with: - name: Zenyx-${{ runner.os }}-${{ matrix.arch }}-binary - path: target/${{ matrix.target }}/release/zenyx* \ No newline at end of file + QEMU_LD_PREFIX: /usr/aarch64-linux-gnu \ No newline at end of file