Another coverage tweak.
[open-adventure.git] / .gitlab-ci.yml
index 1dcb6c1867340ff7762e95a3c8a358093f28b64a..1a695406a6cf87bc13fee2706a320a3bbc9dd581 100644 (file)
@@ -1,4 +1,4 @@
-image: alpine
+image: opensuse:tumbleweed
 
 stages:
   - build
@@ -6,30 +6,40 @@ stages:
   - deploy
 
 # build advent itself
-binary:
+binary:debug:
   stage: build
   before_script:
-    - apk update
-    - apk add make gcc musl-dev
-  script: 
-    - make advent
+    - zypper install -y make gcc libedit-devel libasan5 libubsan1 python python2-PyYAML lcov
+  script:
+    - make debug
   artifacts:
     paths:
       - advent
-      - "*.gcda"
-      - "*.gcno"
-  # cache outputs to reduce the build time
-  cache:
+      - cheat
+      - "*.o"
+      - dungeon.c
+      - dungeon.h
+
+binary:release:
+  stage: build
+  before_script:
+    - zypper install -y make gcc libedit-devel python python2-PyYAML
+  script:
+    - make advent cheat
+  artifacts:
     paths:
+      - advent
+      - cheat
       - "*.o"
+      - dungeon.c
+      - dungeon.h
 
 manpage:
   stage: build
   before_script:
-    - apk update
-    - apk add make asciidoc
+    - zypper install -y make asciidoc
   script:
-    - make .asc.6
+    - make advent.6
   artifacts:
     paths:
       - advent.6
@@ -37,37 +47,64 @@ manpage:
 html:
   stage: build
   before_script:
-    - apk update
-    - apk add make asciidoc libxslt
+    - zypper install -y make asciidoc libxslt
+  script:
+    - make html
+  artifacts:
+    paths:
+      - "*.html"
+
+dist:
+  stage: build
+  before_script:
+    - zypper install -y make asciidoc tar
   script:
-    - make .asc.html
+    - export VERS=${CI_COMMIT_REF_NAME}
+    - make dist -e
   artifacts:
     paths:
-      - advent.html
+      - "*.tar.gz"
 
 # run tests using the binary built before
-test:
+test:debug:
   stage: test
   before_script:
-    - apk update
-    - apk add make gcc
-    - apk add lcov --update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing/ --allow-untrusted
+    - zypper install -y make gcc libedit-devel libasan5 libubsan1 python python2-PyYAML lcov
   script:
-    - cd tests
-    - make
-    - cd ..
-    - lcov -t "advent" -o advent.info -c -d .
-    - genhtml -o coverage advent.info
+    - make coverage
   artifacts:
     paths:
       - coverage
+  dependencies:
+    - binary:debug
+
+test:debug_clang:
+  stage: test
+  before_script:
+    - zypper install -y make clang libedit-devel python python2-PyYAML lcov
+  script:
+    - CC=clang make debug check
+
+test:release:
+  stage: test
+  before_script:
+    - zypper install -y make libedit
+  script:
+    - cd tests
+    - make
+    - cd ..
+  dependencies:
+    - binary:release
 
 pages:
   stage: deploy
   script:
+    - mkdir public
     - mv coverage public
   artifacts:
     paths:
       - public
   only:
     - master
+  dependencies:
+    - test:debug