Files
qt5-legatus-legacy/.gitlab-ci.yml
T
2026-08-13 18:33:10 +02:00

173 lines
6.1 KiB
YAML
Executable File

##########################
# BASE Pipeline
# Adjust
# ARTIFACTORY_PATH -> Path where we upload the final RPM zips on the asset repository
# PROJECT_BASE_DIR -> this is how the git exports the file its the same as the projects-domain-live/guez/<fork_name>/legatus/ name
# cmake_build_flags -> add specific BUILD Params per Project like uas proxy or HLA etc
# NON GUEZ
# BUILD_IMAGE -> the build images to use there is guez, federates and lynxhu
# When used they are tagged: <PROJECT>:<OSVERSION>
# Not every <OSVERSION> is available for each Project
# guez: 15.4 15.1 42.3
# federates: 15.4
# lynxhu: 15.5
#########################
default:
interruptible: true
variables:
PROJECT_NAME: 'guez'
TDS_MAJOR_VERSION: '1.3'
BUILD_IMAGE: 'asset-repository.sf.defence-elec.de/docker-rme/livesim/guez'
CHECKOUT_IMAGE: 'asset-repository.sf.defence-elec.de/docker-local/docker/docker:git'
ARTIFACTORY: 'http://asset-repository.sf.defence-elec.de:80/artifactory'
ARTIFACTORY_PATH: 'generic-rme/livesim/guez/master'
RUNNER_TAG: ''
stages:
- checkout
- workflow
- build
- test-release
workflow:
rules:
- if: $CI_COMMIT_REF_NAME == "master"
variables:
RUNNER_TAG: "ram_20g"
- if: $CI_COMMIT_REF_NAME != "master"
variables:
RUNNER_TAG: "docker"
- when: always
checkout:
tags:
- docker
stage: checkout
interruptible: true
image: $CHECKOUT_IMAGE
script:
- git clone http://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab-sg1.defence-elec.de/projects-domain-live/rpmbuild.git
artifacts:
paths:
- rpmbuild/
build:
parallel:
matrix:
- VERSION: "15.1"
- VERSION: "15.4"
- VERSION: "42.3"
# - VERSION: "15.6"
tags: [$RUNNER_TAG]
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
#- ram_20g
timeout: 5h
stage: build
image: ${BUILD_IMAGE}:${VERSION}
dependencies:
- checkout
#interruptible: true
#resource_group: team7
variables:
BUILD_VERSION: $VERSION
VERSION_DATE: $CI_COMMIT_TIMESTAMP
PROJECT_BASE_DIR: /builds/projects-domain-live/guez/legatus
EMERGE_VERBOSE: 1 # Verbosity level 0:warning 1:info 2:debug
script:
- export BUILD_NUMBER=$(date +%Y%m%d%H)
- echo '%_smp_mflags -j 4' > ~/.rpmmacros # Limit the number of cores used by the build to 4. https://rpm-packaging-guide.github.io/
- cp -a rpmbuild /shd/CTC/TOOLS/rpmbuild
- mkdir /shd/CTC/TOOLS/rpms
- cd /shd/CTC/TOOLS/rpmbuild
- |
echo "TAG: $RUNNER_TAG"
echo "Current Branch: $CI_COMMIT_REF_NAME"
if [ $CI_COMMIT_REF_NAME == master ];
then
echo '%_smp_mflags -j 4' > ~/.rpmmacros # Limit the number of cores used by the build to 4. https://rpm-packaging-guide.github.io/
if [ $VERSION == 42.3 ];
then
echo "build 42.3"
python ./make_rpmModule.py -c LTS \
--project_name $PROJECT_NAME \
--version $TDS_MAJOR_VERSION \
--output_dir /shd/CTC/TOOLS/rpms/ \
-h true \
-t false \
-w false \
--cmake_build_flags='-DUSE_IPO=ON -DBUILD_ALL=OFF -DUSE_UNITY_BUILD=ON -DGUEZ_MODE=ON -DBUILD_SV=OFF -DBUILD_AAR=OFF -DBUILD_HLA=ON -DBUILD_WLS=OFF -DBUILD_SVC_HLA=ON -DBUILD_TOOLSWS=OFF -DBUILD_TOOLSSV=OFF -DPostgreSQL_TYPE_INCLUDE_DIR=/usr/include/pgsql/'
else
echo "$VERSION"
python ./make_rpm.py -c LTS \
--project_name $PROJECT_NAME \
--version $TDS_MAJOR_VERSION \
--output_dir /shd/CTC/TOOLS/rpms/ \
--cmake_build_flags='-DUSE_IPO=ON -DUSE_UNITY_BUILD=ON -DGUEZ_MODE=ON -DBUILD_WLS=OFF -DBUILD_SVC_HLA=OFF -DBUILD_TOOLSWS=ON -DBUILD_TOOLSSV=ON -DBUILD_UAS_PROXY=ON -DPostgreSQL_TYPE_INCLUDE_DIR=/usr/include/pgsql/'
fi
else
echo "$VERSION !!!! NO conti Build"
fi
- |
echo "Current Branch: $CI_COMMIT_REF_NAME"
if [ $CI_COMMIT_REF_NAME == master ];
then
echo "BUILD ZIP and UPLOAD"
zip -qr $PROJECT_NAME-TDS-$TDS_MAJOR_VERSION-$BUILD_NUMBER-$VERSION.zip /shd/CTC/TOOLS/rpms/$PROJECT_NAME-TDS-$TDS_MAJOR_VERSION-$BUILD_NUMBER
curl -sS \
-u $RME_CI_GENERIC_WRITER_USER:$RME_CI_GENERIC_WRITER_TOKEN \
-H "X-Checksum-Sha256: $(sha256sum $PROJECT_NAME-TDS-$TDS_MAJOR_VERSION-$BUILD_NUMBER-$VERSION.zip | awk '{print $1}')" \
-H "X-Checksum-Sha1: $(sha1sum $PROJECT_NAME-TDS-$TDS_MAJOR_VERSION-$BUILD_NUMBER-$VERSION.zip | awk '{print $1}')" \
-H "X-Checksum-Md5: $(md5sum $PROJECT_NAME-TDS-$TDS_MAJOR_VERSION-$BUILD_NUMBER-$VERSION.zip | awk '{print $1}')" \
-X PUT "$ARTIFACTORY/$ARTIFACTORY_PATH/$VERSION/$PROJECT_NAME-TDS-$TDS_MAJOR_VERSION-$BUILD_NUMBER-$VERSION.zip" \
-T $PROJECT_NAME-TDS-$TDS_MAJOR_VERSION-$BUILD_NUMBER-$VERSION.zip
else
echo "NO BUILD ZIP and UPLOAD"
fi
weekly_release:
stage: build
image: ${BUILD_IMAGE}:15.1
tags:
- docker
rules:
- if: '$WEEKLY_RELEASE == "true"'
variables:
PROJECT_BASE_DIR: /builds/projects-domain-live/guez/legatus
artifacts:
paths:
- changelog.md
before_script:
- git config --global --add safe.directory $PROJECT_BASE_DIR
- git fetch --tags
script:
- LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "none")
- VER="v$(date +%Y).$(date +%V)"
- |
if [ "$LAST_TAG" = "none" ]; then
RANGE="HEAD"
else
RANGE="$LAST_TAG..HEAD"
fi
- echo "Range= $RANGE LastTag= $LAST_TAG Version= $VER"
- git log $RANGE --pretty=format:"%s" > jira_tickets.txt
- echo "Weekly Release $VER" > changelog.md
- echo "" >> changelog.md
- echo "Commits" >> changelog.md
- git log $RANGE --pretty=format:"- %s" >> changelog.md
- echo "" >> changelog.md
- while read t; do echo "- $t"; done < jira_tickets.txt >> changelog.md
- git config --global user.name "schmidt_n"
- git config --global user.email "niklas.schmidt@rheinmetall.com"
- git tag "$VER"
- git push --tags http://root:EYQJTVoFUEdgbb23KSuJ@$CI_SERVER_HOST/$CI_PROJECT_PATH.git HEAD:master