From d4127a9f261a6c7365d509012544fc38015e8f2c Mon Sep 17 00:00:00 2001 From: Akihiro Suda Date: Sun, 1 May 2022 03:17:18 +0900 Subject: [PATCH] CI: add riscv64 builds Signed-off-by: Akihiro Suda --- .github/workflows/ci.yml | 11 +++++++++-- .github/workflows/nightly.yml | 26 +++++++++++++++++++++++--- .github/workflows/release.yml | 1 + 3 files changed, 33 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6340962c4..0a7da146b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -119,7 +119,7 @@ jobs: crossbuild: name: Crossbuild Binaries needs: [project, linters, protos, man] - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 timeout-minutes: 10 strategy: fail-fast: false @@ -135,6 +135,8 @@ jobs: goarm: "5" - goos: linux goarch: ppc64le + - goos: linux + goarch: riscv64 - goos: freebsd goarch: amd64 - goos: freebsd @@ -151,7 +153,7 @@ jobs: - run: | set -e -x - packages="" + packages="libbtrfs-dev" platform="${{matrix.goos}}/${{matrix.goarch}}" if [ -n "${{matrix.goarm}}" ]; then platform+="/v${{matrix.goarm}}" @@ -178,6 +180,11 @@ jobs: echo "CGO_ENABLED=1" >> $GITHUB_ENV echo "CC=powerpc64le-linux-gnu-gcc" >> $GITHUB_ENV ;; + linux/riscv64) + packages+=" crossbuild-essential-riscv64" + echo "CGO_ENABLED=1" >> $GITHUB_ENV + echo "CC=riscv64-linux-gnu-gcc" >> $GITHUB_ENV + ;; windows/arm/v7) echo "CGO_ENABLED=0" >> $GITHUB_ENV ;; diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 072180891..48b8072fd 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -36,12 +36,13 @@ jobs: - name: Install dependencies run: | - sudo add-apt-repository "deb [arch=arm64,s390x,ppc64el] http://ports.ubuntu.com/ubuntu-ports/ $(lsb_release -sc) main" || true - sudo add-apt-repository "deb [arch=arm64,s390x,ppc64el] http://ports.ubuntu.com/ubuntu-ports/ $(lsb_release -sc)-updates main" || true + sudo add-apt-repository "deb [arch=arm64,s390x,ppc64el,riscv64] http://ports.ubuntu.com/ubuntu-ports/ $(lsb_release -sc) main" || true + sudo add-apt-repository "deb [arch=arm64,s390x,ppc64el,riscv64] http://ports.ubuntu.com/ubuntu-ports/ $(lsb_release -sc)-updates main" || true sudo dpkg --add-architecture arm64 sudo dpkg --add-architecture s390x sudo dpkg --add-architecture ppc64el + sudo dpkg --add-architecture riscv64 sudo apt-get update || true @@ -49,14 +50,17 @@ jobs: crossbuild-essential-arm64 \ crossbuild-essential-s390x \ crossbuild-essential-ppc64el \ + crossbuild-essential-riscv64 \ libseccomp-dev:amd64 \ libseccomp-dev:arm64 \ libseccomp-dev:s390x \ libseccomp-dev:ppc64el \ + libseccomp-dev:riscv64 \ libbtrfs-dev:amd64 \ libbtrfs-dev:arm64 \ libbtrfs-dev:s390x \ - libbtrfs-dev:ppc64el + libbtrfs-dev:ppc64el \ + libbtrfs-dev:riscv64 - name: Build amd64 env: @@ -96,6 +100,16 @@ jobs: make binaries mv bin bin_ppc64le + - name: Build riscv64 + env: + GOOS: linux + GOARCH: riscv64 + CGO_ENABLED: 1 + CC: riscv64-linux-gnu-gcc + run: | + make binaries + mv bin bin_riscv64 + # # Upload # @@ -124,6 +138,12 @@ jobs: name: linux_ppc64le path: src/github.com/containerd/containerd/bin_ppc64le + - name: Upload artifacts (linux_riscv64) + uses: actions/upload-artifact@v1 + with: + name: linux_riscv64 + path: src/github.com/containerd/containerd/bin_riscv64 + windows: name: Windows runs-on: windows-latest diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bdcc20cc7..7209f1187 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -60,6 +60,7 @@ jobs: - linux/amd64 - linux/arm64 - linux/ppc64le + - linux/riscv64 - windows/amd64 steps: - name: Install Go