-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmatrix.yml
More file actions
154 lines (153 loc) · 5.84 KB
/
Copy pathmatrix.yml
File metadata and controls
154 lines (153 loc) · 5.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
---
# Defines supported distros and their specific settings, if any
# This file is maintained manually, and is a source of automation to generate
# build configs based on the latest versions of distros.
# How many versions of OS to build for each distro, if not specified explicitly
# Can be overriden by setting os_versions in a distro definition
distro_defaults:
# How many latest versions of distro to build for
os_versions: 2
# Default packager, unless overriden in a distro definition
packager: dnf
distros:
# The key of a distro is used by lastversion to check current version
# e.g. in this case `lastversion rhel` will run to determine latest RHEL version
rhel:
dist: el
dir: redhat
# Temporary field to incite logic in crypt-keeper.sh of rpmbuilder
# should be replaced with a more generic solution
# e.g. having crypt-keeper.sh use logic based on distro settings here
rpmbuilder_name: centos
description: "CentOS/RHEL"
# human_label: friendly product name shown to end users in the
# extras.getpagespeed.com setup wizard. Distinct from `description`,
# which is consumed by CI/build tooling.
human_label: "AlmaLinux / Rocky / RHEL"
has_plesk: True
# The setting to specify docker image to use for this distro
docker: rockylinux
# Specifies packager command to use for this distro
packager: dnf
# disable versions check and specify versions explicitly for now
versions_check: false
versions:
- 7
- 8
- 9
- 10
# Override settings for specific versions
version_overrides:
7:
# The setting to specify docker image to use for this distro version
docker: centos
packager: yum
10:
has_plesk: False
fedora:
dist: fc
dir: fedora
description: "Fedora Linux"
human_label: "Fedora"
# Rawhide has too many issues and requires sponsoring due to workload and stability issues that needs to be addressed all the time
# For example: Error: Path "/root/rpmbuild/BUILDROOT/hello-1.0-1.fc41.x86_64" is outside of $RPM_BUILD_ROOT
# Go figure! So we disable builds on Rawhide for now
include_rolling_release: False
rpmbuilder_name: fedora
amazonlinux:
dist: amzn
description: "Amazon Linux"
human_label: "Amazon Linux"
versions_check: false
versions:
- 2
- 2023
version_overrides:
2:
packager: yum
rpmbuilder_name: amazonlinux
sles:
dist: sles
description: "SUSE Linux Enterprise"
# Our SLES build artifacts install cleanly on openSUSE Leap too — surface both in the wizard.
human_label: "SLES / openSUSE Leap"
os_versions: 1
docker: opensuse/leap
rpmbuilder_name: opensuse
collections:
nginx:
custom_steps_after_checkout:
- run:
name: "Set up RPM macro reflecting the NGINX branch"
command: |
echo "%nginx_branch ${CIRCLE_BRANCH}" >> rpmmacros
- run:
name: "Set up %plesk macro if passed by a job"
command: |
[ -z ${PLESK+x} ] || echo "%plesk ${PLESK}" >> rpmmacros
# we generate both nginx-module-<foo> and sw-nginx-module-<foo> from a single spec file, so:
[ -z ${PLESK+x} ] || (echo >> rpmlint.config && echo 'addFilter ("E: invalid-spec-name")' >> rpmlint.config)
[ -z ${MOD+x} ] || echo "%_nginx_mod ${MOD}" >> rpmmacros
[ -z ${MOD+x} ] || (echo >> rpmlint.config && echo 'addFilter ("E: invalid-spec-name")' >> rpmlint.config)
# which virtual NGINX branch builds on which git branch
# NGINX branch is either an NGINX fork, or an actual NGINX branch like mainline or stable
# or a custom build for a panel like Plesk
branches:
stable:
description: "Stable NGINX"
git_branch: master
mainline:
description: "Mainline NGINX"
angie:
description: "Angie"
# spec is always equal to stable (with mod conditionals), but we only push those modules which need unique version
# due to SSL requirements, etc.
# nginx-mod for modules only needed for e.g. EL7 where we built against non-system OpenSSL, but not in EL8, etc.
nginx-mod:
description: "NGINX-MOD"
tengine:
description: "Tengine"
plesk:
description: "Plesk"
plesk_version: 18
only_dists:
- "el*" # CentOS/RHEL
only_archs:
- x86_64
ea4:
description: "EA4"
git_branch: ea4
# ea4 now covers stock cPanel EA4 too (originally CL-only — the cl-ea4
# branch was retired 2026-06-12; nginx-modules cohort no longer carries it).
# failure_tolerance lowered 1.0 -> 0.0 on 2026-06-20 after the cohort
# fix landed (yml2spec fdedddc/267e58f/52e70e7/cdb3d55 + nginx-extras
# 1362e0e) brought el7/el8/el9 ea4 cells from 21/16/15 failures to 0.
# myci build #99 (btgx3x0-544421) on SHA 1ccef90 verified 0 failures.
failure_tolerance: "0.0"
only_dists:
- "el7"
- "el8"
- "el9"
only_archs:
- x86_64
# freenginx-stable removed 2026-06-12 — we don't build it.
# If you ever add it back, also wire a getpagespeed-extras-release
# repo id (the stable channel never had one).
freenginx-mainline:
description: "FreeNGINX Mainline"
# Ships as [getpagespeed-freenginx-mainline] in getpagespeed-extras.repo —
# the one channel whose repo id predates the getpagespeed-extras-<branch>
# convention. dnf config-manager hard-fails on the conventional id.
enable_repos: getpagespeed-freenginx-mainline
varnish:
branches:
varnish60:
description: "Varnish 6.0 LTS"
corecare:
branches:
corecare:
description: "CoreCare maintained LTS Linux kernel for EL7"
only_dists:
- "el7"
only_archs:
- x86_64