Tarantool development patches archive
 help / color / mirror / Atom feed
From: "Alexander V. Tikhonov" <avtikhon@tarantool.org>
To: Alexander Turenko <alexander.turenko@tarantool.org>
Cc: "Alexander V. Tikhonov" <avtikhon@tarantool.org>,
	tarantool-patches@freelists.org
Subject: [tarantool-patches] [PATCH v1] gitlab-ci: clean up .gitlab-ci.yml
Date: Thu, 22 Aug 2019 11:23:42 +0300	[thread overview]
Message-ID: <2b6d5aa2cbe764e84419016789b0be8c62641449.1566462163.git.avtikhon@tarantool.org> (raw)

Cleaned up the .gitlab-ci.yml file from duplicating
code - added templates that storres the needed
configuration values for different jobs.
Also moved the static_build from 'deploy' tag to
'deploy_test' tag to be sure that tests will not
be run under high load.
---

Github: https://github.com/tarantool/tarantool/tree/avtikhon/check-full-ci

 .gitlab-ci.yml | 253 ++++++++++++++-----------------------------------
 1 file changed, 70 insertions(+), 183 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f160c276b..10246ad09 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -6,29 +6,65 @@ variables:
   IMAGE_TEST_LTO: "${CI_REGISTRY}/${CI_PROJECT_PATH}/testing/debian-buster:latest"
   GITLAB_MAKE: "make -f .gitlab.mk"
 
-# Tests
+# Jobs templates
 
-release:
+.release_only_template: &release_only_definition
+  only:
+    refs:
+      - master
+      - /^.*-full-ci$/
+
+.docker_test_template: &docker_test_definition
   image: ${IMAGE_TEST}
   stage: test
   tags:
     - docker_test
-  script:
-    - ${GITLAB_MAKE} test_debian_no_deps
 
-debug:
-  image: ${IMAGE_TEST}
+.docker_test_lto_template: &docker_test_lto_definition
+  image: ${IMAGE_TEST_LTO}
   stage: test
   tags:
     - docker_test
+
+.deploy_template: &deploy_definition
+  <<: *release_only_definition
+  image: ${IMAGE_TEST}
+  stage: test
+  tags:
+    - deploy
   script:
-    - ${GITLAB_MAKE} test_coverage_debian_no_deps
+    - ${GITLAB_MAKE} package
 
-release_clang:
+.deploy_test_template: &deploy_test_definition
+  <<: *release_only_definition
   image: ${IMAGE_TEST}
   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 +72,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_lto_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_lto_definition
   variables:
     CC: clang-8
     CXX: clang++-8
@@ -66,53 +90,36 @@ release_lto_clang8:
     - ${GITLAB_MAKE} test_debian_no_deps
 
 release_asan_clang8:
-  image: ${IMAGE_TEST_LTO}
-  stage: test
-  tags:
-    - docker_test
+  <<: *docker_test_lto_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 +127,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,206 +139,90 @@ 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:
-    - ${GITLAB_MAKE} static_build
-- 
2.17.1

             reply	other threads:[~2019-08-22  8:23 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-22  8:23 Alexander V. Tikhonov [this message]
2019-08-23  6:08 Alexander V. Tikhonov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2b6d5aa2cbe764e84419016789b0be8c62641449.1566462163.git.avtikhon@tarantool.org \
    --to=avtikhon@tarantool.org \
    --cc=alexander.turenko@tarantool.org \
    --cc=tarantool-patches@freelists.org \
    --subject='Re: [tarantool-patches] [PATCH v1] gitlab-ci: clean up .gitlab-ci.yml' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox