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:
- - apt-get -o dir::cache::archives="apt-cache" update
+ - mkdir -p apt-cache
+ - 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
- 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)
- 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
- 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