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