Commit cc958940 authored by Erwan Croze's avatar Erwan Croze 👋🏻

Feature/enhance gitlab ci files

parent 3098bfe2
Pipeline #1728 passed with stages
in 25 minutes and 23 seconds
#################################################
# Makefile
#################################################
job-archlinux-latest-makefile-gcc:
tags: [ "docker-archlinux-latest" ]
image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-archlinux:latest
variables:
CMAKE_GENERATOR: Unix Makefiles
CC: gcc
CXX: g++
ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS
extends: .scheduled-job-linux-desktop
job-archlinux-latest-makefile-clang:
tags: [ "docker-archlinux-latest" ]
image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-archlinux:latest
variables:
CMAKE_GENERATOR: Unix Makefiles
CC: clang
CXX: clang++
ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS
extends: .scheduled-job-linux-desktop
#################################################
# Ninja
#################################################
job-archlinux-latest-ninja-gcc:
tags: [ "docker-archlinux-latest" ]
image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-archlinux:latest
variables:
CMAKE_GENERATOR: Ninja
CC: gcc
CXX: g++
extends: .job-linux-desktop
job-archlinux-latest-ninja-clang:
tags: [ "docker-archlinux-latest" ]
image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-archlinux:latest
variables:
CMAKE_GENERATOR: Ninja
CC: clang
CXX: clang++
extends: .job-linux-desktop
\ No newline at end of file
#################################################
# Makefile
#################################################
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++
ADDITIONAL_BUILD_OPTIONS: -j1
extends: .job-linux-desktop
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++
ADDITIONAL_BUILD_OPTIONS: -j1
extends: .job-linux-desktop
#################################################
# Ninja
#################################################
#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
#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
#################################################
# RPM
#################################################
job-centos7-rpm:
tags: [ "docker-centos7" ]
image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-centos:7
extends: .job-linux-rpm
#################################################
# Deploy
#################################################
job-centos7-rpm-deploy:
stage: deploy
tags: [ "deploy" ]
only:
- schedules
dependencies:
- job-centos7-rpm
script:
- cd WORK/desktop-rpm/rpmbuild/RPMS/x86_64/ && rsync -pr . $DEPLOY_SERVER:$CENTOS7_DEPLOY_DIRECTORY
- ssh $DEPLOY_SERVER "chmod a+r $CENTOS7_DEPLOY_DIRECTORY/*.rpm && createrepo_c --update $CENTOS7_DEPLOY_DIRECTORY/."
\ No newline at end of file
#################################################
# Makefile
#################################################
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: .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: .job-linux-desktop
#################################################
# Ninja
#################################################
#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-clang:
#
# 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
\ No newline at end of file
#################################################
# Makefile
#################################################
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-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
#################################################
# Ninja
#################################################
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-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
\ No newline at end of file
#################################################
# Makefile
#################################################
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-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
#################################################
# Ninja
#################################################
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-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
\ No newline at end of file
#################################################
# Ccache
#################################################
.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
#################################################
.job-linux-desktop:
stage: build
extends: .linux-ccache
script:
- export CC=$CC
- export CXX=$CXX
- ./prepare.py -G "$CMAKE_GENERATOR" -cc $DEFAULT_LINUX_CMAKE_OPTIONS $CMAKE_OPTIONS
- cmake --build WORK/desktop/cmake -- $ADDITIONAL_BUILD_OPTIONS
#################################################
# RPM
#################################################
.job-linux-rpm:
stage: package
script:
- sudo rpm -i --replacepkgs /linphone-qt-*
- ./prepare.py desktop-rpm $DEFAULT_CMAKE_OPTIONS $CMAKE_OPTIONS
- make
artifacts:
paths:
- WORK/desktop-rpm/rpmbuild/RPMS/x86_64/*.rpm
when: always
expire_in: 1 week
#################################################
# Schedule
#################################################
.scheduled-job-linux-desktop:
extends: .job-linux-desktop
only:
- schedules
\ No newline at end of file
.job-macosx:
stage: build
tags: [ "macosx" ]
script:
- ccache -s
- export Qt5_DIR=/usr/local/opt/qt/lib/cmake
- export PATH=$PATH:/usr/local/opt/qt/bin
- python prepare.py -G "$CMAKE_GENERATOR" -cc --package $DEFAULT_MACOS_CMAKE_OPTIONS $CMAKE_OPTIONS
- cmake --build WORK/desktop/cmake -- $ADDITIONAL_BUILD_OPTIONS
- ccache -s
artifacts:
paths:
- WORK/desktop/Build/linphone_package/Linphone-*.dmg
- WORK/desktop/Build/linphone_package/linphone-sdk-*-mac.zip
when: always
expire_in: 1 week
.scheduled-job-macosx:
extends: .job-macosx
only:
- schedules
#################################################
# Makefile
#################################################
job-macosx-makefile:
variables:
CMAKE_GENERATOR: Unix Makefiles
ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS
extends: .scheduled-job-macosx
#################################################
# Ninja
#################################################
job-macosx-ninja:
variables:
CMAKE_GENERATOR: Ninja
extends: .job-macosx
#################################################
# Xcode
#################################################
job-macosx-xcode:
stage: build
tags: [ "macosx" ]
only:
- schedules
script:
- export Qt5_DIR=/usr/local/opt/qt/lib/cmake
- export PATH=$PATH:/usr/local/opt/qt/bin
- python prepare.py -G Xcode -cc --package $DEFAULT_MACOS_CMAKE_OPTIONS $CMAKE_OPTIONS
- cmake --build WORK/desktop/cmake -- -IDEBuildOperationMaxNumberOfConcurrentCompileTasks=`sysctl -n hw.ncpu`
artifacts:
paths:
- WORK/desktop/Build/linphone_package/Linphone-*.dmg
- WORK/desktop/Build/linphone_package/linphone-sdk-*-mac.zip
when: always
expire_in: 1 week
\ No newline at end of file
#################################################
# Visual Studio 2015
#################################################
job-windows-vs2015:
stage: build
tags: [ "windows" ]
script:
- echo %Qt5_DIR%
- echo %PATH%
- if DEFINED WINDOWS_SIGNING_DIRECTORY ( xcopy /I /Y "%WINDOWS_SIGNING_DIRECTORY%" "cmake_builder\\linphone_package\\sign" )
- python prepare.py -G "Visual Studio 14 2015" --package %DEFAULT_WINDOWS_CMAKE_OPTIONS% %CMAKE_OPTIONS%
- cmake --build WORK/desktop/cmake --config Release -- /maxcpucount
artifacts:
paths:
- WORK/desktop/Build/linphone_package/Linphone-*-win32.exe
expire_in: 1 week
#################################################
# Base configuration
#################################################
variables:
GIT_SUBMODULE_STRATEGY: recursive
MAKEFILE_JOBS: 5
......@@ -7,347 +11,22 @@ variables:
DEFAULT_WINDOWS_CMAKE_OPTIONS: -DENABLE_NON_FREE_CODECS=YES -DENABLE_OPENH264=YES -DENABLE_UPDATE_CHECK=YES
.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-linux-desktop:
extends: .linux-ccache
script:
- export CC=$CC
- export CXX=$CXX
- ./prepare.py -G "$CMAKE_GENERATOR" -cc $DEFAULT_LINUX_CMAKE_OPTIONS $CMAKE_OPTIONS
- cmake --build WORK/desktop/cmake -- $ADDITIONAL_BUILD_OPTIONS
.scheduled-job-linux-desktop:
extends: .job-linux-desktop
only:
- schedules
job-archlinux-latest-makefile-gcc:
tags: [ "docker-archlinux-latest" ]
image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-archlinux:latest
variables:
CMAKE_GENERATOR: Unix Makefiles
CC: gcc
CXX: g++
ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS
extends: .scheduled-job-linux-desktop
job-archlinux-latest-makefile-clang:
tags: [ "docker-archlinux-latest" ]
image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-archlinux:latest
variables:
CMAKE_GENERATOR: Unix Makefiles
CC: clang
CXX: clang++
ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS
extends: .scheduled-job-linux-desktop
job-archlinux-latest-ninja-gcc:
tags: [ "docker-archlinux-latest" ]
image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-archlinux:latest
variables:
CMAKE_GENERATOR: Ninja
CC: gcc
CXX: g++
extends: .job-linux-desktop
job-archlinux-latest-ninja-clang:
tags: [ "docker-archlinux-latest" ]
image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-archlinux:latest
variables:
CMAKE_GENERATOR: Ninja
CC: clang
CXX: clang++
extends: .job-linux-desktop
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++
ADDITIONAL_BUILD_OPTIONS: -j1
extends: .job-linux-desktop
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++
ADDITIONAL_BUILD_OPTIONS: -j1
extends: .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
#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-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: .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: .job-linux-desktop
#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-clang:
#
# 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-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-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-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-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-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-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-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-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-macosx:
tags: [ "macosx" ]
script:
- ccache -s
- export Qt5_DIR=/usr/local/opt/qt/lib/cmake
- export PATH=$PATH:/usr/local/opt/qt/bin
- python prepare.py -G "$CMAKE_GENERATOR" -cc --package $DEFAULT_MACOS_CMAKE_OPTIONS $CMAKE_OPTIONS
- cmake --build WORK/desktop/cmake -- $ADDITIONAL_BUILD_OPTIONS
- ccache -s
artifacts:
paths:
- WORK/desktop/Build/linphone_package/Linphone-*.dmg
- WORK/desktop/Build/linphone_package/linphone-sdk-*-mac.zip
when: always
expire_in: 1 week
.scheduled-job-macosx:
extends: .job-macosx
only:
- schedules
</