From 86e4fac140fc9e67a94d5d77da008e15ea244cd4 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Wed, 4 Oct 2023 11:15:46 +0200 Subject: [PATCH] CI : Build on Debian10 instead of Ubuntu18 because of eol. --- .../job-linux-desktop-debian10.yml | 85 +++++++++++++------ .gitlab-ci.yml | 4 +- 2 files changed, 60 insertions(+), 29 deletions(-) diff --git a/.gitlab-ci-files/job-linux-desktop-debian10.yml b/.gitlab-ci-files/job-linux-desktop-debian10.yml index 50fc9eab9..d99e8c254 100644 --- a/.gitlab-ci-files/job-linux-desktop-debian10.yml +++ b/.gitlab-ci-files/job-linux-desktop-debian10.yml @@ -1,7 +1,9 @@ +.factorize_debian10: &docker_image_platform_and_runner_tag + tags: [ "docker" ] + image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-debian10:$DEBIAN_10_IMAGE_VERSION + job-debian10-ninja-gcc: - tags: [ "docker-debian10" ] - image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-debian10:$DEBIAN_10_IMAGE_VERSION except: refs: - schedules @@ -11,14 +13,13 @@ job-debian10-ninja-gcc: CC: gcc CXX: g++ extends: .job-linux-desktop + <<: *docker_image_platform_and_runner_tag ################################################# # Nightly ################################################# job-debian10-makefile-gcc: - tags: [ "docker-debian10" ] - image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-debian10:$DEBIAN_10_IMAGE_VERSION only: variables: - $NIGHTLY_MASTER @@ -29,25 +30,19 @@ job-debian10-makefile-gcc: CXX: g++ ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS extends: .job-linux-desktop + <<: *docker_image_platform_and_runner_tag job-debian10-ninja-gcc-novideo: - tags: [ "docker-debian10" ] - image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-debian10:$DEBIAN_10_IMAGE_VERSION only: variables: - $NIGHTLY_MASTER variables: CMAKE_OPTIONS: -DENABLE_VIDEO=NO -DENABLE_PQCRYPTO=OFF - CMAKE_GENERATOR: Ninja - CC: gcc - CXX: g++ - extends: .job-linux-desktop + extends: job-debian10-ninja-gcc job-debian10-ninja-gcc-smallsdk: - tags: [ "docker-debian10" ] - image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-debian10:$DEBIAN_10_IMAGE_VERSION only: variables: - $NIGHTLY_MASTER @@ -57,20 +52,20 @@ job-debian10-ninja-gcc-smallsdk: CC: gcc CXX: g++ extends: .job-linux-desktop + <<: *docker_image_platform_and_runner_tag job-debian10-ninja-clang: - tags: [ "docker-debian10" ] only: variables: - $NIGHTLY_MASTER - image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-debian10:$DEBIAN_10_IMAGE_VERSION variables: CMAKE_GENERATOR: Ninja - CMAKE_OPTIONS: -DENABLE_PQCRYPTO=ON + CMAKE_OPTIONS: -DENABLE_DOC=ON -DENABLE_G729=ON -DENABLE_PQCRYPTO=ON -DENABLE_GPL_THIRD_PARTIES=ON CC: clang CXX: clang++ extends: .job-linux-desktop + <<: *docker_image_platform_and_runner_tag job-debian10-ninja-clang-novideo: @@ -78,12 +73,10 @@ job-debian10-ninja-clang-novideo: variables: - $NIGHTLY_MASTER variables: - CMAKE_OPTIONS: -DENABLE_VIDEO=NO + CMAKE_OPTIONS: -DENABLE_VIDEO=NO -DENABLE_PQCRYPTO=OFF extends: job-debian10-ninja-clang job-debian10-makefile-clang: - tags: [ "docker-debian10" ] - image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-debian10:$DEBIAN_10_IMAGE_VERSION only: variables: - $NIGHTLY_MASTER @@ -95,39 +88,77 @@ job-debian10-makefile-clang: CXX: clang++ ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS extends: .job-linux-desktop + <<: *docker_image_platform_and_runner_tag ################################################# # Package - Nightly ################################################# -job-debian10-makefile-clang-package: +job-debian10-makefile-gcc-package: stage: package - tags: [ "docker-debian10" ] + tags: [ "docker-test-liblinphone" ] + image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-debian10:$DEBIAN_10_IMAGE_VERSION dependencies: [] only: variables: - $NIGHTLY_MASTER + - $PACKAGE_LINUX - $DEPLOY_LINUX variables: - CMAKE_OPTIONS: -DENABLE_APP_PACKAGING=YES -DENABLE_G729=ON -DENABLE_PQCRYPTO=ON -DENABLE_GPL_THIRD_PARTIES=ON - extends: job-debian10-makefile-clang + 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=ON + CMAKE_GENERATOR: Unix Makefiles + CC: gcc + CXX: g++ + APPIMAGETOOL_SIGN_PASSPHRASE: $GPG_SIGNING_PASS + extends: .job-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 + - cd build + - cmake .. -G "$CMAKE_GENERATOR" -DCMAKE_VERBOSE_MAKEFILE=ON -DLINPHONESDK_PLATFORM=Desktop -DCMAKE_BUILD_TYPE=$CI_BUILD_TYPE $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/Packages/Linphone*.AppImage + - build/OUTPUT/* expire_in: 1 week ################################################# # Deploy - Nightly ################################################# -job-debian10-makefile-clang-deploy: +job-debian10-makefile-gcc-deploy: stage: deploy - tags: [ "docker-debian10" ] + tags: [ "docker" ] dependencies: - - job-debian10-makefile-clang-package + - job-debian10-makefile-gcc-package only: variables: - $NIGHTLY_MASTER - $DEPLOY_LINUX script: - - scp build/OUTPUT/Packages/Linphone*.AppImage $DEPLOY_SERVER:$APPIMAGE_UPLOAD_DIRECTORY/ + - rsync -rlv --ignore-existing build/OUTPUT/Packages/*.AppImage $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM/$APP_FOLDER + - rsync -rlv build/OUTPUT/RELEASE $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM + - rsync -rlv build/OUTPUT/RELEASE $MAIN_DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM + +job-debian10-makefile-gcc-plugins-deploy: + stage: deploy + tags: [ "deploy" ] + needs: + - job-debian10-makefile-gcc + only: + variables: + - $DEPLOY_PLUGINS + script: + - rsync -rlv --ignore-existing build/OUTPUT/plugins/app/*.so $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM/$APP_FOLDER/plugins/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index babf1f8f9..12041cb1c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -24,7 +24,7 @@ variables: ARCHLINUX_IMAGE_VERSION: latestupdated CENTOS_7_QT_IMAGE_VERSION: 20211012_add_qtwebview DEBIAN_9_QT_IMAGE_VERSION: 20230417_qtopen_gstreamer - DEBIAN_10_IMAGE_VERSION: 20210217_python3 + DEBIAN_10_IMAGE_VERSION: 20230706_add_deps_for_av1 UBUNTU_ROLLING_IMAGE_VERSION: 20211012_add_qtwebview UBUNTU_1804_IMAGE_VERSION: 20230706_add_deps_for_av1 @@ -56,7 +56,7 @@ workflow: include: - '.gitlab-ci-files/job-linux-prepare.yml' - '.gitlab-ci-files/job-linux-desktop.yml' - - '.gitlab-ci-files/job-linux-desktop-ubuntu-1804.yml' + - '.gitlab-ci-files/job-linux-desktop-debian10.yml' - '.gitlab-ci-files/job-windows-desktop.yml' - '.gitlab-ci-files/job-macosx-desktop.yml'