Skip to content

Commit 6bffacd

Browse files
authored
Merge pull request #19 from elabit/feat/os-centos
feat: add centos to the OS matrix
2 parents d0b442a + 4eba836 commit 6bffacd

41 files changed

Lines changed: 1095 additions & 55 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/run-suites.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -160,14 +160,15 @@ jobs:
160160
# ── Stage 3: os content type (provision + verify + report) ────────────────
161161
# Independent of the detect-changes/test pair above: exactly one job per OS
162162
# family, added deliberately one epic at a time (Story 1.5 adds debian;
163-
# Stories 2.2/3.2/4.2 each add one more matrix entry), never auto-detected
164-
# from a directory listing the way the examples/templates matrix is.
163+
# Stories 2.2/3.2/4.2 each add one more matrix entry; centos is a later
164+
# addition sharing the redhat family with rhel), never auto-detected from a
165+
# directory listing the way the examples/templates matrix is.
165166
os:
166167
runs-on: ubuntu-latest
167168
strategy:
168169
fail-fast: false
169170
matrix:
170-
slug: [debian, ubuntu, rhel, sles]
171+
slug: [debian, ubuntu, rhel, sles, centos]
171172

172173
steps:
173174
- uses: actions/checkout@v4

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ Proof that each target OS can be provisioned from a stock install (via Ansible,
9696

9797
| OS | Base Image | Repository Link |
9898
|---|---|---|
99+
| [centos](os/centos) | `quay.io/centos/centos:stream9` | [try out](https://github.com/robotmk/os-centos) |
99100
| [debian](os/debian) | `debian:13` | [try out](https://github.com/robotmk/os-debian) |
100101
| [rhel](os/rhel) | `rockylinux/rockylinux:10` | [try out](https://github.com/robotmk/os-rhel) |
101102
| [sles](os/sles) | `registry.suse.com/suse/sle15:15.7` | [try out](https://github.com/robotmk/os-sles) |

_dev/_ansible/roles/browser-deps/tasks/redhat.yml

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
- name: Install Chromium/Playwright system dependencies (Rocky Linux 10 / EL10 package names)
2+
- name: Install Chromium/Playwright system dependencies (RHEL-family / EL9+EL10 package names)
33
ansible.builtin.dnf:
44
name:
55
- alsa-lib
@@ -30,16 +30,19 @@
3030
state: present
3131
update_cache: true
3232

33-
- name: Record Rocky's missing Xvfb/emoji/unifont packages as a caveat, not a silent gap
33+
- name: Record this family's missing Xvfb/emoji/unifont packages as a caveat, not a silent gap
3434
ansible.builtin.set_fact:
3535
install_report_caveats:
3636
browser-deps:
3737
- >-
38-
Rocky Linux 10's base+AppStream repos do not provide Xvfb, Google
39-
Noto Color Emoji, or GNU Unifont (Noto Color Emoji is available via
40-
EPEL, which this role deliberately does not enable, to stay close
41-
to a stock install). Headless Chromium does not require Xvfb to
42-
launch, so this does not block verification, but pages relying on
43-
color emoji or Unifont's broad Unicode coverage may render with
44-
fallback glyphs. Liberation fonts and scalable X fonts ARE
45-
available here, unlike SLES's free BCI image.
38+
GNU Unifont is not available in this family's base+AppStream repos
39+
without enabling EPEL, which this role deliberately does not, to
40+
stay close to a stock install (verified on both Rocky Linux 10 and
41+
CentOS Stream 9). Xvfb and Google Noto Color Emoji availability
42+
varies by release: absent from Rocky Linux 10's repos (also
43+
EPEL-gated there), but present in CentOS Stream 9's AppStream.
44+
Headless Chromium does not require Xvfb to launch, so none of this
45+
blocks verification, but pages relying on color emoji or Unifont's
46+
broad Unicode coverage may render with fallback glyphs on Rocky.
47+
Liberation fonts and scalable X fonts ARE available on both, unlike
48+
SLES's free BCI image.

_dev/_os/centos/copier.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
_subdirectory: template
2+
_answers_file: .copier-answers.yml

_dev/_os/centos/populate.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
populate:
2+
- src: _dev/_ansible
3+
dst: .devcontainer/ansible
4+
exclude:
5+
- "*.pyc"
6+
- "__pycache__"
7+
8+
- src: templates/web-browserlibrary
9+
dst: tests/web-browserlibrary
10+
exclude:
11+
- "*.pyc"
12+
- "__pycache__"
13+
- "output"
14+
- "log.html"
15+
- "report.html"
16+
- "output.xml"
17+
- "browser"
18+
- "playwright-log.txt"
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# This file is managed by Copier.
2+
# Do NOT edit manually. To regenerate: task generate
3+
_src_path: {{ _copier_conf.src_path }}
4+
_commit: {{ _copier_conf.commit or 'none' }}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[defaults]
2+
callbacks_enabled = install_report
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"name": "os-centos",
3+
"image": "{{ centos_image }}",
4+
"customizations": {
5+
"vscode": {
6+
"extensions": [
7+
"ms-python.python",
8+
"d-biehl.robotcode",
9+
"redhat.ansible"
10+
]
11+
}
12+
},
13+
"onCreateCommand": "bash .devcontainer/oncreate.sh",
14+
"postCreateCommand": "bash .devcontainer/postcreate.sh"
15+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
- name: Provision OS environment
3+
hosts: localhost
4+
connection: local
5+
roles:
6+
- browser-deps

_dev/config/versions.env

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,5 @@ SLES_IMAGE=registry.suse.com/suse/sle15:15.7
2020
# rhel slug is a documented exception to the generic <SLUG-UPPER>_IMAGE
2121
# derivation: the key is RHEL_COMPAT_IMAGE, not RHEL_IMAGE, because the pinned
2222
# image is a RHEL-compatible substitute (Rocky Linux), not RHEL itself.
23-
RHEL_COMPAT_IMAGE=rockylinux/rockylinux:10
23+
RHEL_COMPAT_IMAGE=rockylinux/rockylinux:10
24+
CENTOS_IMAGE=quay.io/centos/centos:stream9

0 commit comments

Comments
 (0)