Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F85595781
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
5 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2ae297d..d5e4c94 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,153 +1,153 @@
# This file is part of libkazv.
# SPDX-FileCopyrightText: 2022-2023 tusooa <tusooa@kazv.moe>
# SPDX-License-Identifier: AGPL-3.0-or-later
stages:
- lint
- build
- doc
- pages
lint:
stage: lint
script: |
echo 'Verify that no source file contains tabs'
! egrep -R --exclude-dir=resources $'\t' src
rules: &build-rules
- changes: &src-chg
- .gitlab-ci.yml
- Dockerfile
- '**/*.cpp'
- '**/*.hpp'
- '**/CMakeLists.txt'
- '**/*.in'
- 'src/tests/resources/**'
.build:
stage: build
image:
name: quay.io/podman/stable
tags:
- podman
script:
# https://github.com/containers/podman/discussions/15612
- export TMPDIR="$CI_PROJECT_DIR"/cache
- mkdir -pv "$TMPDIR"
- chown -R podman:podman "$TMPDIR"
- sudo -u podman TMPDIR="$TMPDIR" podman login -u "$REGISTRY_USER" -p "$REGISTRY_PASSWORD" "$REGISTRY"
- sudo -u podman TMPDIR="$TMPDIR" podman build -f "$CI_PROJECT_DIR"/Containerfile --build-arg JOBS=3 --build-arg BASE_IMG_TAG=$BASE_IMG_TAG --build-arg BUILD_TYPE=$BUILD_TYPE $BUILD_ARGS -t "$CANONICAL_TAG" "$CI_PROJECT_DIR"
# Only branch and tag commits should trigger pushing
- |
if [ -z "$CI_COMMIT_BRANCH" -a -z "$CI_COMMIT_TAG" ]; then
echo 'Skipping pushing'
else
sudo -u podman TMPDIR="$TMPDIR" podman push "$CANONICAL_TAG"
if [ -n "$ADDITIONAL_TAGS" ]; then
for t in $ADDITIONAL_TAGS; do
sudo -u podman TMPDIR="$TMPDIR" podman push "$CANONICAL_TAG" "$t"
done
else
echo 'No additional tags to push'
fi
fi
rules: *build-rules
cache:
- key: $CI_JOB_NAME
paths:
- cache/buildah-cache-1000/
'build:debug:24.04':
extends: .build
before_script:
- BASE_IMG_TAG=servant-ubuntu24.04
- BUILD_TYPE=Debug
- REGISTRY_IMAGE=$REGISTRY/the-kazv-project/libkazv
- BASE_TAG="$REGISTRY_IMAGE:${CI_COMMIT_REF_SLUG-none}"
- CANONICAL_TAG="$BASE_TAG-ubuntu24.04-debug"
- ADDITIONAL_TAGS="$BASE_TAG $BASE_TAG-debug $BASE_TAG-ubuntu24.04"
'build:production:24.04':
extends: .build
before_script:
- BASE_IMG_TAG=servant-ubuntu24.04
- BUILD_TYPE=Release
- REGISTRY_IMAGE=$REGISTRY/the-kazv-project/libkazv
- BASE_TAG="$REGISTRY_IMAGE:${CI_COMMIT_REF_SLUG-none}"
- CANONICAL_TAG="$BASE_TAG-ubuntu24.04-prod"
- ADDITIONAL_TAGS="$BASE_TAG-prod"
'build:coverage':
stage: build
image:
name: r.lily-is.land/the-kazv-project/libkazv-deps/deps:servant-ubuntu24.04
entrypoint: [""]
# Do not set CCACHE_BASEDIR when building for coverage
# https://gitlab.kitware.com/cmake/cmake/-/issues/21138
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105238
# The build directory is always /builds/kazv/libkazv/ anyway
script: |
export BUILD_TYPE=Debug
export JOBS=3
export DEPS_INSTALL_DIR=/opt/libkazv-deps
export LIBKAZV_INSTALL_DIR=/opt/libkazv
export CCACHE_COMPILERCHECK=content
export CCACHE_DIR="$CI_PROJECT_DIR"/ccache
export PATH="/usr/lib/ccache:$PATH"
export CC=/usr/lib/ccache/gcc CXX=/usr/lib/ccache/g++
ccache --zero-stats || true
ccache --show-stats || true
mkdir build && cd build && \
cmake .. -DCMAKE_INSTALL_PREFIX="$LIBKAZV_INSTALL_DIR" -DCMAKE_PREFIX_PATH="$DEPS_INSTALL_DIR" -DCMAKE_BUILD_TYPE=$BUILD_TYPE -Dlibkazv_BUILD_TESTS=ON \
-Dlibkazv_BUILD_EXAMPLES=ON -Dlibkazv_BUILD_KAZVJOB=ON -Dlibkazv_ENABLE_COVERAGE=ON -DCMAKE_CXX_FLAGS=-fsanitize=address && \
make -j$JOBS && \
make CTEST_OUTPUT_ON_FAILURE=1 test && \
gcovr --xml-pretty --exclude-unreachable-branches --print-summary -o coverage.xml -r "${CI_PROJECT_DIR}" --object-directory src -e '.*/api/.*' -e '.*/tests/.*' -e '.*/testfixtures/.*' -e '.*/examples/.*'
after_script:
- ccache --show-stats
coverage: /^\s*lines:\s*\d+.\d+\%/
artifacts:
name: ${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}
paths:
- build/coverage.xml
reports:
junit: build/test-report.xml
coverage_report:
coverage_format: cobertura
path: build/coverage.xml
rules: *build-rules
cache:
- key: $CI_JOB_NAME
paths:
- ccache/
'doc:build':
stage: doc
- image: reg.lily.kazv.moe/kazv/libkazv-deps/deps:servant
+ image: r.lily-is.land/the-kazv-project/libkazv-deps/deps:servant
dependencies: []
script:
- doxygen Doxyfile
artifacts:
paths:
- doc/html/
rules:
- changes: *src-chg
- changes: &doc-chg
- '**/*.md'
- .gitlab-ci.yml
- public/**/*
pages:
stage: pages
image: alpine
dependencies:
- 'doc:build'
script:
- mv -v doc/html public/api
artifacts:
paths:
- public
rules:
- if: $CI_COMMIT_BRANCH != "servant"
when: never
- changes: *src-chg
- changes: *doc-chg
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Mon, Jul 20, 4:11 AM (1 d, 14 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1695429
Default Alt Text
(5 KB)
Attached To
Mode
rL libkazv
Attached
Detach File
Event Timeline
Log In to Comment