-image: alpine
-
-variables:
- GIT_SUBMODULE_STRATEGY: "recursive"
- GIT_SSL_NO_VERIFY: "true"
-
+# SPDX-FileCopyrightText: 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 python3
- - pip3 install PyYAML
- script:
+ script:
- make debug
artifacts:
paths:
- advent
- cheat
- - "*.gcda"
- - "*.gcno"
- # cache outputs to reduce the build time
- cache:
- paths:
- "*.o"
+ - dungeon.c
+ - dungeon.h
binary:release:
stage: build
- before_script:
- - apk update
- - apk add make gcc musl-dev python3
- - pip3 install PyYAML
- script:
+ 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
script:
- make advent.6
artifacts:
html:
stage: build
- before_script:
- - apk update
- - apk add make asciidoc libxslt
script:
- make html
artifacts:
dist:
stage: build
- before_script:
- - apk update
- - apk add make asciidoc
script:
- export VERS=${CI_COMMIT_REF_NAME}
- make dist -e
# 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
test:release:
stage: test
- before_script:
- - apk update
- - apk add make
script:
- cd tests
- make
- master
dependencies:
- test:debug
-