X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=.gitlab-ci.yml;h=c57c2d547bf19eb76421deb3cb99e33e9d883a32;hb=HEAD;hp=2a2942ba0b04ae4609a4c53002a30ada4bea63fe;hpb=cd4cbabf64842fbdb3a276ba8134b9dcd43da4c8;p=soc.git diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2a2942ba..c57c2d54 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,39 +4,75 @@ cache: paths: - ccache - .cache/pip - - apt-cache/ + - apt-cache + when: 'always' variables: PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" GIT_SUBMODULE_STRATEGY: recursive + GIT_DEPTH: "500" build: stage: build + timeout: 2h before_script: - mkdir -p apt-cache - - apt-get -o dir::cache::archives="apt-cache" update + - apt-get -o dir::cache::archives="$(pwd)/apt-cache" update - >- - apt-get -o dir::cache::archives="apt-cache" -y install - build-essential git python3-dev python3-pip - python3-setuptools python3-wheel pkg-config tcl-dev - libreadline-dev bison flex libffi-dev ccache python3-venv - binutils-powerpc64-linux-gnu binutils-powerpc64le-linux-gnu - autoconf gperf libgmp-dev + apt-get -o dir::cache::archives="$(pwd)/apt-cache" -y install + build-essential + git + python3-dev + python3-pip + python3-setuptools + python3-setuptools-scm + python3-wheel + pkg-config + tcl-dev + libreadline-dev + bison + flex + libffi-dev + ccache + python3-venv + binutils-powerpc64-linux-gnu + binutils-powerpc64le-linux-gnu + autoconf + gperf + libgmp-dev + libmpfr-dev + libssl-dev + curl - export PATH="/usr/lib/ccache:$PATH" - export CCACHE_BASEDIR="$PWD" - export CCACHE_DIR="$PWD/ccache" - export CCACHE_COMPILERCHECK=content - ccache --zero-stats || true - ccache --show-stats || true - after_script: - - export CCACHE_DIR="$PWD/ccache" - - ccache --show-stats + - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y + - source $HOME/.cargo/env script: - - python3 -m venv .env + - python3 -m venv --system-site-packages .env - . .env/bin/activate - - pip install nose + - pip install pytest-xdist==3.3.1 pytest==7.3.1 + + - git clone --depth 1 -b v0.1.1 https://github.com/cocotb/cocotb-bus.git cocotb-bus + - pushd cocotb-bus + - pip install . --no-deps + - popd + + - git clone --depth 1 -b v1.5.2 https://github.com/cocotb/cocotb.git cocotb + - pushd cocotb + - pip install . + - popd - - git clone --depth 1 https://github.com/SRI-CSL/yices2.git yices2 + - 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 + + - git clone --depth 1 -b Yices-2.6.4 https://github.com/SRI-CSL/yices2.git yices2 - pushd yices2 - autoconf - ./configure @@ -44,7 +80,7 @@ build: - make install - popd - - git clone --depth 1 https://github.com/YosysHQ/yosys.git yosys + - git clone --depth 1 -b yosys-0.17 https://github.com/YosysHQ/yosys.git yosys - pushd yosys - make config-gcc - make -j$(nproc) @@ -52,29 +88,56 @@ build: - popd - yosys -V - - git clone --depth 1 https://github.com/YosysHQ/SymbiYosys.git SymbiYosys + - git clone https://github.com/YosysHQ/SymbiYosys.git SymbiYosys - pushd SymbiYosys + - git checkout d10e472edf4ea9be3aa6347b264ba575fbea933a - make install - popd - - git clone --depth 1 https://github.com/nmigen/nmigen.git nmigen + - git clone --depth 1 https://gitlab.com/nmigen/nmigen.git nmigen - pushd nmigen - - python setup.py develop + - git rev-parse HEAD + - 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 git://git.libre-riscv.org/nmutil.git nmutil + - 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/nmigen-soc.git nmigen-soc + - pushd nmigen-soc + - git tag | xargs git tag -d - python setup.py develop - popd - - git clone --depth 1 git://git.libre-riscv.org/ieee754fpu.git ieee754fpu + - git clone --depth 1 https://git.libre-soc.org/git/ieee754fpu.git ieee754fpu - pushd ieee754fpu - python setup.py develop - popd + - git clone --depth 1 https://git.libre-soc.org/git/openpower-isa.git openpower-isa + - pushd openpower-isa + - python3 setup.py develop + - if ! out="$(make 2>&1)"; then echo "$out"; exit 1; fi + - popd + + - git clone --depth 1 https://git.libre-soc.org/git/c4m-jtag.git c4m-jtag + - pushd c4m-jtag + - python setup.py develop + - popd + - IEEE754FPU_PATH="$(pwd)"/ieee754fpu - - git clone --depth 1 --recursive https://github.com/billzorn/sfpy.git sfpy + - git clone --depth 1 --recursive -b v0.6.0 https://github.com/billzorn/sfpy.git sfpy - pushd sfpy + - git apply "$IEEE754FPU_PATH"/sfpy.patch - pushd berkeley-softfloat-3 - git apply "$IEEE754FPU_PATH"/berkeley-softfloat.patch - popd @@ -82,13 +145,19 @@ build: - git apply ../softposit_sfpy_build.patch - git apply "$IEEE754FPU_PATH"/SoftPosit.patch - popd - - pip install --upgrade -r requirements.txt + - pip install -r requirements.txt - make lib -j$(nproc) - make cython -j$(nproc) - make wheel -j$(nproc) - - pip install dist/sfpy*.whl + - pip install --force-reinstall dist/sfpy*.whl + - popd + + - python3 -m pip install 'maturin>=0.11,<0.12' + - git clone --depth 1 https://git.libre-soc.org/git/power-instruction-analyzer.git pia + - pushd pia + - maturin build --cargo-extra-args=--features=python-extension + - python3 -m pip install target/wheels/*.whl - popd - python setup.py develop - - python src/soc/decoder/pseudo/pywriter.py - - nosetests -v --processes=-1 --process-timeout=120 + - SILENCELOG='!*,default' pytest -v --maxfail=20