17750: Update test matrix, remove unsupported distros
[arvados-formula.git] / .gitlab-ci.yml
index b59f3602cb931bba2745f2e35ccc9cc2874df772..2d4b1fdf105f54f0cc05e8ea16457057744d5439 100644 (file)
@@ -18,6 +18,7 @@
   image_precommit: &image_precommit
     name: 'myii/ssf-pre-commit:2.9.2'
     entrypoint: ['/bin/bash', '-c']
+  image_rubocop: &image_rubocop 'pipelinecomponents/rubocop:latest'
   image_semantic-release: &image_semanticrelease 'myii/ssf-semantic-release:15.14'
   # `services`
   services_docker_dind: &services_docker_dind
@@ -45,14 +46,15 @@ variables:
   DOCKER_DRIVER: 'overlay2'
 
 ###############################################################################
-# `lint` stage: `commitlint` & `pre-commit`
+# `lint` stage: `commitlint`, `pre-commit` & `rubocop` (latest, failure allowed)
 ###############################################################################
 commitlint:
   stage: *stage_lint
   image: *image_commitlint
   script:
     # Add `upstream` remote to get access to `upstream/master`
-    - 'git remote add upstream ${CI_PROJECT_URL}.git'
+    - 'git remote add upstream
+       https://gitlab.com/saltstack-formulas/arvados-formula.git'
     - 'git fetch --all'
     # Set default commit hashes for `--from` and `--to`
     - 'export COMMITLINT_FROM="$(git merge-base upstream/master HEAD)"'
@@ -84,6 +86,19 @@ pre-commit:
   script:
     - 'pre-commit run --all-files --color always --verbose'
 
+# Use a separate job for `rubocop` other than the one potentially run by `pre-commit`
+# - The `pre-commit` check will only be available for formulas that pass the default
+#   `rubocop` check -- and must continue to do so
+# - This job is allowed to fail, so can be used for all formulas
+# - Furthermore, this job uses all of the latest `rubocop` features & cops,
+#   which will help when upgrading the `rubocop` linter used in `pre-commit`
+rubocop:
+  allow_failure: true
+  stage: *stage_lint
+  image: *image_rubocop
+  script:
+    - 'rubocop -d -P -S --enable-pending-cops'
+
 ###############################################################################
 # Define `test` template
 ###############################################################################
@@ -109,77 +124,95 @@ pre-commit:
 # Make sure the instances listed below match up with
 # the `platforms` defined in `kitchen.yml`
 # api-debian-10-tiamat-py3: {extends: '.test_instance'}
-# keepstore-debian-10-tiamat-py3: {extends: '.test_instance'}
-# shell-debian-10-tiamat-py3: {extends: '.test_instance'}
-# workbench-debian-10-tiamat-py3: {extends: '.test_instance'}
 # api-debian-9-tiamat-py3: {extends: '.test_instance'}
-# keepstore-debian-9-tiamat-py3: {extends: '.test_instance'}
-# shell-debian-9-tiamat-py3: {extends: '.test_instance'}
-# workbench-debian-9-tiamat-py3: {extends: '.test_instance'}
 # api-ubuntu-2004-tiamat-py3: {extends: '.test_instance'}
-# keepstore-ubuntu-2004-tiamat-py3: {extends: '.test_instance'}
-# shell-ubuntu-2004-tiamat-py3: {extends: '.test_instance'}
-# workbench-ubuntu-2004-tiamat-py3: {extends: '.test_instance'}
 # api-ubuntu-1804-tiamat-py3: {extends: '.test_instance'}
-# keepstore-ubuntu-1804-tiamat-py3: {extends: '.test_instance'}
-# shell-ubuntu-1804-tiamat-py3: {extends: '.test_instance'}
-# workbench-ubuntu-1804-tiamat-py3: {extends: '.test_instance'}
+# api-ubuntu-1604-tiamat-py3: {extends: '.test_instance'}
+# api-centos-8-tiamat-py3: {extends: '.test_instance'}
 # api-centos-7-tiamat-py3: {extends: '.test_instance'}
-# keepstore-centos-7-tiamat-py3: {extends: '.test_instance'}
-# shell-centos-7-tiamat-py3: {extends: '.test_instance'}
-# workbench-centos-7-tiamat-py3: {extends: '.test_instance'}
-api-debian-10-master-py3: {extends: '.test_instance'}
-# keepstore-debian-10-master-py3: {extends: '.test_instance'}
+# api-amazonlinux-2-tiamat-py3: {extends: '.test_instance'}
+# api-oraclelinux-8-tiamat-py3: {extends: '.test_instance'}
+# api-oraclelinux-7-tiamat-py3: {extends: '.test_instance'}
+api-debian-10-master-py3: {extends: '.test_instance'}
+workbench-debian-10-master-py3: {extends: '.test_instance'}
 # shell-debian-10-master-py3: {extends: '.test_instance'}
-# workbench-debian-10-master-py3: {extends: '.test_instance'}
+keepstore-debian-10-master-py3: {extends: '.test_instance'}
+# api-debian-9-master-py3: {extends: '.test_instance'}
+# workbench-debian-9-master-py3: {extends: '.test_instance'}
+# shell-debian-9-master-py3: {extends: '.test_instance'}
+# keepstore-debian-9-master-py3: {extends: '.test_instance'}
 # api-ubuntu-2004-master-py3: {extends: '.test_instance'}
-# keepstore-ubuntu-2004-master-py3: {extends: '.test_instance'}
-# shell-ubuntu-2004-master-py3: {extends: '.test_instance'}
 # workbench-ubuntu-2004-master-py3: {extends: '.test_instance'}
-# api-ubuntu-1804-master-py3: {extends: '.test_instance'}
-# keepstore-ubuntu-1804-master-py3: {extends: '.test_instance'}
+# shell-ubuntu-2004-master-py3: {extends: '.test_instance'}
+# keepstore-ubuntu-2004-master-py3: {extends: '.test_instance'}
+api-ubuntu-1804-master-py3: {extends: '.test_instance'}
+workbench-ubuntu-1804-master-py3: {extends: '.test_instance'}
 # shell-ubuntu-1804-master-py3: {extends: '.test_instance'}
-# workbench-ubuntu-1804-master-py3: {extends: '.test_instance'}
-# api-debian-10-3001-py3: {extends: '.test_instance'}
-# keepstore-debian-10-3001-py3: {extends: '.test_instance'}
-# shell-debian-10-3001-py3: {extends: '.test_instance'}
-# workbench-debian-10-3001-py3: {extends: '.test_instance'}
-# api-debian-9-3001-py3: {extends: '.test_instance'}
-# keepstore-debian-9-3001-py3: {extends: '.test_instance'}
-# shell-debian-9-3001-py3: {extends: '.test_instance'}
-# workbench-debian-9-3001-py3: {extends: '.test_instance'}
-# api-ubuntu-2004-3001-py3: {extends: '.test_instance'}
-# keepstore-ubuntu-2004-3001-py3: {extends: '.test_instance'}
-# shell-ubuntu-2004-3001-py3: {extends: '.test_instance'}
-# workbench-ubuntu-2004-3001-py3: {extends: '.test_instance'}
-# api-ubuntu-1804-3001-py3: {extends: '.test_instance'}
-# keepstore-ubuntu-1804-3001-py3: {extends: '.test_instance'}
-# shell-ubuntu-1804-3001-py3: {extends: '.test_instance'}
-# workbench-ubuntu-1804-3001-py3: {extends: '.test_instance'}
-# api-centos-7-3001-py3: {extends: '.test_instance'}
-# keepstore-centos-7-3001-py3: {extends: '.test_instance'}
-shell-centos-7-3001-py3: {extends: '.test_instance'}
-# workbench-centos-7-3001-py3: {extends: '.test_instance'}
-# api-debian-10-3000-3-py3: {extends: '.test_instance'}
-# keepstore-debian-10-3000-3-py3: {extends: '.test_instance'}
-# shell-debian-10-3000-3-py3: {extends: '.test_instance'}
-# workbench-debian-10-3000-3-py3: {extends: '.test_instance'}
-# api-debian-9-3000-3-py3: {extends: '.test_instance'}
-# keepstore-debian-9-3000-3-py3: {extends: '.test_instance'}
-# shell-debian-9-3000-3-py3: {extends: '.test_instance'}
-# workbench-debian-9-3000-3-py3: {extends: '.test_instance'}
-# api-ubuntu-1804-3000-3-py3: {extends: '.test_instance'}
-# keepstore-ubuntu-1804-3000-3-py3: {extends: '.test_instance'}
-# shell-ubuntu-1804-3000-3-py3: {extends: '.test_instance'}
-# workbench-ubuntu-1804-3000-3-py3: {extends: '.test_instance'}
-# api-centos-7-3000-3-py3: {extends: '.test_instance'}
-keepstore-centos-7-3000-3-py3: {extends: '.test_instance'}
-# shell-centos-7-3000-3-py3: {extends: '.test_instance'}
-# workbench-centos-7-3000-3-py3: {extends: '.test_instance'}
-# api-ubuntu-1804-3000-3-py2: {extends: '.test_instance'}
-# keepstore-ubuntu-1804-3000-3-py2: {extends: '.test_instance'}
-# shell-ubuntu-1804-3000-3-py2: {extends: '.test_instance'}
-# workbench-ubuntu-1804-3000-3-py2: {extends: '.test_instance'}
+# keepstore-ubuntu-1804-master-py3: {extends: '.test_instance'}
+# api-ubuntu-1604-master-py3: {extends: '.test_instance'}
+# workbench-ubuntu-1604-master-py3: {extends: '.test_instance'}
+# shell-ubuntu-1604-master-py3: {extends: '.test_instance'}
+# keepstore-ubuntu-1604-master-py3: {extends: '.test_instance'}
+# api-centos-8-master-py3: {extends: '.test_instance'}
+# workbench-centos-8-master-py3: {extends: '.test_instance'}
+# shell-centos-8-master-py3: {extends: '.test_instance'}
+# keepstore-centos-8-master-py3: {extends: '.test_instance'}
+# api-centos-7-master-py3: {extends: '.test_instance'}
+# workbench-centos-7-master-py3: {extends: '.test_instance'}
+shell-centos-7-master-py3: {extends: '.test_instance'}
+keepstore-centos-7-master-py3: {extends: '.test_instance'}
+# api-amazonlinux-2-master-py3: {extends: '.test_instance'}
+# workbench-amazonlinux-2-master-py3: {extends: '.test_instance'}
+# shell-amazonlinux-2-master-py3: {extends: '.test_instance'}
+# keepstore-amazonlinux-2-master-py3: {extends: '.test_instance'}
+# api-oraclelinux-8-master-py3: {extends: '.test_instance'}
+# workbench-oraclelinux-8-master-py3: {extends: '.test_instance'}
+# shell-oraclelinux-8-master-py3: {extends: '.test_instance'}
+# keepstore-oraclelinux-8-master-py3: {extends: '.test_instance'}
+# api-oraclelinux-7-master-py3: {extends: '.test_instance'}
+# workbench-oraclelinux-7-master-py3: {extends: '.test_instance'}
+# shell-oraclelinux-7-master-py3: {extends: '.test_instance'}
+# keepstore-oraclelinux-7-master-py3: {extends: '.test_instance'}
+# api-debian-10-3003-0-py3: {extends: '.test_instance'}
+# api-debian-9-3003-0-py3: {extends: '.test_instance'}
+# api-ubuntu-2004-3003-0-py3: {extends: '.test_instance'}
+# api-ubuntu-1804-3003-0-py3: {extends: '.test_instance'}
+# api-centos-8-3003-0-py3: {extends: '.test_instance'}
+# api-centos-7-3003-0-py3: {extends: '.test_instance'}
+# api-amazonlinux-2-3003-0-py3: {extends: '.test_instance'}
+# api-oraclelinux-8-3003-0-py3: {extends: '.test_instance'}
+# api-oraclelinux-7-3003-0-py3: {extends: '.test_instance'}
+# api-debian-10-3002-6-py3: {extends: '.test_instance'}
+# api-debian-9-3002-6-py3: {extends: '.test_instance'}
+# api-ubuntu-2004-3002-6-py3: {extends: '.test_instance'}
+# api-ubuntu-1804-3002-6-py3: {extends: '.test_instance'}
+# api-ubuntu-1604-3002-6-py3: {extends: '.test_instance'}
+# api-centos-8-3002-6-py3: {extends: '.test_instance'}
+# api-centos-7-3002-6-py3: {extends: '.test_instance'}
+# api-amazonlinux-2-3002-6-py3: {extends: '.test_instance'}
+# api-oraclelinux-8-3002-6-py3: {extends: '.test_instance'}
+# api-oraclelinux-7-3002-6-py3: {extends: '.test_instance'}
+# api-debian-10-3001-7-py3: {extends: '.test_instance'}
+# api-debian-9-3001-7-py3: {extends: '.test_instance'}
+# api-ubuntu-2004-3001-7-py3: {extends: '.test_instance'}
+# api-ubuntu-1804-3001-7-py3: {extends: '.test_instance'}
+# api-ubuntu-1604-3001-7-py3: {extends: '.test_instance'}
+# api-centos-8-3001-7-py3: {extends: '.test_instance'}
+# api-centos-7-3001-7-py3: {extends: '.test_instance'}
+# api-amazonlinux-2-3001-7-py3: {extends: '.test_instance'}
+# api-oraclelinux-8-3001-7-py3: {extends: '.test_instance'}
+# api-oraclelinux-7-3001-7-py3: {extends: '.test_instance'}
+# api-debian-10-3000-9-py3: {extends: '.test_instance'}
+# api-debian-9-3000-9-py3: {extends: '.test_instance'}
+# api-ubuntu-1804-3000-9-py3: {extends: '.test_instance'}
+# api-ubuntu-1604-3000-9-py3: {extends: '.test_instance'}
+# api-centos-8-3000-9-py3: {extends: '.test_instance'}
+# api-centos-7-3000-9-py3: {extends: '.test_instance'}
+# api-amazonlinux-2-3000-9-py3: {extends: '.test_instance'}
+# api-oraclelinux-8-3000-9-py3: {extends: '.test_instance'}
+# api-oraclelinux-7-3000-9-py3: {extends: '.test_instance'}
+# api-ubuntu-1804-3000-9-py2: {extends: '.test_instance'}
+# api-ubuntu-1604-3000-9-py2: {extends: '.test_instance'}
 
 ###############################################################################
 # `release` stage: `semantic-release`