Page MenuHomePhorge

No OneTemporary

Size
4 KB
Referenced Files
None
Subscribers
None
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 81a9c66..bbe5f76 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,101 +1,110 @@
stages:
- lint
- prepare
- build
+ - check-changelog
- doc
lint:
stage: lint
script: |
echo 'Verify that no source file contains tabs'
! egrep -R --exclude-dir=resources $'\t' src
rules: &build-rules
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
when: never
- changes: &src-chg
- Dockerfile
- Dockerfile.cov
- '**/*.cpp'
- '**/*.hpp'
- '**/CMakeLists.txt'
- '**/*.in'
- 'src/tests/resources/**'
'prepare:env':
stage: prepare
script: |
tag="${CI_COMMIT_BRANCH:-$CI_COMMIT_TAG}"
tag="$(echo "$tag" | sed -e "s/[^a-zA-Z0-9.]/-/g")"
echo "tag=$tag" >> prepare.env
artifacts:
reports:
dotenv: prepare.env
rules: *build-rules
'build:debug':
stage: 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 --build-arg JOBS=1 --destination $CI_REGISTRY_IMAGE/libkazv:$tag --destination $CI_REGISTRY_IMAGE/libkazv:$tag-debug
dependencies: &build-deps
- prepare:env
rules: *build-rules
'build:production':
stage: 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 --build-arg JOBS=1 --build-arg BUILD_TYPE=Release --destination $CI_REGISTRY_IMAGE/libkazv:$tag-prod
dependencies: *build-deps
rules: *build-rules
'build:coverage':
stage: build
image:
name: reg.lily.kazv.moe/kazv/libkazv-deps/deps:servant
entrypoint: [""]
script: |
export BUILD_TYPE=Debug
export JOBS=1
export DEPS_INSTALL_DIR=/opt/libkazv-deps
export LIBKAZV_INSTALL_DIR=/opt/libkazv
mkdir build && cd build && \
export CC=gcc-9 CXX=g++-9 && \
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 && \
make -j$JOBS && \
./src/tests/kazvtest && \
gcovr --xml-pretty --exclude-unreachable-branches --print-summary -o coverage.xml -r "${CI_PROJECT_DIR}" --object-directory src -e '.*/api/.*'
coverage: /^\s*lines:\s*\d+.\d+\%/
artifacts:
name: ${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}
paths:
- build/coverage.xml
reports:
coverage_report:
coverage_format: cobertura
path: build/coverage.xml
rules: *build-rules
'doc:build':
stage: doc
image: reg.lily.kazv.moe/kazv/libkazv-deps/deps:servant
script:
- doxygen Doxyfile
artifacts:
paths:
- doc/html/
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
when: never
- changes: *src-chg
- changes:
- '**/*.md'
+
+'check-changelog':
+ stage: check-changelog
+ image: alpine
+ script:
+ - sh ./tools/check-changelog
+ rules:
+ - if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "servant"
diff --git a/tools/check-changelog b/tools/check-changelog
new file mode 100644
index 0000000..970f306
--- /dev/null
+++ b/tools/check-changelog
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+echo $CI_MERGE_REQUEST_IID
+ls changelog.d
+count=0
+for i in add remove fix security skip; do
+ [ -f changelog.d/"$CI_MERGE_REQUEST_IID"."$i" ]
+ retcode=$?
+ if [ $retcode -eq 0 ]; then
+ echo "found $CI_MERGE_REQUEST_IID.$i"
+ else
+ echo "no $CI_MERGE_REQUEST_IID.$i"
+ fi
+ count=$(( $count + 1 - $retcode ))
+done
+if [ $count -eq 1 ]; then
+ echo "ok"
+ exit 0
+else
+ echo "must have a changelog entry or explicitly skip it"
+ exit 1
+fi

File Metadata

Mime Type
text/x-diff
Expires
Sat, Aug 29, 8:44 AM (1 d, 18 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1736287
Default Alt Text
(4 KB)

Event Timeline