From 616b30dc47387dd0adf0c9eebc318feffe31a453 Mon Sep 17 00:00:00 2001 From: Raymond Toy <toy.raymond@gmail.com> Date: Sat, 5 Sep 2020 20:37:58 +0000 Subject: [PATCH] Refactor CI into stages Refactor CI into 4 stages: install, build, test, benchmark --- .gitlab-ci.yml | 125 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 107 insertions(+), 18 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2d62ed85f..7dde4e20a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,54 +3,143 @@ variables: version: "2020-04-x86" bootstrap: "" -linux-runner: - artifacts: - paths: - - ansi-test/test.out - - benchmarks/cl-bench/results +stages: + - install + - build + - test + - benchmark + +cache: + + +linux:install: + stage: install tags: - linux - before_script: - - git clone https://gitlab.common-lisp.net/ansi-test/ansi-test.git - - (cd ansi-test; git checkout rtoy-cmucl-expected-failures) + artifacts: + paths: + - snapshot/ + script: - wget -nv $download_url/cmucl-$version-linux.tar.bz2 - wget -nv $download_url/cmucl-$version-linux.extra.tar.bz2 - mkdir snapshot - (cd snapshot; tar xjf ../cmucl-$version-linux.tar.bz2; tar xjf ../cmucl-$version-linux.extra.tar.bz2) + +linux:build: + stage: build + tags: + - linux + artifacts: + paths: + - dist/ + needs: + - job: linux:install + artifacts: true script: - bin/build.sh $bootstrap -R -C "" -o snapshot/bin/lisp - bin/make-dist.sh -I dist linux-4 + +linux:test: + stage: test + tags: + - linux + artifacts: + paths: + - ansi-test/test.out + - test.log + needs: + # Needs artifacts from build (dist/) + - job: linux:build + artifacts: true + before_script: + - git clone https://gitlab.common-lisp.net/ansi-test/ansi-test.git + - (cd ansi-test; git checkout rtoy-cmucl-expected-failures) + script: - bin/run-tests.sh -l dist/bin/lisp 2>&1 | tee test.log - cd ansi-test - make LISP="../dist/bin/lisp -batch -noinit -nositeinit" - grep 'No unexpected \(successes\|failures\)' test.out - - cd ../benchmarks/cl-bench + +linux:benchmark: + stage: benchmark + tags: + - linux + artifacts: + paths: + - benchmarks/cl-bench/results + needs: + # Needs artifacts from install (snapshot/) and build (dist/) + - job: linux:install + artifacts: true + - job: linux:build + script: + - cd benchmarks/cl-bench - mkdir tmp - CMUCL=../../snapshot/bin/lisp ./run-cmucl.sh - CMUCL=../../dist/bin/lisp ./run-cmucl.sh - ../../snapshot/bin/lisp -load report -osx-runner: - artifacts: - paths: - - ansi-test/test.out - - benchmarks/cl-bench/results +osx:install: + stage: install tags: - osx - before_script: - - git clone https://gitlab.common-lisp.net/ansi-test/ansi-test.git - - (cd ansi-test; git checkout rtoy-cmucl-expected-failures) + artifacts: + paths: + - snapshot/ + script: - curl -s -o cmucl-$version-darwin.tar.bz2 $download_url/cmucl-$version-darwin.tar.bz2 - mkdir snapshot - (cd snapshot; tar xjf ../cmucl-$version-darwin.tar.bz2) + +osx:build: + stage: build + tags: + - osx + artifacts: + paths: + - dist/ + needs: + - job: osx:install + artifacts: true script: - bin/build.sh $bootstrap -R -C "" -o snapshot/bin/lisp - bin/make-dist.sh -I dist darwin-4 + +osx:test: + stage: test + tags: + - osx + artifacts: + paths: + - ansi-test/test.out + - test.log + needs: + # Needs artifacts from build (dist/) + - job: osx:build + artifacts: true + before_script: + - git clone https://gitlab.common-lisp.net/ansi-test/ansi-test.git + - (cd ansi-test; git checkout rtoy-cmucl-expected-failures) + script: - bin/run-tests.sh -l dist/bin/lisp 2>&1 | tee test.log - cd ansi-test - make LISP="../dist/bin/lisp -batch -noinit -nositeinit" - grep 'No unexpected \(successes\|failures\)' test.out - - cd ../benchmarks/cl-bench + +osx:benchmark: + stage: benchmark + tags: + - osx + artifacts: + paths: + - benchmarks/cl-bench/results + needs: + # Needs artifacts from install (snapshot/) and build (dist/) + - job: osx:install + artifacts: true + - job: osx:build + script: + - cd benchmarks/cl-bench - mkdir tmp - CMUCL=../../snapshot/bin/lisp ./run-cmucl.sh - CMUCL=../../dist/bin/lisp ./run-cmucl.sh -- GitLab