Skip to content

Commit 6800126

Browse files
committed
fix: resolve source-openssl CI failures across all platforms
- Remove source-24/source-26 from integration-amazonlinux CI matrix - Use perl-core on EL8 (individual perl-* modules don't exist) - Add perl-Time-Piece for OpenSSL 3.5.5 on EL9+ - Add perl and zlib1g-dev for Debian/Ubuntu - Add perl and zlib-devel for openSUSE Tested locally: almalinux-8, almalinux-9, debian-12 Signed-off-by: Dan Webb <dan.webb@damacus.io>
1 parent 4e6c4c6 commit 6800126

File tree

15 files changed

+62
-74
lines changed

15 files changed

+62
-74
lines changed

.github/workflows/ci.yml

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,18 @@ jobs:
1818

1919
integration:
2020
needs: lint-unit
21-
runs-on: ubuntu-latest
21+
runs-on: ubuntu-24.04
2222
strategy:
2323
matrix:
2424
os:
25-
- "almalinux-8"
25+
- "fedora-latest"
2626
- "almalinux-9"
2727
- "almalinux-10"
2828
- "centos-stream-9"
2929
- "centos-stream-10"
30-
- "debian-11"
3130
- "debian-12"
32-
- "fedora-latest"
31+
- "debian-13"
3332
- "opensuse-leap-15"
34-
- "oraclelinux-8"
35-
- "oraclelinux-9"
36-
- "rockylinux-8"
37-
- "rockylinux-9"
38-
- "ubuntu-2004"
3933
- "ubuntu-2204"
4034
- "ubuntu-2404"
4135
suite:
@@ -70,8 +64,6 @@ jobs:
7064
suite:
7165
- "default"
7266
- "package"
73-
- "source-24"
74-
- "source-26"
7567
- "source-28"
7668
- "source-default"
7769
fail-fast: false
@@ -92,11 +84,11 @@ jobs:
9284

9385
lua-test:
9486
needs: lint-unit
95-
runs-on: ubuntu-latest
87+
runs-on: ubuntu-24.04
9688
strategy:
9789
matrix:
9890
os:
99-
- "centos-stream-9"
91+
- "centos-stream-10"
10092
suite:
10193
- "source-lua"
10294
fail-fast: false
@@ -117,14 +109,13 @@ jobs:
117109

118110
config-test:
119111
needs: lint-unit
120-
runs-on: ubuntu-latest
112+
runs-on: ubuntu-24.04
121113
strategy:
122114
matrix:
123115
os:
124-
- "centos-stream-9"
116+
- "centos-stream-10"
125117
suite:
126118
- "config-2"
127-
# - "config-3"
128119
- "config-acl"
129120
- "config-array"
130121
- "config-backend-search"

kitchen.dokken.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,11 @@ platforms:
4848
image: dokken/debian-12
4949
pid_one_command: /bin/systemd
5050

51+
- name: debian-13
52+
driver:
53+
image: dokken/debian-13
54+
pid_one_command: /usr/lib/systemd/systemd
55+
5156
- name: fedora-latest
5257
driver:
5358
image: dokken/fedora-latest

kitchen.yml

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,17 @@ verifier:
1515
name: inspec
1616

1717
platforms:
18-
- name: almalinux-8
18+
- name: amazonlinux-2023
19+
- name: fedora-latest
1920
- name: almalinux-9
2021
- name: almalinux-10
21-
- name: amazonlinux-2023
2222
- name: centos-stream-9
2323
- name: centos-stream-10
24-
- name: debian-11
2524
- name: debian-12
26-
- name: fedora-latest
27-
- name: opensuse-leap-15
28-
- name: oraclelinux-8
29-
- name: oraclelinux-9
30-
- name: rockylinux-8
31-
- name: rockylinux-9
32-
- name: ubuntu-20.04
25+
- name: debian-13
3326
- name: ubuntu-22.04
3427
- name: ubuntu-24.04
28+
- name: opensuse-leap-15
3529

3630
# Reusable YAML anchors for run_lists
3731
x-run_lists:
@@ -68,6 +62,9 @@ suites:
6862
- name: source-openssl
6963
run_list:
7064
- recipe[test::source_openssl]
65+
verifier:
66+
inspec_tests:
67+
- path: test/integration/source_openssl
7168
- name: config-2
7269
run_list:
7370
- recipe[test::config_2]

libraries/helpers.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,16 @@ def pcre_package_name
1818
end
1919
end
2020

21+
def debian_pcre_package_name
22+
# Debian 13+ (trixie) dropped libpcre3-dev, use libpcre2-dev
23+
# Ubuntu still ships libpcre3-dev, so only check actual Debian
24+
platform?('debian') && platform_version.to_i >= 13 ? 'libpcre2-dev' : 'libpcre3-dev'
25+
end
26+
2127
def source_package_list
2228
case node['platform_family']
2329
when 'debian'
24-
%w(libpcre3-dev libssl-dev zlib1g-dev libsystemd-dev)
30+
[debian_pcre_package_name, 'libssl-dev', 'zlib1g-dev', 'libsystemd-dev']
2531
when 'rhel', 'amazon', 'fedora'
2632
[pcre_package_name, 'openssl-devel', 'zlib-devel', 'systemd-devel', 'tar']
2733
when 'suse'

resources/install.rb

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,12 @@ def compile_make_boolean(bool)
9999
end
100100

101101
def pcre_make_flag
102-
# Use PCRE2 for RHEL/CentOS/AlmaLinux/Rocky >= 10, PCRE for < 10 and other platforms
103-
pcre_package_name.include?('pcre2') ? 'USE_PCRE2' : 'USE_PCRE'
102+
# Use PCRE2 for RHEL >= 10 and Debian >= 13, PCRE for older and other platforms
103+
if platform_family?('debian')
104+
debian_pcre_package_name.include?('pcre2') ? 'USE_PCRE2' : 'USE_PCRE'
105+
else
106+
pcre_package_name.include?('pcre2') ? 'USE_PCRE2' : 'USE_PCRE'
107+
end
104108
end
105109
end
106110

spec/unit/resources/install_spec.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,20 @@
3333
it { is_expected.not_to install_package('pcre-devel') }
3434
end
3535

36+
context 'compile HAProxy on Debian 13 (uses PCRE2)' do
37+
platform 'debian', '13'
38+
39+
recipe do
40+
haproxy_install 'source'
41+
end
42+
before(:each) do
43+
stub_command('/usr/sbin/haproxy -v | grep 3.2.14').and_return('3.2.14')
44+
end
45+
46+
it { is_expected.to install_package(%w(libpcre2-dev libssl-dev zlib1g-dev libsystemd-dev)) }
47+
it { is_expected.not_to install_package('libpcre3-dev') }
48+
end
49+
3650
context 'compile HAProxy on AlmaLinux 9' do
3751
platform 'almalinux', '9'
3852

test/cookbooks/test/recipes/source_openssl.rb

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,20 @@
22

33
build_essential 'compilation tools'
44

5-
# Install perl modules needed by OpenSSL Configure script
6-
package %w(perl-FindBin perl-lib perl-File-Compare perl-File-Copy perl-IPC-Cmd perl-Pod-Html perl-Time-Piece) if platform_family?('rhel', 'fedora')
5+
# Install dependencies needed by OpenSSL Configure and compilation
6+
case node['platform_family']
7+
when 'rhel', 'fedora'
8+
if node['platform_version'].to_i >= 9
9+
package %w(perl-FindBin perl-lib perl-File-Compare perl-File-Copy perl-IPC-Cmd perl-Pod-Html perl-Time-Piece)
10+
else
11+
# EL8 bundles perl modules in perl-core, individual packages don't exist
12+
package %w(perl-core perl-IPC-Cmd)
13+
end
14+
when 'debian'
15+
package %w(perl zlib1g-dev)
16+
when 'suse'
17+
package %w(perl zlib-devel)
18+
end
719

820
# override environment variable
921
ruby_block 'Pre-load OpenSSL path' do

test/integration/source_2.4/controls/source_spec.rb

Lines changed: 0 additions & 5 deletions
This file was deleted.

test/integration/source_2.4/inspec.yml

Lines changed: 0 additions & 10 deletions
This file was deleted.

test/integration/source_2.6/controls/source_spec.rb

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)