mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-07-17 16:47:50 +00:00
archlinux:latest is a rolling-release image and pacman -Syu pulls the latest packages on every build. Failures caused by upstream package churn or mirror outages are beyond CRIU's control and should not block merges. The cross-compile job already uses continue-on-error: true for its experimental targets; apply the same treatment to archlinux-test. Fixes: #2911 Signed-off-by: Ahmed Elaidy <elaidya225@gmail.com>
212 lines
6.2 KiB
YAML
212 lines
6.2 KiB
YAML
name: CI
|
|
|
|
on: [push, pull_request]
|
|
|
|
# Cancel any preceding run on the pull request.
|
|
concurrency:
|
|
group: ci-${{ github.event.pull_request.number || github.ref }}
|
|
cancel-in-progress: ${{ github.ref != 'refs/heads/criu-dev' }}
|
|
|
|
jobs:
|
|
alpine-test:
|
|
name: Alpine Test
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-22.04]
|
|
target: [GCC=1, CLANG=1]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Run Alpine ${{ matrix.target }} Test
|
|
run: sudo -E make -C scripts/ci alpine ${{ matrix.target }}
|
|
|
|
alpine-test-arm64:
|
|
name: Alpine Test ARM64
|
|
needs: [alpine-test]
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-22.04-arm]
|
|
target: [GCC=1, CLANG=1]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Run Alpine ${{ matrix.target }} Test
|
|
run: sudo -E make -C scripts/ci alpine ${{ matrix.target }}
|
|
|
|
aarch64-test:
|
|
needs: [alpine-test]
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-24.04-arm, ubuntu-22.04-arm]
|
|
target: [GCC=1, CLANG=1]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Run Tests ${{ matrix.target }} on ${{ matrix.os }}
|
|
run: |
|
|
# The 'sched_policy00' needs the following:
|
|
sudo sysctl -w kernel.sched_rt_runtime_us=-1
|
|
# etc/hosts entry is needed for netns_lock_iptables
|
|
echo "127.0.0.1 localhost" | sudo tee -a /etc/hosts
|
|
sudo -E make -C scripts/ci local ${{ matrix.target }} RUN_TESTS=1 \
|
|
ZDTM_OPTS="-x zdtm/static/change_mnt_context -x zdtm/static/maps05"
|
|
|
|
archlinux-test:
|
|
needs: [alpine-test]
|
|
# archlinux:latest + pacman -Syu is a rolling-release build; failures
|
|
# caused by upstream package churn are outside CRIU's control.
|
|
continue-on-error: true
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Run Arch Linux Test
|
|
run: sudo -E make -C scripts/ci archlinux
|
|
|
|
compat-test:
|
|
needs: [alpine-test]
|
|
runs-on: ubuntu-22.04
|
|
strategy:
|
|
matrix:
|
|
target: [GCC, CLANG]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Run Compat Tests (${{ matrix.target }})
|
|
run: sudo -E make -C scripts/ci local COMPAT_TEST=y ${{ matrix.target }}=1
|
|
|
|
cross-compile:
|
|
needs: [alpine-test]
|
|
runs-on: ubuntu-latest
|
|
continue-on-error: ${{ matrix.experimental }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
experimental: [false]
|
|
target: [
|
|
armv7-stable-cross,
|
|
aarch64-stable-cross,
|
|
ppc64-stable-cross,
|
|
mips64el-stable-cross,
|
|
riscv64-stable-cross,
|
|
]
|
|
include:
|
|
- experimental: true
|
|
target: armv7-unstable-cross
|
|
- experimental: true
|
|
target: aarch64-unstable-cross
|
|
- experimental: true
|
|
target: ppc64-unstable-cross
|
|
- experimental: true
|
|
target: mips64el-unstable-cross
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Run Cross Compilation Targets
|
|
run: >
|
|
sudo make -C scripts/ci ${{ matrix.target }}
|
|
|
|
docker-test:
|
|
needs: [alpine-test]
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-22.04]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Run Docker Test (${{ matrix.os }})
|
|
run: sudo make -C scripts/ci docker-test
|
|
|
|
fedora-asan-test:
|
|
needs: [alpine-test]
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Run Fedora ASAN Test
|
|
run: sudo -E make -C scripts/ci fedora-asan
|
|
|
|
fedora-rawhide-test:
|
|
needs: [alpine-test]
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Run Fedora Rawhide Test
|
|
# We need to pass environment variables from the CI environment to
|
|
# distinguish between CI environments. However, we need to make sure that
|
|
# XDG_RUNTIME_DIR environment variable is not set due to a bug in Podman.
|
|
# FIXME: https://github.com/containers/podman/issues/14920
|
|
run: sudo -E XDG_RUNTIME_DIR= make -C scripts/ci fedora-rawhide CONTAINER_RUNTIME=podman BUILD_OPTIONS="--security-opt seccomp=unconfined"
|
|
|
|
gcov-test:
|
|
needs: [alpine-test]
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Run Coverage Tests
|
|
run: sudo -E make -C scripts/ci local GCOV=1
|
|
- name: Run gcov
|
|
run: sudo -E find . -name '*gcda' -type f -print0 | sudo -E xargs --null --max-args 128 gcov
|
|
- name: Upload coverage to Codecov
|
|
uses: codecov/codecov-action@v5
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
|
|
java-test:
|
|
needs: [alpine-test]
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Run Java Test
|
|
run: sudo make -C scripts/ci java-test
|
|
|
|
loongarch64-qemu-test:
|
|
needs: [alpine-test]
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- run: sudo make -C scripts/ci loongarch64-qemu-test
|
|
|
|
nftables-test:
|
|
needs: [alpine-test]
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Remove iptables
|
|
run: sudo apt remove -y iptables
|
|
- name: Install libnftables-dev
|
|
run: sudo contrib/apt-install libnftables-dev
|
|
- name: chmod 755 /home/runner
|
|
# CRIU's tests are sometimes running as some random user and need
|
|
# to be able to access the test files.
|
|
run: sudo chmod 755 /home/runner
|
|
- name: Build with nftables network locking backend
|
|
run: sudo make -C scripts/ci local COMPILE_FLAGS="NETWORK_LOCK_DEFAULT=NETWORK_LOCK_NFTABLES"
|
|
|
|
podman-test:
|
|
needs: [alpine-test]
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Run Podman Test
|
|
run: sudo make -C scripts/ci podman-test
|
|
|
|
stream-test:
|
|
needs: [alpine-test]
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Run CRIU Image Streamer Test
|
|
run: sudo -E make -C scripts/ci local STREAM_TEST=1
|
|
|
|
x86-64-clang-test:
|
|
needs: [alpine-test]
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Run X86_64 CLANG Test
|
|
run: sudo make -C scripts/ci x86_64 CLANG=1
|
|
|
|
x86-64-gcc-test:
|
|
needs: [alpine-test]
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Run X86_64 GCC Test
|
|
run: sudo make -C scripts/ci x86_64
|