jenkins: Move some filters to axis definitions
authorChristoph Berg <christoph.berg@credativ.de>
Wed, 11 Aug 2021 12:31:44 +0000 (14:31 +0200)
committerChristoph Berg <christoph.berg@credativ.de>
Wed, 11 Aug 2021 12:31:44 +0000 (14:31 +0200)
This makes things more explicit

jenkins/pgapt-jobs.yaml

index 811db8b87bc8820e613789b9175cf52acf22b649..47cfaa724bac41143ad1eb4937fc1a873b88a9b2 100644 (file)
         - timestamps
     dist-filter: 'true'
     arch-filter: 'true'
+    # distribution/architecture combinations:
+    # amd64 on all dists
+    # i386 on sid; no i386 on newly added dists
+    # arm64/ppc64el on all dists except non-LTS Ubuntu
     filter: &filter 'architecture=="amd64" || distribution=="sid" || (architecture=="arm64" && !(distribution in ["stretch", "impish", "hirsute"])) || (architecture=="i386" && (distribution in ["buster", "stretch", "bionic"])) || (architecture=="ppc64el" && !(distribution in ["impish", "hirsute"]))'
     filter_pattern: &filter_pattern '({arch-filter}) && ({dist-filter}) && ({filter})'
-    filter_patbeta: &filter_patbeta '({arch-filter}) && ({dist-filter}) && ({filter}) && !(distribution in ["groovy"])'
-    # patbeta: variant of filter that excludes PostgreSQL-beta packages to be built
-    pg_filter: &pg_filter '!(distribution in ["impish", "hirsute"])'
-    # pg_filter: build older PostgreSQL server versions on all LTS releases
+    # lts_dist_filter: build older PostgreSQL server versions on all LTS releases
+    lts_dist_filter: &lts_dist_filter '!(distribution in ["impish", "hirsute"])'
     git-branch: master
     backports: ''
     backports_runtime: ''
                     - arm64
                     - i386
                     - ppc64el
-    arch_axis_userdefined: &arch_axis_userdefined
-            <<: *arch_axis
-            type: user-defined
-
-    git_head_arch_axis: &git_head_arch_axis
+    arch_axis_pg_devel: &arch_axis_pg_devel
             type: slave
             name: architecture
             values: [amd64]
+    arch_axis_userdefined: &arch_axis_userdefined
+            <<: *arch_axis
+            type: user-defined
 
     dist_axis: &dist_axis
             type: user-defined
                     - hirsute
                     - focal
                     - bionic
-
-    git_head_dist_axis: &git_head_dist_axis
+    dist_axis_pg_beta: &dist_axis_pg_beta # distributions to build PG-beta module packages for
+            type: user-defined
+            name: distribution
+            values:
+                    - sid
+                    - bullseye
+                    - buster
+                    - stretch
+                    - impish
+                    - hirsute
+                    - focal
+                    - bionic
+    dist_axis_pg_devel: &dist_axis_pg_devel
             type: user-defined
             name: distribution
             values:
                 - choice: *buildtype_choice_snapshot
                 - matrix-combinations: *matrix_combination_parameter
         axes:
-                - axis: *git_head_dist_axis
+                - axis: *dist_axis_pg_devel
         scm:
                 - git:
                         url: '{git-url}'
         name: '{name}-binaries'
         id: 'binaries-git-head'
         axes:
-                - axis: *git_head_arch_axis
-                - axis: *git_head_dist_axis
+                - axis: *arch_axis_pg_devel
+                - axis: *dist_axis_pg_devel
 
 # binaries for building modules for PostgreSQL beta
 - job-template:
         <<: *binaries_template
         name: '{name}-binaries-beta'
         id: 'binaries-beta'
-        execution-strategy:
-                <<: *binaries_execution_strategy
-                combination-filter: *filter_patbeta
+        axes:
+                - axis: *arch_axis
+                - axis: *dist_axis_pg_beta
         parameters:
                 - string: *supported_versions_param_beta
                 - string: *deb_build_options_param
 #        name: '{name}-binaries-devel'
 #        id: 'binaries-devel'
 #        axes:
-#                - axis: *git_head_arch_axis
-#                - axis: *git_head_dist_axis
+#                - axis: *arch_axis_pg_devel
+#                - axis: *dist_axis_pg_devel
 #        builders:
 #                - shell: 'rm -rf *'
 #                - copyartifact: *copysource
         <<: *autopkgtest_template
         name: '{name}-autopkgtest-beta'
         id: 'autopkgtest-beta'
-        execution-strategy:
-                combination-filter: *filter_patbeta
-                touchstone:
-                        expr: '(distribution=="sid") && (architecture=="amd64")'
+        axes:
+                - axis: *arch_axis
+                - axis: *dist_axis_pg_beta
         triggers:
                 - timed: "H H H * *"
         builders:
         name: '{name}-autopkgtest'
         id: 'autopkgtest-git-head'
         axes:
-                - axis: *git_head_arch_axis
-                - axis: *git_head_dist_axis
+                - axis: *arch_axis_pg_devel
+                - axis: *dist_axis_pg_devel
 
 # upgrade test template
 
         name: 'upgrade-{oldversion}-{newversion}'
         id: 'upgrade-git-head'
         axes:
-                - axis: *git_head_arch_axis
-                - axis: *git_head_dist_axis
+                - axis: *arch_axis_pg_devel
+                - axis: *dist_axis_pg_devel
 
 # job groups
 
         git-url: https://salsa.debian.org/postgresql/postgresql.git
         git-branch: 8.2
         arch-filter: '(architecture!="arm64")'
-        dist-filter: *pg_filter
+        dist-filter: *lts_dist_filter
         jobs:
                 - git-packages
 
         git-url: https://salsa.debian.org/postgresql/postgresql.git
         git-branch: 8.3
         arch-filter: '(architecture!="arm64")'
-        dist-filter: *pg_filter
+        dist-filter: *lts_dist_filter
         jobs:
                 - git-packages
 
         git-url: https://salsa.debian.org/postgresql/postgresql.git
         git-branch: 8.4
         arch-filter: '(architecture!="arm64")'
-        dist-filter: *pg_filter
+        dist-filter: *lts_dist_filter
         jobs:
                 - git-packages
 
         git-url: https://salsa.debian.org/postgresql/postgresql.git
         git-branch: 9.0
         arch-filter: '(architecture!="arm64")'
-        dist-filter: *pg_filter
+        dist-filter: *lts_dist_filter
         jobs:
                 - git-packages
 
         name: postgresql-9.1
         git-url: https://salsa.debian.org/postgresql/postgresql.git
         git-branch: 9.1
-        dist-filter: *pg_filter
+        dist-filter: *lts_dist_filter
         jobs:
                 - git-packages
 
         name: postgresql-9.2
         git-url: https://salsa.debian.org/postgresql/postgresql.git
         git-branch: 9.2
-        dist-filter: *pg_filter
+        dist-filter: *lts_dist_filter
         jobs:
                 - git-packages
 
         name: postgresql-9.3
         git-url: https://salsa.debian.org/postgresql/postgresql.git
         git-branch: 9.3
-        dist-filter: *pg_filter
+        dist-filter: *lts_dist_filter
         jobs:
                 - git-packages
 
         name: postgresql-9.4
         git-url: https://salsa.debian.org/postgresql/postgresql.git
         git-branch: 9.4
-        dist-filter: *pg_filter
+        dist-filter: *lts_dist_filter
         jobs:
                 - git-packages
 
         name: postgresql-9.5
         git-url: https://salsa.debian.org/postgresql/postgresql.git
         git-branch: 9.5
-        dist-filter: *pg_filter
+        dist-filter: *lts_dist_filter
         jobs:
                 - git-packages
 
 
 # lowest supported "upgrade from" version is 8.4, "upgrade to" 9.2
 # lowest supported version on arm64 is 9.1
-- project: { name: upgrade-8.4-9.2, oldversion: 8.4, newversion: 9.2, jobs: [ upgrade ], dist-filter: *pg_filter, arch-filter: 'architecture!="arm64"' }
-- project: { name: upgrade-9.0-9.2, oldversion: 9.0, newversion: 9.2, jobs: [ upgrade ], dist-filter: *pg_filter, arch-filter: 'architecture!="arm64"' }
-- project: { name: upgrade-9.1-9.2, oldversion: 9.1, newversion: 9.2, jobs: [ upgrade ], dist-filter: *pg_filter }
-- project: { name: upgrade-9.2-9.3, oldversion: 9.2, newversion: 9.3, jobs: [ upgrade ], dist-filter: *pg_filter }
-- project: { name: upgrade-9.3-9.4, oldversion: 9.3, newversion: 9.4, jobs: [ upgrade ], dist-filter: *pg_filter }
-- project: { name: upgrade-9.4-9.5, oldversion: 9.4, newversion: 9.5, jobs: [ upgrade ], dist-filter: *pg_filter }
-- project: { name: upgrade-9.5-9.6, oldversion: 9.5, newversion: 9.6, jobs: [ upgrade ], dist-filter: *pg_filter }
+- project: { name: upgrade-8.4-9.2, oldversion: 8.4, newversion: 9.2, jobs: [ upgrade ], dist-filter: *lts_dist_filter, arch-filter: 'architecture!="arm64"' }
+- project: { name: upgrade-9.0-9.2, oldversion: 9.0, newversion: 9.2, jobs: [ upgrade ], dist-filter: *lts_dist_filter, arch-filter: 'architecture!="arm64"' }
+- project: { name: upgrade-9.1-9.2, oldversion: 9.1, newversion: 9.2, jobs: [ upgrade ], dist-filter: *lts_dist_filter }
+- project: { name: upgrade-9.2-9.3, oldversion: 9.2, newversion: 9.3, jobs: [ upgrade ], dist-filter: *lts_dist_filter }
+- project: { name: upgrade-9.3-9.4, oldversion: 9.3, newversion: 9.4, jobs: [ upgrade ], dist-filter: *lts_dist_filter }
+- project: { name: upgrade-9.4-9.5, oldversion: 9.4, newversion: 9.5, jobs: [ upgrade ], dist-filter: *lts_dist_filter }
+- project: { name: upgrade-9.5-9.6, oldversion: 9.5, newversion: 9.6, jobs: [ upgrade ], dist-filter: *lts_dist_filter }
 - project: { name: upgrade-9.6-10,  oldversion: 9.6, newversion: 10,  jobs: [ upgrade ] }
 - project: { name: upgrade-10-11,   oldversion: 10,  newversion: 11,  jobs: [ upgrade ] }
 - project: { name: upgrade-11-12,   oldversion: 11,  newversion: 12,  jobs: [ upgrade ] }
 - project: { name: upgrade-13-14,   oldversion: 13,  newversion: 14,  jobs: [ upgrade-git-head ] }
 
 # larger jumps:
-- project: { name: upgrade-9.4-11,  oldversion: 9.4, newversion: 11,  jobs: [ upgrade ], dist-filter: *pg_filter }
+- project: { name: upgrade-9.4-11,  oldversion: 9.4, newversion: 11,  jobs: [ upgrade ], dist-filter: *lts_dist_filter }
 - project: { name: upgrade-9.6-13,  oldversion: 9.6, newversion: 13,  jobs: [ upgrade ] }
 
 # PgQ