Skip to content

Commit

Permalink
ci: add workflow for riscv64
Browse files Browse the repository at this point in the history
Signed-off-by: Haorong Lu <[email protected]>
  • Loading branch information
ancientmodern authored and mihalicyn committed Oct 22, 2024
1 parent 8100fc6 commit 629e6d3
Show file tree
Hide file tree
Showing 7 changed files with 117 additions and 2 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/cross-compile-daily.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
target: [armv7-stable-cross, aarch64-stable-cross, ppc64-stable-cross, mips64el-stable-cross]
target: [armv7-stable-cross, aarch64-stable-cross, ppc64-stable-cross, mips64el-stable-cross, riscv64-stable-cross]
branches: [criu-dev, master]

steps:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/cross-compile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ jobs:
aarch64-stable-cross,
ppc64-stable-cross,
mips64el-stable-cross,
riscv64-stable-cross,
]
include:
- experimental: true
Expand Down
5 changes: 5 additions & 0 deletions scripts/build/Dockerfile.riscv64-stable-cross.hdr
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
FROM ubuntu:jammy

ENV ARCH=riscv64
ENV DEBIAN_ARCH=riscv64
ENV CROSS_TRIPLET=riscv64-linux-gnu
57 changes: 57 additions & 0 deletions scripts/build/Dockerfile.riscv64-stable-cross.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
COPY scripts/ci/apt-install /bin/apt-install

# Add the cross compiler sources
RUN apt-get clean -y && apt-get update -y && apt-get install -y --no-install-recommends gnupg2

RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 871920D1991BC93C 8D69674688B6CB36 B523E5F3FC4E5F2C

COPY scripts/ci/riscv64-cross/amd64-sources.list /etc/apt/sources.list

COPY scripts/ci/riscv64-cross/riscv64-sources.list /etc/apt/sources.list.d/

RUN dpkg --add-architecture ${DEBIAN_ARCH} && \
apt-get update -y

# Install required packages
RUN apt-get install -y --no-install-recommends \
build-essential \
pkg-config \
git \
crossbuild-essential-${DEBIAN_ARCH} \
libc6-dev-${DEBIAN_ARCH}-cross \
libc6-${DEBIAN_ARCH}-cross \
libbz2-dev:${DEBIAN_ARCH} \
libexpat1-dev:${DEBIAN_ARCH} \
ncurses-dev:${DEBIAN_ARCH} \
libssl-dev:${DEBIAN_ARCH} \
protobuf-c-compiler \
protobuf-compiler \
python3-protobuf \
libnl-3-dev:${DEBIAN_ARCH} \
libprotobuf-dev:${DEBIAN_ARCH} \
libnet-dev:${DEBIAN_ARCH} \
libprotobuf-c-dev:${DEBIAN_ARCH} \
libcap-dev:${DEBIAN_ARCH} \
libaio-dev:${DEBIAN_ARCH} \
libnl-route-3-dev:${DEBIAN_ARCH} \
libnftables-dev:${DEBIAN_ARCH} \
libgnutls28-dev:${DEBIAN_ARCH} \
iproute2:${DEBIAN_ARCH}

ENV CROSS_COMPILE=${CROSS_TRIPLET}- \
CROSS_ROOT=/usr/${CROSS_TRIPLET} \
AS=/usr/bin/${CROSS_TRIPLET}-as \
AR=/usr/bin/${CROSS_TRIPLET}-ar \
CC=/usr/bin/${CROSS_TRIPLET}-gcc \
CPP=/usr/bin/${CROSS_TRIPLET}-cpp \
CXX=/usr/bin/${CROSS_TRIPLET}-g++ \
LD=/usr/bin/${CROSS_TRIPLET}-ld \
FC=/usr/bin/${CROSS_TRIPLET}-gfortran

ENV PATH="${PATH}:${CROSS_ROOT}/bin" \
PKG_CONFIG_PATH=/usr/lib/${CROSS_TRIPLET}/pkgconfig

COPY . /criu
WORKDIR /criu

RUN make mrproper && date && make -j $(nproc) zdtm && date
2 changes: 1 addition & 1 deletion scripts/build/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
ARCHES := x86_64 fedora-asan fedora-rawhide armv7hf centos8
STABLE_CROSS_ARCHES := armv7-stable-cross aarch64-stable-cross ppc64-stable-cross mips64el-stable-cross
STABLE_CROSS_ARCHES := armv7-stable-cross aarch64-stable-cross ppc64-stable-cross mips64el-stable-cross riscv64-stable-cross
UNSTABLE_CROSS_ARCHES := armv7-unstable-cross aarch64-unstable-cross ppc64-unstable-cross mips64el-unstable-cross
NON_CLANG := $(UNSTABLE_CROSS_ARCHES) $(STABLE_CROSS_ARCHES)
CREATE_DOCKERFILES := $(ARCHES) $(NON_CLANG)
Expand Down
10 changes: 10 additions & 0 deletions scripts/ci/riscv64-cross/amd64-sources.list
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy main restricted
deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted
deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy universe
deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy-updates universe
deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy multiverse
deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy-updates multiverse
deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse
deb [arch=amd64] http://security.ubuntu.com/ubuntu/ jammy-security main restricted
deb [arch=amd64] http://security.ubuntu.com/ubuntu/ jammy-security universe
deb [arch=amd64] http://security.ubuntu.com/ubuntu/ jammy-security multiverse
42 changes: 42 additions & 0 deletions scripts/ci/riscv64-cross/riscv64-sources.list
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports/ jammy main restricted
# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports/ jammy-updates main restricted
# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports/ jammy universe
# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy universe
deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports/ jammy-updates universe
# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports/ jammy multiverse
# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy multiverse
deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports/ jammy-updates multiverse
# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports/ jammy-backports main restricted universe multiverse
# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-backports main restricted universe multiverse

deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted
# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted
deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports/ jammy-security universe
# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-security universe
deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports/ jammy-security multiverse
# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-security multiverse

0 comments on commit 629e6d3

Please sign in to comment.