open-adventure/.gitlab-ci.yml
2024-01-15 04:58:21 -05:00

104 lines
1.8 KiB
YAML

# 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
script:
- make debug
artifacts:
paths:
- advent
- 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
script:
- make advent.6
artifacts:
paths:
- advent.6
html:
stage: build
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
script:
- make coverage
artifacts:
paths:
- coverage
dependencies:
- binary:debug
test:release:
stage: test
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