Typo fix.
[open-adventure.git] / .gitlab-ci.yml
index 4a5e791fb82367f7c20d736e02f8f0285c1efe30..b8f4b9143502cb6870c52ac7ac78aa4277edb2eb 100644 (file)
@@ -1,78 +1,80 @@
-image: alpine
-
+# SPDX-FileCopyrightText: (C) Eric S. Raymond
+# SPDX-License-Identifier: BSD-2-Clause
 stages:
+  - ci-build
   - build
   - test
   - deploy
 
+default:
+  image: $CI_REGISTRY_IMAGE:ci
+
+# build and push Docker image to be used in subsequent steps
+ci-build:
+  stage: ci-build
+  image:
+    name: gcr.io/kaniko-project/executor:debug
+    entrypoint: [""]
+  script:
+    - mkdir -p /kaniko/.docker
+    - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
+    - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile.ci --destination $CI_REGISTRY_IMAGE:ci --cache=true
+
 # build advent itself
 binary:debug:
   stage: build
-  before_script:
-    - apk update
-    - apk add make gcc musl-dev
-  script: 
+  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
+  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
   script:
-    - make .adoc.6
+    - 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
+  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
+    - make coverage
   artifacts:
     paths:
       - coverage
@@ -81,9 +83,6 @@ test:debug:
 
 test:release:
   stage: test
-  before_script:
-    - apk update
-    - apk add make
   script:
     - cd tests
     - make
@@ -96,27 +95,10 @@ pages:
   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