open-adventure/.gitlab-ci.yml
Jason S. Ninneman afba06504a Update the pipeline to produce a tarball of the source upon every commit.
Unfortunately, it's not possible to preserve previous tarballs from run to run.
2017-06-04 17:13:28 -07:00

122 lines
1.9 KiB
YAML

image: alpine
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:
- apk update
- apk add make gcc musl-dev
script:
- make advent
artifacts:
paths:
- advent
# 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: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:
- 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 -p public/releases
- mv coverage public
- "mv *.html public"
- "mv *.tar.gz public/releases"
artifacts:
paths:
- public
only:
- master
dependencies:
- html
- test:debug
- dist