Use Fedora for the CI pipeline.
authorJason S. Ninneman <jsn@mbar.us>
Sat, 15 Jul 2017 03:45:19 +0000 (20:45 -0700)
committerEric S. Raymond <esr@thyrsus.com>
Mon, 17 Jul 2017 17:56:52 +0000 (13:56 -0400)
.gitlab-ci.yml
Makefile
tests/Makefile

index b1e9653731eba7d43e0fbd9685d28055d4df6a9a..1c5a83eb9c3fce4bb4d085593a6128aa30b7c99e 100644 (file)
@@ -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
index ed13d890f47ef9d5251dc1c8448c9e0b918dbf42..6651a111d3c827b1594eb1783b16b33b05fad3f0 100644 (file)
--- 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
index dd04170eb92b50c4f7959fc27ceea644d10ec033..4d7f21518262bc911ac7cc22cc165ac235c1889d 100644 (file)
@@ -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 <pitfall.log >/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"