make gitlab cache always be saved
[nmigen-gf.git] / .gitlab-ci.yml
1 image: debian:10
2
3 cache:
4 when: always
5 paths:
6 - ccache
7
8 build:
9 stage: build
10 before_script:
11 - apt-get update
12 # one package per line to simplify sorting, git diff, etc.
13 - >-
14 apt-get -y install
15 autoconf
16 bison
17 build-essential
18 ccache
19 clang
20 cmake
21 curl
22 flex
23 gawk
24 git
25 gperf
26 graphviz
27 libboost-program-options-dev
28 libffi-dev
29 libftdi-dev
30 libgmp-dev
31 libreadline-dev
32 mercurial
33 pkg-config
34 python
35 python3
36 python3-dev
37 python3-pip
38 python3-setuptools
39 python3-wheel
40 tcl-dev
41 xdot
42 - export PATH="$HOME/.local/bin:/usr/lib/ccache:$PATH"
43 - export CCACHE_BASEDIR="$PWD"
44 - export CCACHE_DIR="$PWD/ccache"
45 - export CCACHE_COMPILERCHECK=content
46 - ccache --zero-stats || true
47 - ccache --show-stats || true
48 - python3 -m pip install --user pytest-xdist
49 script:
50 - git clone --depth 1 https://github.com/YosysHQ/yosys.git yosys
51 - pushd yosys
52 - git rev-parse HEAD
53 - make config-gcc
54 - make -j$(nproc)
55 - make install
56 - popd
57 - yosys -V
58
59 - git clone --depth 1 https://github.com/YosysHQ/SymbiYosys.git SymbiYosys
60 - pushd SymbiYosys
61 - git rev-parse HEAD
62 - make install
63 - popd
64
65 - git clone --depth 1 https://github.com/SRI-CSL/yices2.git yices2
66 - pushd yices2
67 - git rev-parse HEAD
68 - autoconf
69 - ./configure
70 - make -j$(nproc)
71 - make install
72 - popd
73
74 - git clone --depth 1 https://github.com/Z3Prover/z3.git z3
75 - pushd z3
76 - git rev-parse HEAD
77 - python scripts/mk_make.py
78 - cd build
79 - make -j$(nproc)
80 - make install
81 - popd
82
83 - git clone --depth 1 https://gitlab.com/nmigen/nmigen.git nmigen
84 - pushd nmigen
85 - git rev-parse HEAD
86 - python3 setup.py develop
87 - popd
88
89 - git clone --depth 1 https://git.libre-soc.org/git/nmutil.git nmutil
90 - pushd nmutil
91 - git rev-parse HEAD
92 - python3 setup.py develop
93 - popd
94
95 - python3 setup.py develop
96
97 - pytest -n auto