Add make target for coverage
[open-adventure.git] / .gitlab-ci.yml
index 13004d5f0bb7a24f76b44ccddbb7b25c1187d10a..20e466b958fca76dcbd8515397b5246bfcb539cc 100644 (file)
@@ -1,20 +1,46 @@
 image: alpine
 
+variables:
+  GIT_SUBMODULE_STRATEGY: "recursive"
+  GIT_SSL_NO_VERIFY: "true"
+
 stages:
   - build
   - test
+  - deploy
 
 # build advent itself
-binary:
+binary:debug:
   stage: build
   before_script:
     - apk update
-    - apk add make gcc musl-dev
+    - apk add make gcc musl-dev python3
+    - pip3 install PyYAML
   script: 
-    - make advent
+    - make debug
   artifacts:
     paths:
       - advent
+      - cheat
+      - "*.gcda"
+      - "*.gcno"
+  # cache outputs to reduce the build time
+  cache:
+    paths:
+      - "*.o"
+
+binary:release:
+  stage: build
+  before_script:
+    - apk update
+    - apk add make gcc musl-dev python3
+    - pip3 install PyYAML
+  script: 
+    - make advent cheat
+  artifacts:
+    paths:
+      - advent
+      - cheat
   # cache outputs to reduce the build time
   cache:
     paths:
@@ -26,7 +52,7 @@ manpage:
     - apk update
     - apk add make asciidoc
   script:
-    - make .asc.6
+    - make advent.6
   artifacts:
     paths:
       - advent.6
@@ -37,13 +63,39 @@ html:
     - apk update
     - apk add make asciidoc libxslt
   script:
-    - make .asc.html
+    - make html
   artifacts:
     paths:
-      - advent.html
+      - "*.html"
+
+dist:
+  stage: build
+  before_script:
+    - apk update
+    - apk add make asciidoc
+  script:
+    - export VERS=${CI_COMMIT_REF_NAME}
+    - make dist -e
+  artifacts:
+    paths:
+      - "*.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
+  script:
+    - make coverage
+  artifacts:
+    paths:
+      - coverage
+  dependencies:
+    - binary:debug
+
+test:release:
   stage: test
   before_script:
     - apk update
@@ -51,3 +103,20 @@ test:
   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
+