This GitLab CI configuration is valid. Learn more
.gitlab-ci.yml 11.61 KiB
variables:
  GIT_SUBMODULE_STRATEGY: recursive
  MAKEFILE_JOBS: 5
  CCACHE_SIZE: 2G
stages:
 - build
 - deploy
.linux-ccache:
  cache:
    key: $CI_JOB_NAME
    paths:
      - ccache/
  before_script:
    - mkdir -p ccache
    - echo "max_size = $CCACHE_SIZE" > ccache/ccache.conf
    - export CCACHE_BASEDIR=${PWD}
    - export CCACHE_DIR=${PWD}/ccache
    - ccache -s
  after_script:
    - export CCACHE_DIR=${PWD}/ccache
    - ccache -s
.job-android:
  stage: build
  tags: [ "docker-android" ]
  variables:
    CCACHE_SIZE: 4G
  extends: .linux-ccache
  script:
    - sdkmanager
    - mkdir -p build-android
    - cd build-android
    - cmake .. -G "$CMAKE_GENERATOR" -DLINPHONESDK_PLATFORM=Android -DLINPHONESDK_ANDROID_ARCHS="arm64, armv7, x86, x86_64" $DEFAULT_LINUX_CMAKE_OPTIONS $CMAKE_OPTIONS
    - cmake --build . --target sdk -- $ADDITIONAL_BUILD_OPTIONS
  artifacts:
    paths:
      - build-android/linphone-sdk/bin/outputs/aar/*.aar
      - build-android/linphone-sdk/bin/distributions/linphone-sdk-*.zip
    when: always
    expire_in: 1 week
.scheduled-job-android:
  extends: .job-android
  only:
    - schedules
job-android-makefile-r16b:
  image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-android:r16b
  variables:
    CMAKE_GENERATOR: Unix Makefiles
    ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS
  extends: .scheduled-job-android
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
job-android-ninja-r16b: image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-android:r16b variables: CMAKE_GENERATOR: Ninja extends: .job-android job-android-ninja-r16b-novideo: only: - schedules variables: CMAKE_OPTIONS: -DENABLE_VIDEO=NO extends: job-android-ninja-r16b job-android-makefile-r17c: image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-android:r17c variables: CMAKE_GENERATOR: Unix Makefiles ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS extends: .scheduled-job-android job-android-ninja-r17c: image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-android:r17c variables: CMAKE_GENERATOR: Ninja extends: .job-android job-android-ninja-r17c-novideo: only: - schedules variables: CMAKE_OPTIONS: -DENABLE_VIDEO=NO extends: job-android-ninja-r17c .job-ios: stage: build tags: [ "macosx" ] script: - ccache -s - mkdir -p build-ios - cd build-ios - cmake .. -G "$CMAKE_GENERATOR" -DLINPHONESDK_PLATFORM=IOS -DLINPHONESDK_IOS_ARCHS="arm64, armv7, x86_64" $CMAKE_OPTIONS - cmake --build . --target sdk -- $ADDITIONAL_BUILD_OPTIONS - ccache -s artifacts: paths: - build-ios/linphone-sdk-*.zip - build-ios/linphone-sdk.podspec when: always expire_in: 1 week .scheduled-job-ios: extends: .job-ios only: - schedules
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
job-ios-makefile: variables: CMAKE_GENERATOR: Unix Makefiles ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS extends: .scheduled-job-ios job-ios-ninja: variables: CMAKE_GENERATOR: Ninja extends: .job-ios job-ios-ninja-novideo: only: - schedules variables: CMAKE_OPTIONS: -DENABLE_VIDEO=NO extends: job-ios-ninja job-ios-xcode: stage: build tags: [ "macosx" ] only: - schedules script: - mkdir -p build-ios - cd build-ios - cmake .. -G Xcode -DLINPHONESDK_PLATFORM=IOS -DLINPHONESDK_IOS_ARCHS="arm64, armv7, x86_64" -DLINPHONESDK_IOS_BASE_URL=$IOS_SNAPSHOTS_URL $CMAKE_OPTIONS - cmake --build . --target sdk -- -IDEBuildOperationMaxNumberOfConcurrentCompileTasks=`sysctl -n hw.ncpu` artifacts: paths: - build-ios/linphone-sdk-*.zip - build-ios/linphone-sdk.podspec when: always expire_in: 1 week job-ios-upload: stage: deploy tags: [ "deploy" ] only: - schedules dependencies: - job-ios-xcode script: - scp build-ios/linphone-sdk-*.zip $DEPLOY_SERVER:$DEPLOY_SNAPSHOTS_ROOT_DIRECTORY/ios/ - pod repo remove linphone-sdk || true - pod repo add linphone-sdk git@gitlab.linphone.org:BC/public/podspec.git $CI_COMMIT_REF_NAME - pod repo push linphone-sdk build-ios/linphone-sdk.podspec --skip-import-validation --local-only --verbose - cd ~/.cocoapods/repos/linphone-sdk && git push origin $CI_COMMIT_REF_NAME && cd - - pod repo remove linphone-sdk .job-linux-desktop: stage: build extends: .linux-ccache script:
211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
- export CC=$CC - export CXX=$CXX - mkdir -p build-desktop - cd build-desktop - cmake .. -G "$CMAKE_GENERATOR" -DLINPHONESDK_PLATFORM=Desktop $DEFAULT_LINUX_CMAKE_OPTIONS $CMAKE_OPTIONS - cmake --build . --target sdk -- $ADDITIONAL_BUILD_OPTIONS .scheduled-job-linux-desktop: extends: .job-linux-desktop only: - schedules job-centos7-makefile-gcc: tags: [ "docker-centos7" ] image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-centos:7 variables: CMAKE_GENERATOR: Unix Makefiles CC: gcc CXX: g++ extends: .scheduled-job-linux-desktop job-debian8-makefile-gcc: tags: [ "docker-debian8" ] image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-debian:8 variables: CMAKE_GENERATOR: Unix Makefiles CC: gcc CXX: g++ ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS extends: .scheduled-job-linux-desktop job-debian9-makefile-gcc: tags: [ "docker-debian9" ] image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-debian:9 variables: CMAKE_GENERATOR: Unix Makefiles CC: gcc CXX: g++ ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS extends: .scheduled-job-linux-desktop job-ubuntu-rolling-makefile-gcc: tags: [ "docker-ubuntu-rolling" ] image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-ubuntu:rolling variables: CMAKE_GENERATOR: Unix Makefiles CC: gcc CXX: g++ ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS extends: .scheduled-job-linux-desktop job-centos7-ninja-gcc: tags: [ "docker-centos7" ] image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-centos:7 variables: CMAKE_GENERATOR: Ninja CC: gcc CXX: g++ extends: .job-linux-desktop
281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
job-centos7-ninja-gcc-novideo: tags: [ "docker-centos7" ] only: - schedules variables: CMAKE_OPTIONS: -DENABLE_VIDEO=NO extends: job-centos7-ninja-gcc job-debian8-ninja-gcc: tags: [ "docker-debian8" ] image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-debian:8 variables: CMAKE_GENERATOR: Ninja CC: gcc CXX: g++ extends: .job-linux-desktop job-debian8-ninja-gcc-novideo: only: - schedules variables: CMAKE_OPTIONS: -DENABLE_VIDEO=NO extends: job-debian8-ninja-gcc job-debian9-ninja-gcc: tags: [ "docker-debian9" ] image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-debian:9 variables: CMAKE_GENERATOR: Ninja CC: gcc CXX: g++ extends: .job-linux-desktop job-debian9-ninja-gcc-novideo: only: - schedules variables: CMAKE_OPTIONS: -DENABLE_VIDEO=NO extends: job-debian9-ninja-gcc job-ubuntu-rolling-ninja-gcc: tags: [ "docker-ubuntu-rolling" ] image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-ubuntu:rolling variables: CMAKE_GENERATOR: Ninja CC: gcc CXX: g++ extends: .job-linux-desktop job-ubuntu-rolling-ninja-gcc-novideo: only: - schedules variables: CMAKE_OPTIONS: -DENABLE_VIDEO=NO extends: job-ubuntu-rolling-ninja-gcc
351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
job-centos7-makefile-clang: tags: [ "docker-centos7" ] image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-centos:7 variables: CMAKE_GENERATOR: Unix Makefiles CC: clang CXX: clang++ extends: .scheduled-job-linux-desktop job-debian8-makefile-clang: tags: [ "docker-debian8" ] image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-debian:8 variables: CMAKE_GENERATOR: Unix Makefiles CC: clang CXX: clang++ ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS extends: .scheduled-job-linux-desktop job-debian9-makefile-clang: tags: [ "docker-debian9" ] image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-debian:9 variables: CMAKE_GENERATOR: Unix Makefiles CC: clang CXX: clang++ ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS extends: .scheduled-job-linux-desktop job-ubuntu-rolling-makefile-clang: tags: [ "docker-ubuntu-rolling" ] image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-ubuntu:rolling variables: CMAKE_GENERATOR: Unix Makefiles CC: clang CXX: clang++ ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS extends: .scheduled-job-linux-desktop job-centos7-ninja-clang: tags: [ "docker-centos7" ] image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-centos:7 variables: CMAKE_GENERATOR: Ninja CC: clang CXX: clang++ extends: .job-linux-desktop job-centos7-ninja-clang-novideo: only: - schedules variables: CMAKE_OPTIONS: -DENABLE_VIDEO=NO extends: job-centos7-ninja-clang job-debian8-ninja-clang:
421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490
tags: [ "docker-debian8" ] image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-debian:8 variables: CMAKE_GENERATOR: Ninja CC: clang CXX: clang++ extends: .job-linux-desktop job-debian8-ninja-clang-novideo: only: - schedules variables: CMAKE_OPTIONS: -DENABLE_VIDEO=NO extends: job-debian8-ninja-clang job-debian9-ninja-clang: tags: [ "docker-debian9" ] image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-debian:9 variables: CMAKE_GENERATOR: Ninja CC: clang CXX: clang++ extends: .job-linux-desktop job-debian9-ninja-clang-novideo: only: - schedules variables: CMAKE_OPTIONS: -DENABLE_VIDEO=NO extends: job-debian9-ninja-clang job-ubuntu-rolling-ninja-clang: tags: [ "docker-ubuntu-rolling" ] image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-ubuntu:rolling variables: CMAKE_GENERATOR: Ninja CC: clang CXX: clang++ extends: .job-linux-desktop job-ubuntu-rolling-ninja-clang-novideo: only: - schedules variables: CMAKE_OPTIONS: -DENABLE_VIDEO=NO extends: job-ubuntu-rolling-ninja-clang .job-macosx-desktop: stage: build tags: [ "macosx" ] script: - ccache -s - mkdir -p build-desktop - cd build-desktop - cmake .. -G "$CMAKE_GENERATOR" -DLINPHONESDK_PLATFORM=Desktop -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 $CMAKE_OPTIONS - cmake --build . --target sdk -- $ADDITIONAL_BUILD_OPTIONS
491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560
- ccache -s job-macosx-makefile: only: - schedules variables: CMAKE_GENERATOR: Unix Makefiles ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS extends: .job-macosx-desktop job-macosx-ninja: variables: CMAKE_GENERATOR: Ninja extends: .job-macosx-desktop job-macosx-ninja-novideo: only: - schedules variables: CMAKE_OPTIONS: -DENABLE_VIDEO=NO extends: job-macosx-ninja job-macosx-xcode: stage: build tags: [ "macosx" ] only: - schedules script: - mkdir -p build-desktop - cd build-desktop - cmake .. -G Xcode -DLINPHONESDK_PLATFORM=Desktop -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 $CMAKE_OPTIONS - cmake --build . --target sdk -- -IDEBuildOperationMaxNumberOfConcurrentCompileTasks=`sysctl -n hw.ncpu` job-windows-vs2015: stage: build tags: [ "windows" ] script: - mkdir build-desktop - cd build-desktop - cmake .. -G "Visual Studio 14 2015" -DLINPHONESDK_PLATFORM=Desktop -DCMAKE_BUILD_TYPE=Release %CMAKE_OPTIONS% - cmake --build . --target sdk --config Release -- /maxcpucount job-windows-vs2015-novideo: only: - schedules variables: CMAKE_OPTIONS: -DENABLE_VIDEO=NO extends: job-windows-vs2015 #job-uwp-vs2017: # # stage: build # tags: [ "windows" ] # # script:
561562563564565
# - mkdir build-uwp # - cd build-uwp # - cmake .. -G "Visual Studio 15 2017" -DLINPHONESDK_PLATFORM=UWP -DCMAKE_BUILD_TYPE=Release -DENABLE_FFMPEG=NO -DENABLE_VPX=NO # - cmake --build . --config Release