Skip to content

Commit

Permalink
gh action
Browse files Browse the repository at this point in the history
Signed-off-by: Hajime Tazaki <thehajime@gmail.com>
  • Loading branch information
thehajime committed Sep 19, 2024
1 parent fcee95c commit ddc2ef9
Show file tree
Hide file tree
Showing 4 changed files with 158 additions and 0 deletions.
Binary file added .github/workflows/busybox
Binary file not shown.
131 changes: 131 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
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
- 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)
#container_id=$(docker create alpine: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
echo "/sbin/halt" >> .github/workflows/rcS
sudo cp .github/workflows/rcS $mnt/etc/init.d/
sudo cp .github/workflows/inittab $mnt/etc/
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=/sbin/init 2>&1 | tee /tmp/log.txt
echo "========="
cat /tmp/log.txt
- 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=/sbin/init 2>&1 | tee /tmp/log.txt
echo "========="
cat /tmp/log.txt
#- 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: Setup tmate session
# uses: mxschmitt/action-tmate@v3
# with:
# detached: true
- name: Check coding style
run: |
git checkout -b tmp
git format-patch -o p1 v6.10..HEAD~1
./scripts/checkpatch.pl --summary-file --ignore FILE_PATH_CHANGES p1/*.patch
13 changes: 13 additions & 0 deletions .github/workflows/inittab
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# /etc/inittab

::sysinit:/etc/init.d/rcS

::respawn:-/bin/sh

# Stuff to do when restarting the init process
::restart:/sbin/init

# Stuff to do before rebooting
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::shutdown:/sbin/swapoff -a
14 changes: 14 additions & 0 deletions .github/workflows/rcS
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/sh

mount proc /proc -t proc
/sbin/ifconfig lo 127.0.0.1 up
/sbin/ifconfig eth0 10.0.0.2 up
/sbin/ip route add default via 10.0.0.1 dev eth0

export PATH=/home:/sbin:/usr/sbin:/bin:/usr/bin
export TERM=linux

# hanging
#export PS1="\[$(tput bold)\]\[$(tput setaf 4)\][\[$(tput setaf 5)\]\u\[$(tput setaf 4)\]@\[$(tput setaf 5)\]\h \[$(tput setaf 2)\]\W\[$(tput setaf 4)\]]\\$ \[$(tput sgr0)\]"

exec "$@"

0 comments on commit ddc2ef9

Please sign in to comment.