Factorized Linux scripts for build, packaging and upload to avoid duplication if distribution-specific files are copy-pasted
This commit is contained in:
parent
9d3bd909ca
commit
95d5345450
2 changed files with 67 additions and 78 deletions
|
|
@ -53,41 +53,17 @@ ubuntu2204-ninja-clang-small:
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
extends: ubuntu2204-ninja-clang
|
extends: ubuntu2204-ninja-clang
|
||||||
|
|
||||||
ubuntu2204-makefile-gcc:
|
ubuntu2204-makefile-gcc-signed:
|
||||||
rules:
|
rules:
|
||||||
- !reference [.rules-merge-request-manual, rules]
|
- !reference [.rules-merge-request-manual, rules]
|
||||||
- if: $NIGHTLY_MASTER
|
- if: $NIGHTLY_MASTER
|
||||||
- if: $DEPLOY_PLUGINS
|
- if: $DEPLOY_PLUGINS
|
||||||
variables:
|
variables:
|
||||||
CMAKE_OPTIONS: -DLINPHONE_BUILDER_SIGNING_IDENTITY=$GPG_SIGNING_KEYID -DENABLE_G729=ON -DENABLE_PQCRYPTO=ON -DENABLE_GPL_THIRD_PARTIES=OFF
|
|
||||||
CMAKE_GENERATOR: Unix Makefiles
|
CMAKE_GENERATOR: Unix Makefiles
|
||||||
CC: gcc
|
CC: gcc
|
||||||
CXX: g++
|
CXX: g++
|
||||||
ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS
|
ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS
|
||||||
APPIMAGETOOL_SIGN_PASSPHRASE: $GPG_SIGNING_PASS
|
extends: .linux-sign-build
|
||||||
script:
|
|
||||||
- echo "$GPG_SIGNING_PUB" > file.key && sed -i 's/\r /\n/g' file.key && chmod 600 file.key
|
|
||||||
- gpg --import file.key
|
|
||||||
- rm -f file.key
|
|
||||||
- echo "$GPG_SIGNING_KEY" > file.key && sed -i 's/\r /\n/g' file.key && chmod 600 file.key
|
|
||||||
- base64 -w 0 file.key | base64 -d | gpg --import --no-tty --batch --yes
|
|
||||||
- rm -f file.key
|
|
||||||
- cmake --version
|
|
||||||
- export CC=$CC
|
|
||||||
- export CXX=$CXX
|
|
||||||
- mkdir -p build/OUTPUT
|
|
||||||
- echo $CI_BUILD_TYPE
|
|
||||||
- echo $CMAKE_GENERATOR
|
|
||||||
- echo $DEFAULT_LINUX_CMAKE_OPTIONS
|
|
||||||
- echo $CMAKE_SANITIZER_OPTIONS
|
|
||||||
- eval "$(qtchooser -qt=$QT_LINUX_VER -print-env)"
|
|
||||||
- export PATH=${QTTOOLDIR}:$PATH
|
|
||||||
- export Qt6_DIR=${QTLIBDIR}/cmake/Qt6
|
|
||||||
- echo "Using Qt $QT_LINUX_VER at ${QTLIBDIR}"
|
|
||||||
- cd build
|
|
||||||
- cmake .. -G "$CMAKE_GENERATOR" -DCMAKE_VERBOSE_MAKEFILE=ON -DLINPHONESDK_PLATFORM=Desktop -DCMAKE_BUILD_TYPE=$CI_BUILD_TYPE -DLINPHONEAPP_APPLICATION_NAME="$APPLICATION_NAME" -DLINPHONEAPP_EXECUABLE_NAME="$EXECUTABLE_NAME" $DEFAULT_LINUX_CMAKE_OPTIONS $CMAKE_OPTIONS $SCHEDULE_CMAKE_OPTIONS $CMAKE_SANITIZER_OPTIONS
|
|
||||||
- cmake --build . --target install --config $CI_BUILD_TYPE $LBC_NODEBUG_OPTIONS
|
|
||||||
extends: .linux-desktop
|
|
||||||
<<: *docker_image_platform_and_runner_tag
|
<<: *docker_image_platform_and_runner_tag
|
||||||
|
|
||||||
#################################################
|
#################################################
|
||||||
|
|
@ -95,7 +71,6 @@ ubuntu2204-makefile-gcc:
|
||||||
#################################################
|
#################################################
|
||||||
|
|
||||||
ubuntu2204-makefile-gcc-package:
|
ubuntu2204-makefile-gcc-package:
|
||||||
stage: package
|
|
||||||
tags: [ "docker" ]
|
tags: [ "docker" ]
|
||||||
image: gitlab.linphone.org:4567/bc/public/linphone-desktop/bc-dev-ubuntu-22-04-lts:$UBUNTU_2204_IMAGE_VERSION
|
image: gitlab.linphone.org:4567/bc/public/linphone-desktop/bc-dev-ubuntu-22-04-lts:$UBUNTU_2204_IMAGE_VERSION
|
||||||
needs: []
|
needs: []
|
||||||
|
|
@ -105,67 +80,32 @@ ubuntu2204-makefile-gcc-package:
|
||||||
- if: $PACKAGE_LINUX
|
- if: $PACKAGE_LINUX
|
||||||
- if: $DEPLOY_LINUX
|
- if: $DEPLOY_LINUX
|
||||||
variables:
|
variables:
|
||||||
CMAKE_OPTIONS: -DENABLE_APP_PACKAGING=YES -DLINPHONE_BUILDER_SIGNING_IDENTITY=$GPG_SIGNING_KEYID -DENABLE_G729=ON -DLINPHONE_SDK_MAKE_RELEASE_FILE_URL=$MAKE_RELEASE_FILE_URL/$LINUX_PLATFORM/$APP_FOLDER -DENABLE_PQCRYPTO=ON -DENABLE_GPL_THIRD_PARTIES=OFF
|
|
||||||
CMAKE_GENERATOR: Unix Makefiles
|
CMAKE_GENERATOR: Unix Makefiles
|
||||||
CC: gcc
|
CC: gcc
|
||||||
CXX: g++
|
CXX: g++
|
||||||
APPIMAGETOOL_SIGN_PASSPHRASE: $GPG_SIGNING_PASS
|
extends: .linux-sign-package
|
||||||
extends: .linux-desktop
|
|
||||||
script:
|
|
||||||
- echo "$GPG_SIGNING_PUB" > file.key && sed -i 's/\r /\n/g' file.key && chmod 600 file.key
|
|
||||||
- gpg --import file.key
|
|
||||||
- rm -f file.key
|
|
||||||
- echo "$GPG_SIGNING_KEY" > file.key && sed -i 's/\r /\n/g' file.key && chmod 600 file.key
|
|
||||||
- base64 -w 0 file.key | base64 -d | gpg --import --no-tty --batch --yes
|
|
||||||
- rm -f file.key
|
|
||||||
- cmake --version
|
|
||||||
- export CC=$CC
|
|
||||||
- export CXX=$CXX
|
|
||||||
- mkdir -p build/OUTPUT
|
|
||||||
- echo $CI_BUILD_TYPE
|
|
||||||
- echo $CMAKE_GENERATOR
|
|
||||||
- echo $DEFAULT_LINUX_CMAKE_OPTIONS
|
|
||||||
- echo $CMAKE_SANITIZER_OPTIONS
|
|
||||||
- eval "$(qtchooser -qt=$QT_LINUX_VER -print-env)"
|
|
||||||
- export PATH=${QTTOOLDIR}:$PATH
|
|
||||||
- cd build
|
|
||||||
- cmake .. -G "$CMAKE_GENERATOR" -DCMAKE_VERBOSE_MAKEFILE=ON -DLINPHONESDK_PLATFORM=Desktop -DCMAKE_BUILD_TYPE=$CI_BUILD_TYPE -DLINPHONEAPP_APPLICATION_NAME="$APPLICATION_NAME" -DLINPHONEAPP_EXECUTABLE_NAME="$EXECUTABLE_NAME" $DEFAULT_LINUX_CMAKE_OPTIONS $CMAKE_OPTIONS $SCHEDULE_CMAKE_OPTIONS $CMAKE_SANITIZER_OPTIONS
|
|
||||||
- cmake --build . --target install --config $CI_BUILD_TYPE $LBC_NODEBUG_OPTIONS
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- build/OUTPUT/*
|
|
||||||
expire_in: 1 week
|
|
||||||
|
|
||||||
#################################################
|
#################################################
|
||||||
# Deploy - Nightly
|
# Deploy - Nightly
|
||||||
#################################################
|
#################################################
|
||||||
|
|
||||||
ubuntu2204-makefile-gcc-deploy:
|
ubuntu2204-makefile-gcc-deploy:
|
||||||
stage: deploy
|
extends: .linux-deploy
|
||||||
tags: [ "deploy" ]
|
needs:
|
||||||
needs:
|
- ubuntu2204-makefile-gcc-package
|
||||||
- ubuntu2204-makefile-gcc-package
|
only:
|
||||||
only:
|
|
||||||
variables:
|
variables:
|
||||||
- $NIGHTLY_MASTER
|
- $NIGHTLY_MASTER
|
||||||
- $DEPLOY_LINUX
|
- $DEPLOY_LINUX
|
||||||
script:
|
|
||||||
- rsync -rlv --ignore-existing build/OUTPUT/Packages/*.AppImage $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM/$APP_FOLDER
|
|
||||||
- |-
|
|
||||||
if [[ $MAKE_RELEASE_FILE_URL != "" ]]; then
|
|
||||||
rsync -rlv build/OUTPUT/Packages/RELEASE $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM
|
|
||||||
rsync -rlv build/OUTPUT/Packages/RELEASE $MAIN_DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
ubuntu2204-makefile-gcc-plugins-deploy:
|
ubuntu2204-makefile-gcc-plugins-deploy:
|
||||||
stage: deploy
|
stage: deploy
|
||||||
tags: [ "deploy" ]
|
tags: [ "deploy" ]
|
||||||
needs:
|
needs:
|
||||||
- ubuntu2204-makefile-gcc
|
- ubuntu2204-makefile-gcc
|
||||||
only:
|
only:
|
||||||
variables:
|
variables:
|
||||||
- $DEPLOY_PLUGINS
|
- $DEPLOY_PLUGINS
|
||||||
script:
|
script:
|
||||||
- rsync -rlv --ignore-existing build/OUTPUT/plugins/app/*.so $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM/$APP_FOLDER/plugins/
|
- rsync -rlv --ignore-existing build/OUTPUT/plugins/app/*.so $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM/$APP_FOLDER/plugins/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
# BUILD
|
# BUILD
|
||||||
#################################################
|
#################################################
|
||||||
|
|
||||||
.build_all_linux_script: &build_all_linux_script |
|
.common_linux: &common_linux |
|
||||||
cmake --version
|
cmake --version
|
||||||
export CC=$CC
|
export CC=$CC
|
||||||
export CXX=$CXX
|
export CXX=$CXX
|
||||||
|
|
@ -11,20 +11,69 @@
|
||||||
echo $CMAKE_GENERATOR
|
echo $CMAKE_GENERATOR
|
||||||
echo $DEFAULT_LINUX_CMAKE_OPTIONS
|
echo $DEFAULT_LINUX_CMAKE_OPTIONS
|
||||||
echo $CMAKE_SANITIZER_OPTIONS
|
echo $CMAKE_SANITIZER_OPTIONS
|
||||||
cd build
|
eval "$(qtchooser -qt=$QT_LINUX_VER-${QT_OPEN_SOURCE_DIRECTORY:-proprietary} -print-env)"
|
||||||
eval "$(qtchooser -qt=$QT_LINUX_VER -print-env)"
|
|
||||||
export PATH=${QTTOOLDIR}:$PATH
|
export PATH=${QTTOOLDIR}:$PATH
|
||||||
export Qt6_DIR=${QTLIBDIR}/cmake/Qt6
|
export Qt6_DIR=${QTLIBDIR}/cmake/Qt6
|
||||||
echo "Using Qt $QT_LINUX_VER at ${QTLIBDIR}"
|
echo "Using Qt $QT_LINUX_VER at ${QTLIBDIR}"
|
||||||
|
cd build
|
||||||
|
|
||||||
|
.build_all_linux_script: &build_all_linux_script |
|
||||||
cmake .. -G "$CMAKE_GENERATOR" -DCMAKE_VERBOSE_MAKEFILE=ON -DLINPHONESDK_PLATFORM=Desktop -DCMAKE_BUILD_TYPE=$CI_BUILD_TYPE -DLINPHONEAPP_APPLICATION_NAME="$APPLICATION_NAME" -DLINPHONEAPP_EXECUABLE_NAME="$EXECUTABLE_NAME" $DEFAULT_LINUX_CMAKE_OPTIONS $CMAKE_OPTIONS $SCHEDULE_CMAKE_OPTIONS $CMAKE_SANITIZER_OPTIONS
|
cmake .. -G "$CMAKE_GENERATOR" -DCMAKE_VERBOSE_MAKEFILE=ON -DLINPHONESDK_PLATFORM=Desktop -DCMAKE_BUILD_TYPE=$CI_BUILD_TYPE -DLINPHONEAPP_APPLICATION_NAME="$APPLICATION_NAME" -DLINPHONEAPP_EXECUABLE_NAME="$EXECUTABLE_NAME" $DEFAULT_LINUX_CMAKE_OPTIONS $CMAKE_OPTIONS $SCHEDULE_CMAKE_OPTIONS $CMAKE_SANITIZER_OPTIONS
|
||||||
cmake --build . --target install --config $CI_BUILD_TYPE $LBC_NODEBUG_OPTIONS
|
cmake --build . --target install --config $CI_BUILD_TYPE $LBC_NODEBUG_OPTIONS
|
||||||
|
|
||||||
|
.common_signed_linux: &common_signed_linux |
|
||||||
|
echo "$GPG_SIGNING_PUB" > file.key && sed -i 's/\r /\n/g' file.key && chmod 600 file.key
|
||||||
|
gpg --import file.key
|
||||||
|
rm -f file.key
|
||||||
|
echo "$GPG_SIGNING_KEY" > file.key && sed -i 's/\r /\n/g' file.key && chmod 600 file.key
|
||||||
|
base64 -w 0 file.key | base64 -d | gpg --import --no-tty --batch --yes
|
||||||
|
rm -f file.key
|
||||||
|
|
||||||
|
.deploy_linux: &deploy_linux |
|
||||||
|
rsync -rlv --ignore-existing build/OUTPUT/Packages/*.AppImage $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM/$APP_FOLDER
|
||||||
|
|-
|
||||||
|
if [[ $MAKE_RELEASE_FILE_URL != "" ]]; then
|
||||||
|
rsync -rlv build/OUTPUT/Packages/RELEASE $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM
|
||||||
|
rsync -rlv build/OUTPUT/Packages/RELEASE $MAIN_DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM
|
||||||
|
fi
|
||||||
|
|
||||||
.linux-desktop:
|
.linux-desktop:
|
||||||
stage: build
|
stage: build
|
||||||
extends: .linux-prepare
|
extends: .linux-prepare
|
||||||
script:
|
script:
|
||||||
|
- *common_linux
|
||||||
- *build_all_linux_script
|
- *build_all_linux_script
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- build/OUTPUT
|
- build/OUTPUT
|
||||||
expire_in: 1 week
|
expire_in: 1 week
|
||||||
|
|
||||||
|
.linux-sign-build:
|
||||||
|
extends: .linux-desktop
|
||||||
|
variables:
|
||||||
|
CMAKE_OPTIONS: -DLINPHONE_BUILDER_SIGNING_IDENTITY=$GPG_SIGNING_KEYID -DENABLE_G729=ON -DENABLE_PQCRYPTO=ON -DENABLE_GPL_THIRD_PARTIES=OFF
|
||||||
|
APPIMAGETOOL_SIGN_PASSPHRASE: $GPG_SIGNING_PASS
|
||||||
|
script:
|
||||||
|
- *common_signed_linux
|
||||||
|
- *common_linux
|
||||||
|
- cmake .. -G "$CMAKE_GENERATOR" -DCMAKE_VERBOSE_MAKEFILE=ON -DLINPHONESDK_PLATFORM=Desktop -DCMAKE_BUILD_TYPE=$CI_BUILD_TYPE -DLINPHONEAPP_APPLICATION_NAME="$APPLICATION_NAME" -DLINPHONEAPP_EXECUABLE_NAME="$EXECUTABLE_NAME" $DEFAULT_LINUX_CMAKE_OPTIONS $CMAKE_OPTIONS $SCHEDULE_CMAKE_OPTIONS $CMAKE_SANITIZER_OPTIONS
|
||||||
|
- cmake --build . --target install --config $CI_BUILD_TYPE $LBC_NODEBUG_OPTIONS
|
||||||
|
|
||||||
|
.linux-sign-package:
|
||||||
|
stage: package
|
||||||
|
extends: .linux-desktop
|
||||||
|
variables:
|
||||||
|
CMAKE_OPTIONS: -DENABLE_APP_PACKAGING=YES -DLINPHONE_BUILDER_SIGNING_IDENTITY=$GPG_SIGNING_KEYID -DENABLE_G729=ON -DLINPHONE_SDK_MAKE_RELEASE_FILE_URL=$MAKE_RELEASE_FILE_URL/$LINUX_PLATFORM/$APP_FOLDER -DENABLE_PQCRYPTO=ON -DENABLE_GPL_THIRD_PARTIES=OFF
|
||||||
|
APPIMAGETOOL_SIGN_PASSPHRASE: $GPG_SIGNING_PASS
|
||||||
|
script:
|
||||||
|
- *common_signed_linux
|
||||||
|
- *common_linux
|
||||||
|
- cmake .. -G "$CMAKE_GENERATOR" -DCMAKE_VERBOSE_MAKEFILE=ON -DLINPHONESDK_PLATFORM=Desktop -DCMAKE_BUILD_TYPE=$CI_BUILD_TYPE -DLINPHONEAPP_APPLICATION_NAME="$APPLICATION_NAME" -DLINPHONEAPP_EXECUTABLE_NAME="$EXECUTABLE_NAME" $DEFAULT_LINUX_CMAKE_OPTIONS $CMAKE_OPTIONS $SCHEDULE_CMAKE_OPTIONS $CMAKE_SANITIZER_OPTIONS
|
||||||
|
- cmake --build . --target install --config $CI_BUILD_TYPE $LBC_NODEBUG_OPTIONS
|
||||||
|
|
||||||
|
|
||||||
|
.linux-deploy:
|
||||||
|
stage: deploy
|
||||||
|
tags: [ "deploy" ]
|
||||||
|
script:
|
||||||
|
- *deploy_linux
|
||||||
Loading…
Reference in a new issue