CI: add riscv64 builds

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
This commit is contained in:
Akihiro Suda 2022-05-01 03:17:18 +09:00
parent 0e56e4f9ff
commit d4127a9f26
No known key found for this signature in database
GPG Key ID: 49524C6F9F638F1A
3 changed files with 33 additions and 5 deletions

View File

@ -119,7 +119,7 @@ jobs:
crossbuild: crossbuild:
name: Crossbuild Binaries name: Crossbuild Binaries
needs: [project, linters, protos, man] needs: [project, linters, protos, man]
runs-on: ubuntu-18.04 runs-on: ubuntu-20.04
timeout-minutes: 10 timeout-minutes: 10
strategy: strategy:
fail-fast: false fail-fast: false
@ -135,6 +135,8 @@ jobs:
goarm: "5" goarm: "5"
- goos: linux - goos: linux
goarch: ppc64le goarch: ppc64le
- goos: linux
goarch: riscv64
- goos: freebsd - goos: freebsd
goarch: amd64 goarch: amd64
- goos: freebsd - goos: freebsd
@ -151,7 +153,7 @@ jobs:
- run: | - run: |
set -e -x set -e -x
packages="" packages="libbtrfs-dev"
platform="${{matrix.goos}}/${{matrix.goarch}}" platform="${{matrix.goos}}/${{matrix.goarch}}"
if [ -n "${{matrix.goarm}}" ]; then if [ -n "${{matrix.goarm}}" ]; then
platform+="/v${{matrix.goarm}}" platform+="/v${{matrix.goarm}}"
@ -178,6 +180,11 @@ jobs:
echo "CGO_ENABLED=1" >> $GITHUB_ENV echo "CGO_ENABLED=1" >> $GITHUB_ENV
echo "CC=powerpc64le-linux-gnu-gcc" >> $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) windows/arm/v7)
echo "CGO_ENABLED=0" >> $GITHUB_ENV echo "CGO_ENABLED=0" >> $GITHUB_ENV
;; ;;

View File

@ -36,12 +36,13 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: | 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,riscv64] 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)-updates main" || true
sudo dpkg --add-architecture arm64 sudo dpkg --add-architecture arm64
sudo dpkg --add-architecture s390x sudo dpkg --add-architecture s390x
sudo dpkg --add-architecture ppc64el sudo dpkg --add-architecture ppc64el
sudo dpkg --add-architecture riscv64
sudo apt-get update || true sudo apt-get update || true
@ -49,14 +50,17 @@ jobs:
crossbuild-essential-arm64 \ crossbuild-essential-arm64 \
crossbuild-essential-s390x \ crossbuild-essential-s390x \
crossbuild-essential-ppc64el \ crossbuild-essential-ppc64el \
crossbuild-essential-riscv64 \
libseccomp-dev:amd64 \ libseccomp-dev:amd64 \
libseccomp-dev:arm64 \ libseccomp-dev:arm64 \
libseccomp-dev:s390x \ libseccomp-dev:s390x \
libseccomp-dev:ppc64el \ libseccomp-dev:ppc64el \
libseccomp-dev:riscv64 \
libbtrfs-dev:amd64 \ libbtrfs-dev:amd64 \
libbtrfs-dev:arm64 \ libbtrfs-dev:arm64 \
libbtrfs-dev:s390x \ libbtrfs-dev:s390x \
libbtrfs-dev:ppc64el libbtrfs-dev:ppc64el \
libbtrfs-dev:riscv64
- name: Build amd64 - name: Build amd64
env: env:
@ -96,6 +100,16 @@ jobs:
make binaries make binaries
mv bin bin_ppc64le 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 # Upload
# #
@ -124,6 +138,12 @@ jobs:
name: linux_ppc64le name: linux_ppc64le
path: src/github.com/containerd/containerd/bin_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: windows:
name: Windows name: Windows
runs-on: windows-latest runs-on: windows-latest

View File

@ -60,6 +60,7 @@ jobs:
- linux/amd64 - linux/amd64
- linux/arm64 - linux/arm64
- linux/ppc64le - linux/ppc64le
- linux/riscv64
- windows/amd64 - windows/amd64
steps: steps:
- name: Install Go - name: Install Go