X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=.gitlab-ci.yml;h=b8f4b9143502cb6870c52ac7ac78aa4277edb2eb;hb=refs%2Fheads%2Fmaster;hp=13004d5f0bb7a24f76b44ccddbb7b25c1187d10a;hpb=f373d87ba7ca7b2011fe26ea81544daebfdf66fb;p=open-adventure.git diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 13004d5..b8f4b91 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,53 +1,104 @@ -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: +binary:debug: stage: build - before_script: - - apk update - - apk add make gcc musl-dev - script: - - make advent + script: + - make debug artifacts: paths: - advent - # cache outputs to reduce the build time - cache: + - cheat + - "*.o" + - dungeon.c + - dungeon.h + +binary:release: + stage: build + script: + - make advent cheat + artifacts: paths: + - advent + - cheat - "*.o" + - dungeon.c + - dungeon.h manpage: stage: build - before_script: - - apk update - - apk add make asciidoc script: - - make .asc.6 + - make advent.6 artifacts: paths: - advent.6 html: stage: build - before_script: - - apk update - - apk add make asciidoc libxslt script: - - make .asc.html + - make html artifacts: paths: - - advent.html + - "*.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: +test:debug: + stage: test + script: + - make coverage + artifacts: + paths: + - coverage + dependencies: + - binary:debug + +test:release: stage: test - before_script: - - apk update - - apk add make script: - cd tests - make + - cd .. + dependencies: + - binary:release + +pages: + stage: deploy + script: + - mkdir public + - mv coverage public + artifacts: + paths: + - public + only: + - master + dependencies: + - test:debug