From 99ff501aed82fe422968314f968e4d5349fe67ad Mon Sep 17 00:00:00 2001 From: Yee <2520865+yixinglu@users.noreply.github.com> Date: Mon, 1 Nov 2021 15:34:28 +0800 Subject: [PATCH] Build ARM platform docker images (#3240) * Build docker image for arm64 platform * Fix shell check error in GitHub action runner * build arm platform image nightly * Cleanup v2-nightly image --- .github/workflows/nightly.yml | 25 ++++++++++++++----------- .github/workflows/release.yml | 2 ++ third-party/install-cmake.sh | 2 +- third-party/install-gcc.sh | 2 +- third-party/install-third-party.sh | 2 +- 5 files changed, 19 insertions(+), 14 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index f477bb6d05b..cbb7040c527 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -62,17 +62,20 @@ jobs: - tools steps: - uses: actions/checkout@v2 - - name: Build and push Docker images - uses: docker/build-push-action@v1 + - uses: docker/setup-qemu-action@v1 + - uses: docker/setup-buildx-action@v1 + - uses: docker/login-action@v1 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - repository: vesoft/nebula-${{ matrix.service }} - path: . - dockerfile: docker/Dockerfile.${{ matrix.service }} - tags: nightly,v2-nightly - cache_froms: vesoft/nebula-dev:centos7 - add_git_labels: true + - uses: docker/build-push-action@v2 + with: + context: . + file: ./docker/Dockerfile.${{ matrix.service }} + platforms: linux/amd64,linux/arm64 + tags: | + vesoft/nebula-${{ matrix.service }}:nightly + push: true coverage: name: coverage @@ -84,7 +87,6 @@ jobs: - ubuntu2004 compiler: - gcc-9.2 - container: image: vesoft/nebula-dev:${{ matrix.os }} env: @@ -113,11 +115,12 @@ jobs: -DENABLE_TESTING=on \ -DENABLE_COVERAGE=on \ -B build - echo "::set-output name=j::10" - echo "::set-output name=t::10" + echo "::set-output name=j::8" + echo "::set-output name=t::6" - name: Make run: | ccache -z + cmake --build build/ -j ${{ steps.cmake.outputs.j }} --target nebula-metad nebula-storaged nebula-graphd cmake --build build/ -j ${{ steps.cmake.outputs.t }} ccache -s - name: CTest diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index efe26e0367f..1bc97345d8b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -78,6 +78,7 @@ jobs: tag="vesoft/nebula-${{ matrix.service }}:latest" fi echo "::set-output name=tag::$tag" + - uses: docker/setup-qemu-action@v1 - uses: docker/setup-buildx-action@v1 - uses: docker/login-action@v1 with: @@ -87,6 +88,7 @@ jobs: with: context: . file: ./docker/Dockerfile.${{ matrix.service }} + platforms: linux/amd64,linux/arm64 tags: | vesoft/nebula-${{ matrix.service }}:${{ steps.tagname.outputs.tag }} vesoft/nebula-${{ matrix.service }}:${{ steps.tagname.outputs.majorver }} diff --git a/third-party/install-cmake.sh b/third-party/install-cmake.sh index f969975146b..74a682ba342 100755 --- a/third-party/install-cmake.sh +++ b/third-party/install-cmake.sh @@ -9,7 +9,7 @@ # Always use bash shell=$(basename $(readlink /proc/$$/exe)) -if [ ! x$shell = x"bash" ] +if [ ! x$shell = x"bash" ] && [[ x$shell != x"qemu-aarch64"* ]] then bash $0 $@ exit $? diff --git a/third-party/install-gcc.sh b/third-party/install-gcc.sh index 3d6d225dfa2..a31868a29a8 100755 --- a/third-party/install-gcc.sh +++ b/third-party/install-gcc.sh @@ -9,7 +9,7 @@ # Always use bash shell=$(basename $(readlink /proc/$$/exe)) -if [ ! x$shell = x"bash" ] +if [ ! x$shell = x"bash" ] && [[ x$shell != x"qemu-aarch64"* ]] then bash $0 $@ exit $? diff --git a/third-party/install-third-party.sh b/third-party/install-third-party.sh index 028cc644046..a26fdc4419a 100755 --- a/third-party/install-third-party.sh +++ b/third-party/install-third-party.sh @@ -14,7 +14,7 @@ # Always use bash shell=$(basename $(readlink /proc/$$/exe)) -if [ ! x$shell = x"bash" ] +if [ ! x$shell = x"bash" ] && [[ x$shell != x"qemu-aarch64"* ]] then bash $0 $@ exit $?