X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=.gitlab-ci.yml;h=e6d8543d0d2331716e116dddb1d589d27944bf96;hp=13ad35d040fb2e7e60de55523ff1cb09ff00fd9d;hb=603f548a215a0118dc3270d094671199eb28beab;hpb=5c8276e2cbd438c16948621188ddee4cc92a13d5 diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 13ad35d..e6d8543 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,22 +1,121 @@ -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 python3 libedit-dev + - pip3 install PyYAML + script: + - make debug + artifacts: + paths: + - advent + - cheat + - "*.gcda" + - "*.gcno" + # cache outputs to reduce the build time + cache: + paths: + - "*.o" + +binary:release: stage: build - before_script: - - apt update && apt -y install make + before_script: + - apk update + - apk add make gcc musl-dev python3 libedit-dev + - pip3 install PyYAML script: - - make advent + - 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 advent.6 + artifacts: + paths: + - advent.6 + +html: + stage: build + before_script: + - apk update + - apk add make asciidoc libxslt + script: + - 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: + - "*.tar.gz" + # run tests using the binary built before -test: +test:debug: + stage: test + before_script: + - apk update + - apk add make gcc libedit-dev + - apk add lcov --update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing/ --allow-untrusted + script: + - cd tests + - make + - make coverage + - cd .. + artifacts: + paths: + - coverage + dependencies: + - binary:debug + +test:release: stage: test + before_script: + - apk update + - apk add make libedit script: - - make check + - cd tests + - make + - cd .. + dependencies: + - binary:release + +pages: + stage: deploy + script: + - mkdir public + - mv coverage public + artifacts: + paths: + - public + only: + - master + dependencies: + - test:debug +