pysvp64db: fix traversal
[openpower-isa.git] / .gitlab-ci.yml
index df1111b9dffe263f3be79a6f0b915377e1547c6d..1cfbf1fc9a1d8973949481ecd26f408d08f6a432 100644 (file)
@@ -4,6 +4,7 @@ cache:
     when: always
     paths:
         - ccache
+        - linux.bundle
 
 build:
     stage: build
@@ -11,7 +12,8 @@ build:
         - apt-get update
         # one package per line to simplify sorting, git diff, etc.
         - >-
-            apt-get -y install
+            apt-get -y install --no-install-recommends
+            aria2
             autoconf
             binutils-powerpc64-linux-gnu
             binutils-powerpc64le-linux-gnu
@@ -22,6 +24,7 @@ build:
             cmake
             curl
             flex
+            g++-powerpc64le-linux-gnu
             gawk
             git
             gperf
@@ -37,7 +40,9 @@ build:
             python3-dev
             python3-pip
             python3-setuptools
+            python3-setuptools-scm
             python3-wheel
+            qemu-system-ppc
             tcl-dev
         - export PATH="$HOME/.local/bin:/usr/lib/ccache:$PATH"
         - export CCACHE_BASEDIR="$PWD"
@@ -45,7 +50,12 @@ build:
         - export CCACHE_COMPILERCHECK=content
         - ccache --zero-stats || true
         - ccache --show-stats || true
-        - python3 -m pip install --user pytest-xdist
+        # one package per line to simplify sorting, git diff, etc.
+        - >-
+            python3 -m pip install --user
+            pytest-xdist==3.3.1
+            pytest==7.3.1
+            pytest-subtests==0.11.0
     script:
         - git clone --depth 1 -b yosys-0.17 https://github.com/YosysHQ/yosys.git yosys
         - pushd yosys
@@ -83,14 +93,43 @@ build:
         - python3 setup.py develop
         - popd
 
+        - git clone --depth 1 https://git.libre-soc.org/git/mdis.git mdis
+        - pushd mdis
+        - git rev-parse HEAD
+        - python3 setup.py develop
+        - popd
+
         - git clone --depth 1 https://git.libre-soc.org/git/nmutil.git nmutil
         - pushd nmutil
         - git rev-parse HEAD
         - python3 setup.py develop
         - popd
 
+        - git clone --depth 1 https://git.libre-soc.org/git/pytest-output-to-files.git pytest-output-to-files
+        - pushd pytest-output-to-files
+        - git rev-parse HEAD
+        - python3 setup.py develop
+        - popd
+
+        # kernel.org recommends cloning from a bundle in CI since that uses a CDN
+        - if [[ ! -f linux.bundle ]]; then aria2c -x 16 -s 16 -o linux.bundle https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/clone.bundle || { rm -f linux.bundle; exit 1; }; fi
+        - git clone linux.bundle
+        - pushd linux
+        - git remote set-url origin https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
+        - git remote update origin
+        - git checkout v6.5.8
+        - popd
+
         - python3 setup.py develop
 
         - make generate &> generate.log || { cat generate.log; false; }
 
-        - pytest -n auto src/openpower --maxfail=5
+        - python3 -m openpower.syscalls json linux > src/openpower/syscalls/syscalls.json
+
+        # maxschedchunk substantially speeds up testing -- by ~2x on CI
+        # it is supported by the version of pytest-xdist used by both this file
+        # and the dev-env-setup scripts (which should be the same versions).
+        #
+        # maxfail=10 because otherwise the output log is too long and gitlab
+        # truncates it, removing the testing summary.
+        - SILENCELOG=1 SIM_NO_VCD=1 pytest -v --maxfail=10 --maxschedchunk=1