diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e838007..8e1361c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,8 +10,44 @@ env: VERSION: $GITHUB_SHA jobs: + build-kuberwave: + runs-on: ubuntu-latest + strategy: + matrix: + include: + - rust_arch: aarch64-unknown-linux-gnu + docker_arch: arm64 + - rust_arch: x86_64-unknown-linux-gnu + docker_arch: amd64 + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Rust toolchain + uses: dtolnay/rust-toolchain@7164405e8653277d57afd42ba081b5aa02a70396 + with: + toolchain: stable + + - name: Install cross + uses: taiki-e/install-action@f8a64c940979268d3ab5ac99c178e718ed90977d # v2.32.14 + with: + tool: cross + + - name: Build + run: | + cross build --release --target ${{ matrix.rust_arch }} + mv target/${{ matrix.rust_arch }}/release/kuberwave kuberwave.${{ matrix.docker_arch }} + + - name: Upload artifacts + uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 + with: + name: kuberwave-${{ matrix.rust_arch }} + path: kuberwave.${{ matrix.docker_arch }} + if-no-files-found: error + build-and-push-image: runs-on: ubuntu-latest + needs: [build-kuberwave] permissions: contents: read @@ -31,22 +67,11 @@ jobs: id: version run: echo "tag=$(git show -s --format="%ct-%h" $GITHUB_SHA)" >> $GITHUB_OUTPUT - - name: Setup Rust toolchain - uses: dtolnay/rust-toolchain@7164405e8653277d57afd42ba081b5aa02a70396 - with: - toolchain: stable - - - name: Install development tools - uses: taiki-e/install-action@f8a64c940979268d3ab5ac99c178e718ed90977d # v2.32.14 + - name: Download artifacts + uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4 with: - tool: cross - - - name: Build - run: | - cross build --release --target x86_64-unknown-linux-gnu - mv target/x86_64-unknown-linux-gnu/release/kuberwave kuberwave.amd64 - cross build --release --target aarch64-unknown-linux-gnu - mv target/aarch64-unknown-linux-gnu/release/kuberwave kuberwave.arm64 + pattern: "kuberwave-*" + merge-multiple: true - name: Log in to the container registry uses: docker/login-action@v3