TESTED: All CI jobs execute and run the test suite. Passes all tests on i386, some x86_64 tests are exposed as failing.
--- .forgejo/workflows/action.yaml | 110 +++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 .forgejo/workflows/action.yaml diff --git a/.forgejo/workflows/action.yaml b/.forgejo/workflows/action.yaml new file mode 100644 index 00000000..7ac521dd --- /dev/null +++ b/.forgejo/workflows/action.yaml @@ -0,0 +1,110 @@ +on: + push: + branches: + - 'master' + - 'ci-*' + +jobs: + i386: + runs-on: self + strategy: + matrix: + smp: ["--enable-ncpus=1 --enable-apic", "--enable-ncpus=1 --disable-apic", "--enable-ncpus=8"] + pae: ["--enable-pae", "--disable-pae"] + kdb: ["--enable-kdb", "--disable-kdb"] + steps: + - name: Checkout code + uses: actions/checkout@v6 + - name: gnumach 32 bit + run: | + git clone -q --depth=1 --single-branch https://https.git.savannah.gnu.org/git/hurd/mig.git mig32 + autoreconf -fi + mkdir gnu32 + mkdir build32 + cd build32 + ../configure --prefix= --host=i686-gnu LD=i686-linux-gnu-ld CC=i686-linux-gnu-gcc \ + --disable-linux-groups \ + ${{ matrix.smp }} \ + ${{ matrix.pae }} \ + ${{ matrix.kdb }} + make DESTDIR=../gnu32 install-data + cd .. + cd mig32 + autoreconf -fi + mkdir build32 + cd build32 + GNU=$(realpath ../../gnu32) + TARGET_CPPFLAGS=-I"$GNU"/include TARGET_CC=i686-linux-gnu-gcc ../configure --prefix="$GNU" --target=i686-gnu + make all install + PATH=$PATH:$GNU/bin + cd ../.. + cd build32 + CCASFLAGS="-fdebug-prefix-map=$PWD=." CFLAGS="-ffile-prefix-map=$PWD=." \ + ../configure --prefix= --host=i686-gnu \ + MIG=i686-gnu-mig LD=i686-linux-gnu-ld CC=i686-linux-gnu-gcc \ + --disable-linux-groups \ + ${{ matrix.smp }} \ + ${{ matrix.pae }} \ + ${{ matrix.kdb }} + make gnumach.gz + make VERBOSE=true check + x86_64: + runs-on: self + strategy: + matrix: + smp: ["--enable-ncpus=1", "--enable-ncpus=8"] + user32: ["--enable-user32", "--disable-user32"] + kdb: ["--enable-kdb", "--disable-kdb"] + steps: + - name: Checkout code + uses: actions/checkout@v6 + - name: gnumach 64 bit + run: | + git clone -q --depth=1 --single-branch https://https.git.savannah.gnu.org/git/hurd/mig.git + autoreconf -fi + if [ ${{ matrix.user32 }} == '--enable-user32' ]; then + USER_H=i686 + else + USER_H=x86_64 + fi + mkdir gnu64 + mkdir build64 + cd build64 + ../configure --prefix= --host=x86_64-gnu LD=x86_64-linux-gnu-ld CC=x86_64-linux-gnu-gcc \ + --enable-apic \ + --disable-linux-groups \ + ${{ matrix.smp }} \ + ${{ matrix.user32 }} \ + ${{ matrix.kdb }} + make DESTDIR=../gnu64 install-data + cd .. + cd mig + autoreconf -fi + mkdir build64 + cd build64 + GNU=$(realpath ../../gnu64) + TARGET_CPPFLAGS=-I"$GNU"/include TARGET_CC=x86_64-linux-gnu-gcc ../configure --prefix="$GNU" --target=x86_64-gnu + make all install + cd .. + if [ "$USER_H" == "i686" ]; then + # We need both migs + mkdir build32 + cd build32 + TARGET_CPPFLAGS=-I"$GNU"/include TARGET_CC=i686-linux-gnu-gcc ../configure --prefix="$GNU" --target=i686-gnu + make all install + cd .. + fi + cd .. + PATH=$PATH:$GNU/bin + cd build64 + CCASFLAGS="-fdebug-prefix-map=$PWD=." CFLAGS="-ffile-prefix-map=$PWD=." \ + ../configure --prefix= --host=x86_64-gnu \ + MIG=x86_64-gnu-mig LD=x86_64-linux-gnu-ld CC=x86_64-linux-gnu-gcc \ + USER_MIG=${USER_H}-gnu-mig USER_CC=${USER_H}-linux-gnu-gcc USER_CPP="${USER_H}-linux-gnu-gcc -E" \ + --enable-apic \ + --disable-linux-groups \ + ${{ matrix.smp }} \ + ${{ matrix.user32 }} \ + ${{ matrix.kdb }} + make gnumach.gz + make VERBOSE=true check -- 2.51.0
