add .gitlab-ci.yml
authorJacob Lifshay <programmerjake@gmail.com>
Mon, 4 Apr 2022 06:14:58 +0000 (23:14 -0700)
committerJacob Lifshay <programmerjake@gmail.com>
Mon, 4 Apr 2022 06:14:58 +0000 (23:14 -0700)
.gitlab-ci.yml [new file with mode: 0644]

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644 (file)
index 0000000..edef5a5
--- /dev/null
@@ -0,0 +1,99 @@
+image: debian:10
+
+cache:
+    paths:
+        - ccache
+
+build:
+    stage: build
+    before_script:
+        - apt-get update
+        # one package per line to simplify sorting, git diff, etc.
+        - >-
+            apt-get -y install
+            autoconf
+            bison
+            build-essential
+            ccache
+            clang
+            cmake
+            curl
+            flex
+            gawk
+            git
+            gperf
+            graphviz
+            libboost-program-options-dev
+            libffi-dev
+            libftdi-dev
+            libgmp-dev
+            libreadline-dev
+            mercurial
+            pkg-config
+            python
+            python3
+            python3-dev
+            python3-pip
+            python3-setuptools
+            python3-wheel
+            tcl-dev
+            xdot
+        - 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
+        - python3 -m pip install --user pytest-xdist
+    after_script:
+        - export CCACHE_DIR="$PWD/ccache"
+        - ccache --show-stats
+    script:
+        - git clone --depth 1 https://github.com/YosysHQ/yosys.git yosys
+        - pushd yosys
+        - git rev-parse HEAD
+        - make config-gcc
+        - make -j$(nproc)
+        - make install
+        - popd
+        - yosys -V
+
+        - git clone --depth 1 https://github.com/YosysHQ/SymbiYosys.git SymbiYosys
+        - pushd SymbiYosys
+        - git rev-parse HEAD
+        - make install
+        - popd
+
+        - git clone --depth 1 https://github.com/SRI-CSL/yices2.git yices2
+        - pushd yices2
+        - git rev-parse HEAD
+        - autoconf
+        - ./configure
+        - make -j$(nproc)
+        - make install
+        - popd
+
+        - git clone --depth 1 https://github.com/Z3Prover/z3.git z3
+        - pushd z3
+        - git rev-parse HEAD
+        - python scripts/mk_make.py
+        - cd build
+        - make -j$(nproc)
+        - make install
+        - popd
+
+        - git clone --depth 1 https://gitlab.com/nmigen/nmigen.git nmigen
+        - pushd nmigen
+        - 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
+
+        - python3 setup.py develop
+
+        - pytest -n auto