-image: alpine
+image: opensuse:tumbleweed
stages:
- build
binary:debug:
stage: build
before_script:
- - apk update
- - apk add make gcc musl-dev
- script:
+ - zypper install -y make gcc libedit-devel libasan5 libubsan1 python python2-PyYAML lcov
+ script:
- make debug
artifacts:
paths:
- advent
- - "*.gcda"
- - "*.gcno"
- # cache outputs to reduce the build time
- cache:
- paths:
+ - cheat
- "*.o"
+ - dungeon.c
+ - dungeon.h
binary:release:
stage: build
before_script:
- - apk update
- - apk add make gcc musl-dev
- script:
- - make advent
+ - zypper install -y make gcc libedit-devel python python2-PyYAML
+ script:
+ - make advent cheat
artifacts:
paths:
- advent
- # cache outputs to reduce the build time
- cache:
- paths:
+ - cheat
- "*.o"
+ - dungeon.c
+ - dungeon.h
manpage:
stage: build
before_script:
- - apk update
- - apk add make asciidoc
+ - zypper install -y make asciidoc
script:
- - make .adoc.6
+ - make advent.6
artifacts:
paths:
- advent.6
html:
stage: build
before_script:
- - apk update
- - apk add make asciidoc libxslt
+ - zypper install -y make asciidoc libxslt
script:
- make html
artifacts:
paths:
- "*.html"
+dist:
+ stage: build
+ before_script:
+ - zypper install -y make asciidoc tar
+ 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
+ - zypper install -y make gcc libedit-devel libasan5 libubsan1 python python2-PyYAML lcov
script:
- - cd tests
- - make
- - cd ..
- - lcov -t "advent" -o advent.info -c -d .
- - genhtml -o coverage advent.info
+ - make coverage
artifacts:
paths:
- coverage
dependencies:
- binary:debug
+test:debug_clang:
+ stage: test
+ before_script:
+ - zypper install -y make clang libedit-devel python python2-PyYAML lcov
+ script:
+ - CC=clang make debug check
+
test:release:
stage: test
before_script:
- - apk update
- - apk add make
+ - zypper install -y make libedit
script:
- cd tests
- make
script:
- mkdir public
- mv coverage public
- - "mv *.html public"
artifacts:
paths:
- public
only:
- master
dependencies:
- - html
- test:debug
-
-package:
- stage: deploy
- script:
- - mv README.adoc README
- artifacts:
- paths:
- - advent
- - NEWS
- - COPYING
- - README
- - advent.6
- dependencies:
- - binary:release
- - manpage