diff --git a/.github/workflows/smoke.yml b/.github/workflows/smoke.yml index d91603b709e..ce3d261617f 100644 --- a/.github/workflows/smoke.yml +++ b/.github/workflows/smoke.yml @@ -20,6 +20,9 @@ env: jobs: contrib-build: runs-on: ubuntu-latest + strategy: + matrix: + arch: [amd64, arm64, ppc64le, riscv64] steps: - name: Checkout uses: actions/checkout@v3 @@ -31,9 +34,12 @@ jobs: - name: Build Contrib run: | curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sudo sh -s -- -b /usr/bin v1.51.2 - make -e DOCKER=false nydusify-release - make -e DOCKER=false contrib-test + make -e DOCKER=false GOARCH=${{ matrix.arch }} nydusify-release + if [[ "${{matrix.arch}}" == "amd64" ]]; then + make -e DOCKER=false GOARCH=${{ matrix.arch }} contrib-test + fi - name: Upload Nydusify + if: matrix.arch == 'amd64' uses: actions/upload-artifact@master with: name: nydusify-artifact @@ -41,6 +47,9 @@ jobs: nydus-build: runs-on: ubuntu-latest + strategy: + matrix: + arch: [amd64, arm64, ppc64le, riscv64] steps: - name: Checkout uses: actions/checkout@v3 @@ -48,19 +57,25 @@ jobs: uses: Swatinem/rust-cache@v2.7.0 with: cache-on-failure: true - shared-key: Linux-cargo-amd64 + shared-key: ${{ runner.os }}-cargo-${{ matrix.arch }} save-if: ${{ github.ref == 'refs/heads/master' }} - name: Build Nydus run: | + declare -A rust_target_map=( ["amd64"]="x86_64-unknown-linux-musl" ["arm64"]="aarch64-unknown-linux-musl" ["ppc64le"]="powerpc64le-unknown-linux-gnu" ["riscv64"]="riscv64gc-unknown-linux-gnu") + RUST_TARGET=${rust_target_map[${{ matrix.arch }}]} + cargo install --version 0.2.4 cross rustup component add rustfmt clippy - make + make -e RUST_TARGET_STATIC=$RUST_TARGET -e CARGO=cross static-release + sudo mv target/$RUST_TARGET/release/nydusd . + sudo mv target/$RUST_TARGET/release/nydus-image . - name: Upload Nydus Binaries + if: matrix.arch == 'amd64' uses: actions/upload-artifact@master with: name: nydus-artifact path: | - target/release/nydus-image - target/release/nydusd + nydus-image + nydusd nydusd-build-macos: runs-on: macos-11