60 lines
1.6 KiB
YAML
60 lines
1.6 KiB
YAML
name: ci
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
validate:
|
|
runs-on: ubuntu
|
|
|
|
steps:
|
|
# Checkout repository source code
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
# Install system dependencies required for CI
|
|
- name: Install system dependencies
|
|
run: |
|
|
apt-get update
|
|
apt-get install -y python3 python3-venv ansible docker.io
|
|
|
|
# Create isolated Python environment and install tools
|
|
# This avoids breaking system Python (PEP 668 compliant)
|
|
- name: Setup Python virtual environment
|
|
run: |
|
|
python3 -m venv .venv
|
|
. .venv/bin/activate
|
|
pip install --upgrade pip
|
|
pip install ansible-lint molecule molecule-plugins[docker]
|
|
|
|
# Basic Python syntax validation
|
|
- name: Python syntax check
|
|
run: |
|
|
find migration-validation-framework -name "*.py" -exec python3 -m py_compile {} \;
|
|
|
|
# Run Ansible lint using virtual environment
|
|
- name: Ansible lint
|
|
run: |
|
|
. .venv/bin/activate
|
|
cd enterprise-infra-simulator
|
|
ansible-lint
|
|
|
|
# Validate Ansible playbook syntax
|
|
- name: Ansible syntax check
|
|
run: |
|
|
cd enterprise-infra-simulator
|
|
ansible-playbook --syntax-check playbooks/*.yml
|
|
|
|
# Validate Docker Compose configuration
|
|
- name: Docker Compose validation
|
|
run: |
|
|
docker compose -f observability-stack/docker-compose.yml config
|
|
|
|
# Run Molecule tests using virtual environment
|
|
- name: Molecule test
|
|
run: |
|
|
. .venv/bin/activate
|
|
cd enterprise-infra-simulator
|
|
molecule test
|