X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=.gitlab-ci.yml;h=7198e7e123fa068d0a31556478baaa38f384450a;hp=1dcb6c1867340ff7762e95a3c8a358093f28b64a;hb=aa1dd666a9e5a972cb8e29c70cebb9c35a785ddf;hpb=900f8d9df50daba2f678c43f9c85ca8e19900090 diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1dcb6c1..7198e7e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,21 +1,27 @@ 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 @@ -23,13 +29,30 @@ binary: 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: + - "*.o" + manpage: stage: build before_script: - apk update - apk add make asciidoc script: - - make .asc.6 + - make advent.6 artifacts: paths: - advent.6 @@ -40,13 +63,25 @@ html: - apk update - apk add make asciidoc libxslt script: - - make .asc.html + - make html + artifacts: + paths: + - "*.html" + +dist: + stage: build + before_script: + - apk update + - apk add make asciidoc + script: + - 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 @@ -55,19 +90,36 @@ test: script: - cd tests - make + - make coverage - cd .. - - lcov -t "advent" -o advent.info -c -d . - - genhtml -o coverage advent.info artifacts: paths: - coverage + dependencies: + - binary:debug + +test:release: + stage: test + before_script: + - apk update + - apk add make + 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 +