diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f160c276b5029ea2cc8eb766820af3c6a3f95a77..431730b673193206205ce084aae280763b0f6787 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,33 +2,65 @@ stages: - test variables: - IMAGE_TEST: "${CI_REGISTRY}/${CI_PROJECT_PATH}/testing/debian-stretch:latest" - IMAGE_TEST_LTO: "${CI_REGISTRY}/${CI_PROJECT_PATH}/testing/debian-buster:latest" GITLAB_MAKE: "make -f .gitlab.mk" -# Tests +# Jobs templates -release: - image: ${IMAGE_TEST} +.release_only_template: &release_only_definition + only: + refs: + - master + - /^.*-full-ci$/ + +.docker_test_template: &docker_test_definition + image: "${CI_REGISTRY}/${CI_PROJECT_PATH}/testing/debian-stretch:latest" stage: test tags: - docker_test - script: - - ${GITLAB_MAKE} test_debian_no_deps -debug: - image: ${IMAGE_TEST} +.docker_test_clang8_template: &docker_test_clang8_definition + image: "${CI_REGISTRY}/${CI_PROJECT_PATH}/testing/debian-buster:latest" stage: test tags: - docker_test + +.deploy_template: &deploy_definition + <<: *release_only_definition + stage: test + tags: + - deploy script: - - ${GITLAB_MAKE} test_coverage_debian_no_deps + - ${GITLAB_MAKE} package -release_clang: - image: ${IMAGE_TEST} +.deploy_test_template: &deploy_test_definition + <<: *release_only_definition stage: test tags: - - docker_test + - deploy_test + script: + - ${GITLAB_MAKE} package + +.vbox_template: &vbox_definition + stage: test + before_script: + - ${GITLAB_MAKE} vms_start + after_script: + - ${GITLAB_MAKE} vms_shutdown + +# Tests + +release: + <<: *docker_test_definition + script: + - ${GITLAB_MAKE} test_debian_no_deps + +debug: + <<: *docker_test_definition + script: + - ${GITLAB_MAKE} test_coverage_debian_no_deps + +release_clang: + <<: *docker_test_definition variables: CC: clang CXX: clang++ @@ -36,28 +68,16 @@ release_clang: - ${GITLAB_MAKE} test_debian_no_deps release_lto: - only: - refs: - - master - - /^.*-full-ci$/ - image: ${IMAGE_TEST_LTO} - stage: test - tags: - - docker_test + <<: *release_only_definition + <<: *docker_test_clang8_definition variables: CMAKE_EXTRA_PARAMS: -DENABLE_LTO=ON script: - ${GITLAB_MAKE} test_debian_no_deps release_lto_clang8: - only: - refs: - - master - - /^.*-full-ci$/ - image: ${IMAGE_TEST_LTO} - stage: test - tags: - - docker_test + <<: *release_only_definition + <<: *docker_test_clang8_definition variables: CC: clang-8 CXX: clang++-8 @@ -66,53 +86,36 @@ release_lto_clang8: - ${GITLAB_MAKE} test_debian_no_deps release_asan_clang8: - image: ${IMAGE_TEST_LTO} - stage: test - tags: - - docker_test + <<: *docker_test_clang8_definition script: - ${GITLAB_MAKE} test_asan_debian_no_deps osx_13_release: - only: - refs: - - master - - /^.*-full-ci$/ - stage: test + <<: *release_only_definition + <<: *vbox_definition tags: - vms_osx_13 variables: VMS_NAME: 'osx_13' VMS_USER: 'tarantool' VMS_PORT: '2212' - before_script: - - ${GITLAB_MAKE} vms_start script: - ${GITLAB_MAKE} vms_test_osx - after_script: - - ${GITLAB_MAKE} vms_shutdown osx_14_release: - stage: test + <<: *vbox_definition tags: - vms_osx_14 variables: VMS_NAME: 'osx_14' VMS_USER: 'tarantool' VMS_PORT: '2222' - before_script: - - ${GITLAB_MAKE} vms_start script: - ${GITLAB_MAKE} vms_test_osx - after_script: - - ${GITLAB_MAKE} vms_shutdown osx_14_release_lto: - only: - refs: - - master - - /^.*-full-ci$/ - stage: test + <<: *release_only_definition + <<: *vbox_definition tags: - vms_osx_14 variables: @@ -120,15 +123,11 @@ osx_14_release_lto: VMS_NAME: 'osx_14' VMS_USER: 'tarantool' VMS_PORT: '2222' - before_script: - - ${GITLAB_MAKE} vms_start script: - ${GITLAB_MAKE} vms_test_osx - after_script: - - ${GITLAB_MAKE} vms_shutdown freebsd_12_release: - stage: test + <<: *vbox_definition tags: - vms_freebsd_12 variables: @@ -136,205 +135,91 @@ freebsd_12_release: VMS_USER: 'vagrant' VMS_PORT: '2232' MAKE: 'gmake' - before_script: - - ${GITLAB_MAKE} vms_start script: - ${GITLAB_MAKE} vms_test_freebsd - after_script: - - ${GITLAB_MAKE} vms_shutdown # Packs centos_6: - only: - refs: - - master - - /^.*-full-ci$/ - stage: test - tags: - - deploy + <<: *deploy_definition variables: OS: 'el' DIST: '6' - script: - - ${GITLAB_MAKE} package centos_7: - only: - refs: - - master - - /^.*-full-ci$/ - stage: test - tags: - - deploy_test + <<: *deploy_test_definition variables: OS: 'el' DIST: '7' - script: - - ${GITLAB_MAKE} package fedora_28: - only: - refs: - - master - - /^.*-full-ci$/ - stage: test - tags: - - deploy_test + <<: *deploy_test_definition variables: OS: 'fedora' DIST: '28' - script: - - ${GITLAB_MAKE} package fedora_29: - only: - refs: - - master - - /^.*-full-ci$/ - stage: test - tags: - - deploy_test + <<: *deploy_test_definition variables: OS: 'fedora' DIST: '29' - script: - - ${GITLAB_MAKE} package fedora_30: - only: - refs: - - master - - /^.*-full-ci$/ - stage: test - tags: - - deploy_test + <<: *deploy_test_definition variables: OS: 'fedora' DIST: '30' - script: - - ${GITLAB_MAKE} package ubuntu_14_04: - only: - refs: - - master - - /^.*-full-ci$/ - stage: test - tags: - - deploy + <<: *deploy_definition variables: OS: 'ubuntu' DIST: 'trusty' - script: - - ${GITLAB_MAKE} package ubuntu_16_04: - only: - refs: - - master - - /^.*-full-ci$/ - stage: test - tags: - - deploy + <<: *deploy_definition variables: OS: 'ubuntu' DIST: 'xenial' - script: - - ${GITLAB_MAKE} package ubuntu_18_04: - only: - refs: - - master - - /^.*-full-ci$/ - stage: test - tags: - - deploy + <<: *deploy_definition variables: OS: 'ubuntu' DIST: 'bionic' - script: - - ${GITLAB_MAKE} package ubuntu_18_10: - only: - refs: - - master - - /^.*-full-ci$/ - stage: test - tags: - - deploy + <<: *deploy_definition variables: OS: 'ubuntu' DIST: 'cosmic' - script: - - ${GITLAB_MAKE} package ubuntu_19_04: - only: - refs: - - master - - /^.*-full-ci$/ - stage: test - tags: - - deploy + <<: *deploy_definition variables: OS: 'ubuntu' DIST: 'disco' - script: - - ${GITLAB_MAKE} package debian_8: - only: - refs: - - master - - /^.*-full-ci$/ - stage: test - tags: - - deploy + <<: *deploy_definition variables: OS: 'debian' DIST: 'jessie' - script: - - ${GITLAB_MAKE} package debian_9: - only: - refs: - - master - - /^.*-full-ci$/ - stage: test - tags: - - deploy + <<: *deploy_definition variables: OS: 'debian' DIST: 'stretch' - script: - - ${GITLAB_MAKE} package debian_10: - only: - refs: - - master - - /^.*-full-ci$/ - stage: test - tags: - - deploy + <<: *deploy_definition variables: OS: 'debian' DIST: 'buster' - script: - - ${GITLAB_MAKE} package static_build: - only: - refs: - - master - - /^.*-full-ci$/ - stage: test - tags: - - deploy + <<: *deploy_test_definition variables: RUN_TESTS: 'ON' script: