Files
fzarifian 54287ad9a0
CI / lint (push) Failing after 1m53s
CI / matrix (push) Failing after 12s
CI / test (push) Has been skipped
feat(ci): add multi-platform CI testing via Docker
Add CI infrastructure that tests the Ansible role on every distro
declared in meta/main.yml (EL 8/9, Debian bullseye/bookworm,
Ubuntu focal/jammy/noble) using Docker containers.

- ci/build_matrix.py: parse meta/main.yml platforms into JSON matrix
- ci/test_playbook.yml: test playbook (state=present + validate)
- ci/Dockerfile.el, ci/Dockerfile.debian: per-family Docker images
- Makefile: orchestrator (make test, make test-<slug>, make lint)
- .gitea/workflows/ci.yml: Gitea Actions with dynamic matrix
- .gitlab-ci.yml: GitLab CI pipeline
- Jenkinsfile: Jenkins pipeline with parallel stages
- .yamllint.yml: linter configuration
- .dockerignore: exclude .git and CI configs from Docker context
2026-04-14 00:17:42 +02:00

44 lines
956 B
YAML

---
name: CI
on:
push:
branches: ["*"]
pull_request:
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install linters
run: pip install ansible-lint yamllint
- name: Lint
run: make lint
matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.build.outputs.matrix }}
steps:
- uses: actions/checkout@v4
- name: Install PyYAML
run: pip install pyyaml
- name: Build matrix
id: build
run: echo "matrix=$(python3 ci/build_matrix.py)" >> "$GITHUB_OUTPUT"
test:
needs: [lint, matrix]
runs-on: ubuntu-latest
strategy:
matrix:
include: ${{ fromJson(needs.matrix.outputs.matrix) }}
fail-fast: false
steps:
- uses: actions/checkout@v4
- name: Install PyYAML
run: pip install pyyaml
- name: Test ${{ matrix.slug }}
run: make test-${{ matrix.slug }}