X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=.gitlab-ci.yml;h=c179851865000ddc8cc5a83d63d84e458623dd1e;hb=495f4afbe02fe5b7dd37d5c654ec123a031cdf3e;hp=725dfcb86698b4745597fbc9de62c02b94e7c042;hpb=6b8c9948761b4051b853c66ca2c639e770aee3c3;p=open-adventure.git diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 725dfcb..c179851 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,10 +1,33 @@ -image: gcc +image: alpine -# build using Makefile -build: +stages: + - build + - test + - deploy + +# build advent itself +binary:debug: + stage: build + before_script: + - apk update + - apk add make gcc musl-dev + script: + - make debug + artifacts: + paths: + - advent + - "*.gcda" + - "*.gcno" + # cache outputs to reduce the build time + cache: + paths: + - "*.o" + +binary:release: stage: build - before_script: - - apt update && apt -y install make autoconf + before_script: + - apk update + - apk add make gcc musl-dev script: - make advent artifacts: @@ -15,8 +38,85 @@ build: paths: - "*.o" +manpage: + stage: build + before_script: + - apk update + - apk add make asciidoc + script: + - make advent.6 + artifacts: + paths: + - advent.6 + +html: + stage: build + before_script: + - apk update + - apk add make asciidoc libxslt + script: + - make html + artifacts: + paths: + - "*.html" + # 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 check + - cd tests + - make + - 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 + - "mv *.html public" + artifacts: + paths: + - public + only: + - master + dependencies: + - html + - test:debug + +package: + stage: deploy + script: + - cp README.adoc README + artifacts: + paths: + - advent + - NEWS + - COPYING + - README + - advent.6 + dependencies: + - binary:release + - manpage