Files
ETPlot/.gitlab-ci.yml
T
2025-09-08 15:06:45 +02:00

62 lines
1.5 KiB
YAML

# GitLab CI/CD Pipeline for Gallery Generator
# Builds Apptainer container and runs tests inside it
stages:
- build
- test
variables:
CONTAINER_IMAGE: "gallery-generator.sif"
# Cache to speed up builds
cache:
key: "$CI_COMMIT_REF_SLUG"
paths:
- .apptainer-cache/
# Build the Apptainer container
build:container:
stage: build
image: quay.io/singularity/singularity:v3.8.7
script:
- echo "Building Apptainer container..."
- singularity --version
- singularity build --fakeroot $CONTAINER_IMAGE Singularity.def
- ls -lh $CONTAINER_IMAGE
artifacts:
paths:
- $CONTAINER_IMAGE
expire_in: 1 hour
# Run tests inside the container
test:pytest:
stage: test
image: quay.io/singularity/singularity:v3.8.7
dependencies:
- build:container
script:
- echo "Running pytest inside container..."
- singularity exec $CONTAINER_IMAGE pytest /src/tests/ -v
artifacts:
when: always
# Run tests with coverage
test:coverage:
stage: test
image: quay.io/singularity/singularity:v3.8.7
dependencies:
- build:container
script:
- echo "Running coverage analysis inside container..."
- singularity exec $CONTAINER_IMAGE pytest /src/tests/ --cov=/src --cov-report=xml --cov-report=term
- singularity exec $CONTAINER_IMAGE cat /src/coverage.xml > coverage.xml || echo "No coverage.xml found"
coverage: '/TOTAL.*\s+(\d+%)$/'
artifacts:
reports:
coverage_report:
coverage_format: cobertura
path: coverage.xml
paths:
- coverage.xml
expire_in: 30 days