########################## # 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//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: : # Not every 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/dlbo' 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/dlbo/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