Lars Talian
fix(ci): guard compose validation when no compose file is committed
8fcf8b7
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v4
with:
version: "latest"
- name: Set up Python 3.11
run: uv python install 3.11
- name: Install dependencies
run: uv sync --all-extras
- name: Run tests
run: uv run pytest tests/ -v --tb=short
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v4
with:
version: "latest"
- name: Set up Python 3.11
run: uv python install 3.11
- name: Install dependencies
run: uv sync --all-extras
- name: Check Python syntax
run: uv run python -m py_compile src/open_range/server/app.py
- name: Validate YAML manifests
run: uv run python -c "import yaml; yaml.safe_load(open('manifests/tier1_basic.yaml'))"
docker-build:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v4
- name: Validate compose files (if present)
run: |
mapfile -t compose_files < <(
find . -maxdepth 4 -type f \
\( -name "docker-compose.yml" -o -name "docker-compose.yaml" -o -name "compose.yml" -o -name "compose.yaml" \)
)
if [ "${#compose_files[@]}" -eq 0 ]; then
echo "No committed compose file found; skipping static compose validation."
exit 0
fi
for compose_file in "${compose_files[@]}"; do
echo "Validating ${compose_file}"
docker compose -f "${compose_file}" config --quiet
done
- name: Verify Dockerfiles parse correctly
run: |
for f in docker/*.Dockerfile src/open_range/server/Dockerfile; do
echo "Checking $f ..."
docker buildx build --check -f "$f" "${f%/*}" 2>/dev/null || echo " (buildx --check not supported, skipping)"
done