From 87e4244e0bb4b23cb11b6fc2df3a6d6f14a42fe1 Mon Sep 17 00:00:00 2001 From: Imran Iqbal Date: Sun, 18 Jul 2021 09:54:55 +0100 Subject: [PATCH] feat(gitlab-ci): implement `allow_failure` to be used for instances Introducing this so that Debian 11 can be introduced now throughout all formulas. For the most part, these instances are only failing because the upstream repo hasn't been made available just yet; rather than disabling Debian 11 instances, let them run and then use them as standard instances once they start passing. --- ssf/config/formulas.sls | 1 + ssf/defaults.yaml | 3 +++ ssf/files/default/.cirrus.yml | 2 +- .../default/.github/workflows/kitchen.vagrant.yml | 2 +- .../default/.github/workflows/kitchen.windows.yml | 2 +- ssf/files/default/.github/workflows/kitchen.yml | 2 +- ssf/files/default/.gitlab-ci.yml | 14 ++++++++++++-- ssf/files/default/.travis.yml | 2 +- ssf/libcimatrix.jinja | 4 ++++ 9 files changed, 25 insertions(+), 7 deletions(-) diff --git a/ssf/config/formulas.sls b/ssf/config/formulas.sls index 822fa89d..7a644a0e 100644 --- a/ssf/config/formulas.sls +++ b/ssf/config/formulas.sls @@ -179,6 +179,7 @@ remove-previous-file-location-for-{{ formula }}-{{ dest_file }}: map_jinja: {{ map_jinja | yaml }} platforms: {{ context.platforms | yaml }} platforms_matrix: {{ context.platforms_matrix | yaml }} + platforms_matrix_allow_failure: {{ context.platforms_matrix_allow_failure | yaml }} platforms_matrix_commented_includes: {{ context.platforms_matrix_commented_includes | yaml }} proxyplatformswindows: {{ ssf.proxyplatformswindows | yaml }} rubocop: {{ context.rubocop | yaml }} diff --git a/ssf/defaults.yaml b/ssf/defaults.yaml index 1022f461..4bb6afcb 100644 --- a/ssf/defaults.yaml +++ b/ssf/defaults.yaml @@ -169,6 +169,9 @@ ssf_node_anchors: # - [gentoo/stage3, 0 , master, 0, default] # - [almalinux , 0 , master, 0, default] # - [rockylinux , 0 , master, 0, default] + # Instances to allow failure for, such as new platforms which aren't + # currently working because waiting for upstream repos to be provided + platforms_matrix_allow_failure: [] # To deal with excessive instances when mimicking `kitchen list -b` # If values are set, only use these as commented entries in the matrix platforms_matrix_commented_includes: [] diff --git a/ssf/files/default/.cirrus.yml b/ssf/files/default/.cirrus.yml index 6e3ddfda..11c62c63 100644 --- a/ssf/files/default/.cirrus.yml +++ b/ssf/files/default/.cirrus.yml @@ -6,7 +6,7 @@ docker_builder: name: Test ${INSTANCE} env: matrix: - {{- format_ci_matrix(platforms, inspec_suites_kitchen, inspec_suites_matrix, platforms_matrix, platforms_matrix_commented_includes, semrel_formula, width=6) }} + {{- format_ci_matrix(platforms, inspec_suites_kitchen, inspec_suites_matrix, platforms_matrix, platforms_matrix_allow_failure, platforms_matrix_commented_includes, semrel_formula, width=6) }} bundle_install_script: bundle install verify_script: {%- for pre_cmd in script_kitchen.pre %} diff --git a/ssf/files/default/.github/workflows/kitchen.vagrant.yml b/ssf/files/default/.github/workflows/kitchen.vagrant.yml index 86019f36..595e0128 100644 --- a/ssf/files/default/.github/workflows/kitchen.vagrant.yml +++ b/ssf/files/default/.github/workflows/kitchen.vagrant.yml @@ -33,7 +33,7 @@ jobs: fail-fast: false matrix: instance: - {{- format_ci_matrix(platforms, inspec_suites_kitchen, inspec_suites_matrix, platforms_matrix, platforms_matrix_commented_includes, semrel_formula, width=10, use_github_format=True, use_vagrant_platforms=True) }} + {{- format_ci_matrix(platforms, inspec_suites_kitchen, inspec_suites_matrix, platforms_matrix, platforms_matrix_allow_failure, platforms_matrix_commented_includes, semrel_formula, width=10, use_github_format=True, use_vagrant_platforms=True) }} {%- raw %} steps: - name: 'Check out code' diff --git a/ssf/files/default/.github/workflows/kitchen.windows.yml b/ssf/files/default/.github/workflows/kitchen.windows.yml index f8344aa3..c1a83c8f 100644 --- a/ssf/files/default/.github/workflows/kitchen.windows.yml +++ b/ssf/files/default/.github/workflows/kitchen.windows.yml @@ -23,7 +23,7 @@ jobs: fail-fast: false matrix: instance: - {{- format_ci_matrix(platforms, inspec_suites_kitchen, inspec_suites_matrix, platforms_matrix, platforms_matrix_commented_includes, semrel_formula, width=10, use_github_format=True, use_proxy_platforms_windows=platform) }} + {{- format_ci_matrix(platforms, inspec_suites_kitchen, inspec_suites_matrix, platforms_matrix, platforms_matrix_allow_failure, platforms_matrix_commented_includes, semrel_formula, width=10, use_github_format=True, use_proxy_platforms_windows=platform) }} {%- raw %} steps: - name: 'Check out code' diff --git a/ssf/files/default/.github/workflows/kitchen.yml b/ssf/files/default/.github/workflows/kitchen.yml index 29f6d8dc..a72944bc 100644 --- a/ssf/files/default/.github/workflows/kitchen.yml +++ b/ssf/files/default/.github/workflows/kitchen.yml @@ -20,7 +20,7 @@ jobs: fail-fast: false matrix: instance: - {{- format_ci_matrix(platforms, inspec_suites_kitchen, inspec_suites_matrix, platforms_matrix, platforms_matrix_commented_includes, semrel_formula, width=10, use_github_format=True) }} + {{- format_ci_matrix(platforms, inspec_suites_kitchen, inspec_suites_matrix, platforms_matrix, platforms_matrix_allow_failure, platforms_matrix_commented_includes, semrel_formula, width=10, use_github_format=True) }} {%- raw %} steps: - name: 'Check out code' diff --git a/ssf/files/default/.gitlab-ci.yml b/ssf/files/default/.gitlab-ci.yml index 9a8c9042..e2ef5620 100644 --- a/ssf/files/default/.gitlab-ci.yml +++ b/ssf/files/default/.gitlab-ci.yml @@ -129,7 +129,7 @@ rubocop: ############################################################################### # Define `test` template ############################################################################### -.test_instance: +.test_instance:{{ ' &test_instance' if platforms_matrix_allow_failure else '' }} stage: *stage_test image: *image_dindruby services: *services_docker_dind @@ -148,6 +148,16 @@ rubocop: # Alternative value to consider: `${CI_JOB_NAME}` - '{{ script_kitchen.bin }} {{ script_kitchen.cmd }} "${DOCKER_ENV_CI_JOB_NAME}"' +{%- if platforms_matrix_allow_failure %} + +############################################################################### +# Define `test` template (`allow_failure: true`) +############################################################################### +.test_instance_failure_permitted: + <<: *test_instance + allow_failure: true +{%- endif %} + {%- if semrel_formula == 'template' %} # {%- endif %} -{{- format_ci_matrix(platforms, inspec_suites_kitchen, inspec_suites_matrix, platforms_matrix, platforms_matrix_commented_includes, semrel_formula, width=0, use_gitlab_format=True) }} +{{- format_ci_matrix(platforms, inspec_suites_kitchen, inspec_suites_matrix, platforms_matrix, platforms_matrix_allow_failure, platforms_matrix_commented_includes, semrel_formula, width=0, use_gitlab_format=True) }} {%- endif %} ############################################################################### diff --git a/ssf/files/default/.travis.yml b/ssf/files/default/.travis.yml index 49538d44..6cb49af2 100644 --- a/ssf/files/default/.travis.yml +++ b/ssf/files/default/.travis.yml @@ -214,7 +214,7 @@ jobs: # Ref: https://github.com/saltstack-formulas/template-formula/issues/118 # Ref: https://github.com/saltstack-formulas/template-formula/issues/121 {%- endif %} - {{- format_ci_matrix(platforms, inspec_suites_kitchen, inspec_suites_matrix, platforms_matrix, platforms_matrix_commented_includes, semrel_formula, use_new_travis_format=True) }} + {{- format_ci_matrix(platforms, inspec_suites_kitchen, inspec_suites_matrix, platforms_matrix, platforms_matrix_allow_failure, platforms_matrix_commented_includes, semrel_formula, use_new_travis_format=True) }} {%- endif %} {%- if semrel_formula == 'template' %} diff --git a/ssf/libcimatrix.jinja b/ssf/libcimatrix.jinja index b99f3dde..aee5eeba 100644 --- a/ssf/libcimatrix.jinja +++ b/ssf/libcimatrix.jinja @@ -6,6 +6,7 @@ inspec_suites_kitchen, inspec_suites_matrix, platforms_matrix, + platforms_matrix_allow_failure, platforms_matrix_commented_includes, semrel_formula, width=4, @@ -184,6 +185,9 @@ {%- if use_gitlab_format %} {%- set list_format = '' %} {%- set test_template = ": {extends: '.test_instance'}" %} +{%- if [os, os_ver, salt_ver, py_ver, suite_name] in platforms_matrix_allow_failure %} +{%- set test_template = ": {extends: '.test_instance_failure_permitted'}" %} +{%- endif %} {%- else %} {%- set list_format = '- ' %} {%- set test_template = "" %}