Skip to content

gh action

gh action #161

Workflow file for this run

on:
push:
branches:
- '**'
pull_request:
branches:
- master
jobs:
tests:
runs-on: ${{ matrix.runs_on }}
strategy:
fail-fast: false
matrix:
include:
- displayTargetName: ubuntu-22.04
os: unix
runs_on: ubuntu-22.04
shell: bash
defconfig: defconfig
- displayTargetName: ubuntu-22.04 (nommu)
os: unix
runs_on: ubuntu-22.04
shell: bash
defconfig: x86_64_nommu_defconfig
kunit_opts: --kconfig_add CONFIG_MMU=n
timeout-minutes: 100
env:
CCACHE_DIR: ${{ github.workspace }}/.ccache
USE_CCACHE: 1
defaults:
run:
shell: ${{ matrix.shell }}
steps:
- name: Set env
shell: bash
run: |
echo "/usr/lib/ccache/bin:/usr/lib/ccache:${{ github.workspace }}/bin" >> $GITHUB_PATH
echo "export PATH=/usr/lib/ccache/bin:/usr/lib/ccache:${{ github.workspace }}/bin:$PATH" >> $HOME/.bashrc
- name: Checkout
uses: actions/checkout@v4
- name: Run a multi-line script
shell: 'script -q -e -c "bash {0}"'
run: |
perl -E 'say "Is STDOUT a TTY?: ", -t STDOUT ? "yes" : "no"'
- uses: actions/cache@v4
with:
path: ${{ env.CCACHE_DIR }}
key: ${{ runner.os }}-${{ matrix.defconfig }}-ccache-build-${{ github.sha }}
restore-keys: ${{ runner.os }}-${{ matrix.defconfig }}-ccache-build-
- name: Install packages
if: runner.os == 'Linux'
run: |
sudo apt update -y
sudo apt install -y ccache libseccomp-dev
- name: build-0
run: |
make ARCH=um ${{ matrix.defconfig }} O=build
make -j8 ARCH=um O=build
- name: Log in to docker.io
uses: docker/login-action@v3.2.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: image for test
run: |
container_id=$(docker create kollerr/alpine-test:latest)
docker export $container_id > alpine.tar
docker rm $container_id
mnt=$(mktemp -d)
dd if=/dev/zero of=alpine.ext4 bs=1 count=0 seek=1G
sudo chmod og+wr "alpine.ext4"
yes 2>/dev/null | mkfs.ext4 "alpine.ext4" || true
sudo mount "alpine.ext4" $mnt
sudo tar -xf alpine.tar -C $mnt
sudo mknod -m 666 $mnt/dev/null c 1 3
sudo mknod -m 666 $mnt/dev/zero c 1 5
sudo mknod -m 666 $mnt/dev/ptmx c 5 2
sudo mknod -m 666 $mnt/dev/tty c 5 0
sudo mknod -m 444 $mnt/dev/random c 1 8
sudo mknod -m 444 $mnt/dev/urandom c 1 9
sudo cp .github/workflows/busybox $mnt/bin/busybox
sudo cp .github/workflows/init.sh $mnt/
sudo umount $mnt
- name: test-0
run: |
sudo sh -c "echo 0 > /proc/sys/vm/mmap_min_addr"
./build/vmlinux ubd0=./alpine.ext4 rw mem=1024m loglevel=8 console=tty init=/init.sh uname -a || true
- name: kunit test
run: |
for config in `find ./ -name .kunitconfig | grep -v -E "kfence|sunrpc|handshake|kcsan|gpu" `; do \
echo "==" $config "==" ; \
./tools/testing/kunit/kunit.py run --kunitconfig=$config ${{ matrix.kunit_opts }}
done
- name: build-1
run: |
make ARCH=um ${{ matrix.defconfig }}
make -j8 ARCH=um
- name: test-1
run: |
./vmlinux ubd0=./alpine.ext4 rw mem=1024m loglevel=8 console=tty init=/init.sh uname -a || true
#- name: Setup tmate session
# uses: mxschmitt/action-tmate@v3
checkpatch:
runs-on: ubuntu-22.04
name: checkpatch
steps:
- name: Checkout
with:
fetch-depth: 0
uses: actions/checkout@v4
- name: Install pip dependencies
run: sudo pip install ply GitPython
- name: Check coding style
run: |
git format-patch -o p1 v6.10..HEAD~1
for f in `ls p1/*` ; do cat $f | scripts/checkpatch.pl --summary-file --ignore COMMIT_MESSAGE --ignore FILE_PATH_CHANGES - && true ; done