From: Jason S. Ninneman Date: Sat, 15 Jul 2017 03:45:19 +0000 (-0700) Subject: Use Fedora for the CI pipeline. X-Git-Tag: 1.3~57 X-Git-Url: https://jxself.org/git/?a=commitdiff_plain;h=ee7bacc9ec2d701138586fe2b363702c4f46deee;p=open-adventure.git Use Fedora for the CI pipeline. --- diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b1e9653..1c5a83e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -image: alpine +image: fedora stages: - build @@ -9,44 +9,36 @@ stages: binary:debug: stage: build before_script: - - apk update - - apk add make gcc musl-dev python py2-pip libedit-dev - - pip install PyYAML + - dnf install make gcc libedit-devel libasan libubsan python2 PyYAML lcov -y script: - make debug artifacts: paths: - advent - cheat - - "*.gcda" - - "*.gcno" - # cache outputs to reduce the build time - cache: - paths: - "*.o" + - dungeon.c + - dungeon.h + - "*.gcno" binary:release: stage: build before_script: - - apk update - - apk add make gcc musl-dev python py2-pip libedit-dev - - pip install PyYAML + - dnf install make gcc libedit-devel python2 PyYAML -y script: - make advent cheat artifacts: paths: - advent - cheat - # cache outputs to reduce the build time - cache: - paths: - "*.o" + - dungeon.c + - dungeon.h manpage: stage: build before_script: - - apk update - - apk add make asciidoc + - dnf install make asciidoc -y script: - make advent.6 artifacts: @@ -56,8 +48,7 @@ manpage: html: stage: build before_script: - - apk update - - apk add make asciidoc libxslt + - dnf install make asciidoc libxslt -y script: - make html artifacts: @@ -67,8 +58,7 @@ html: dist: stage: build before_script: - - apk update - - apk add make asciidoc + - dnf install make asciidoc -y script: - export VERS=${CI_COMMIT_REF_NAME} - make dist -e @@ -80,26 +70,23 @@ dist: test:debug: stage: test before_script: - - apk update - - apk add make gcc python py2-pip libedit-dev - - pip install PyYAML - - apk add lcov --update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing/ --allow-untrusted + - dnf install make gcc libedit-devel libasan libubsan python2 PyYAML lcov -y script: + - make debug + - make check + - lcov -t "advent" -o advent.info -c -d . + - genhtml -o coverage advent.info - cd tests - - make - - make coverage + - ./coverage_dungeon.py - cd .. artifacts: paths: - coverage - dependencies: - - binary:debug test:release: stage: test before_script: - - apk update - - apk add make libedit + - dnf install make libedit -y script: - cd tests - make diff --git a/Makefile b/Makefile index ed13d89..6651a11 100644 --- a/Makefile +++ b/Makefile @@ -58,7 +58,7 @@ cheat: $(CHEAT_OBJS) dungeon.o check: advent cheat cd tests; $(MAKE) --quiet -coverage: debug cheat +coverage: debug cd tests; $(MAKE) coverage --quiet .SUFFIXES: .adoc .html .6 diff --git a/tests/Makefile b/tests/Makefile index dd04170..4d7f215 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -3,7 +3,8 @@ # Use absolute path so tests that change working directory still use # scripts from parent directory. Note that using $PWD seems to fail # here under Gitlab's CI environment. -PATH := $(realpath ..):$(realpath .):${PATH} +PARDIR=$(realpath ..) +PATH := $(PARDIR):$(realpath .):${PATH} GCOV?=gcov # Make this overrideable so it's easier to test old versions @@ -24,8 +25,9 @@ check: savecheck regress @-advent -l /dev/null /dev/null coverage: check - lcov -t "advent" -o ../advent.info -c -d .. --gcov-tool=$(GCOV) - genhtml -o ../coverage/ ../advent.info + ls -lR $(PARDIR) + lcov -t "advent" -o $(PARDIR)/advent.info -c -d $(PARDIR) --gcov-tool=$(GCOV) + genhtml -o $(PARDIR)/coverage/ $(PARDIR)/advent.info ./coverage_dungeon.py .SUFFIXES: .chk @@ -44,23 +46,23 @@ listcheck: # Generate bogus savegames. savegames: @$(ECHO) "cheat: Generate save file with -900 deaths" - @../cheat -d -900 -o cheat_numdie.adv > /tmp/cheat_numdie + @$(PARDIR)/cheat -d -900 -o cheat_numdie.adv > /tmp/cheat_numdie @$(ECHO) "cheat: Generate save file with -1000 deaths" - @../cheat -d -1000 -o cheat_numdie1000.adv > /tmp/cheat_numdie1000 + @$(PARDIR)/cheat -d -1000 -o cheat_numdie1000.adv > /tmp/cheat_numdie1000 @$(ECHO) "cheat: Generate save file with version -1337" - @../cheat -v -1337 -o resume_badversion.adv > /tmp/cheat_badversion + @$(PARDIR)/cheat -v -1337 -o resume_badversion.adv > /tmp/cheat_badversion @$(ECHO) "cheat: Generate save file 1000 saves" - @../cheat -s -1000 -o thousand_saves.adv > /tmp/cheat_1000saves + @$(PARDIR)/cheat -s -1000 -o thousand_saves.adv > /tmp/cheat_1000saves @$(ECHO) "cheat: Generate save file 1000 turns" - @../cheat -t -1000 -o thousand_saves.adv > /tmp/cheat_1000turns + @$(PARDIR)/cheat -t -1000 -o thousand_saves.adv > /tmp/cheat_1000turns @$(ECHO) "cheat: Generate save file 1000 turns" - @../cheat -l -1000 -o thousand_lamp.adv > /tmp/cheat_1000lamp + @$(PARDIR)/cheat -l -1000 -o thousand_lamp.adv > /tmp/cheat_1000lamp @rm -f /tmp/cheat* # Rebuild characterizing tests buildregress: savegames - ../cheat -s -1000 -o thousand_saves.adv > /tmp/regress1000saves + $(PARDIR)/cheat -s -1000 -o thousand_saves.adv > /tmp/regress1000saves @for file in $(TESTLOADS); do \ echo "Remaking $${file}.chk"; \ OPTS=`sed -n /#options:/s///p <$${file}.log`; \ @@ -70,13 +72,13 @@ buildregress: savegames savecheck: savegames @$(ECHO) "TEST cheat: Bogus option for save file generation" - @../cheat -QqQ 2> /tmp/coverage_cheat_batopt | true + @$(PARDIR)/cheat -QqQ 2> /tmp/coverage_cheat_batopt | true @$(ECHO) "TEST cheat: No save file specified" - @../cheat 2>/dev/null | true + @$(PARDIR)/cheat 2>/dev/null | true @$(ECHO) "TEST cheat: Fail to save because we omit -o" - @../cheat -d 1 2> /tmp/coverage_cheat_nooutput | true + @$(PARDIR)/cheat -d 1 2> /tmp/coverage_cheat_nooutput | true @$(ECHO) "TEST cheat: Fail to save to invalid path" - @../cheat -o / 2> /tmp/coverage_cheat_badoutput | true + @$(PARDIR)/cheat -o / 2> /tmp/coverage_cheat_badoutput | true @$(ECHO) "TEST advent: Start with invalid file with -r" @advent -r /badfilename < pitfall.log > /tmp/coverage_advent_readfail 2>&1 || exit 1 @$(ECHO) "TEST advent: Start with invalid file with -l"