stages: - linting - testing - build - staging - production default: image: python:3.12-alpine pre_commit: stage: linting script: - apk add git - pip install --root-user-action ignore pre-commit - pre-commit run -a build_image: stage: build image: docker services: - docker variables: COMPOSE_FILE: docker-compose.build.yml before_script: - docker login ${CI_REGISTRY} -u gitlab-ci-token -p ${CI_JOB_TOKEN} script: - docker compose build - docker compose push - | if [[ -n "${CI_COMMIT_TAG}" ]]; then docker tag ${CI_REGISTRY_IMAGE}/facturio:${CI_COMMIT_REF_NAME} ${CI_REGISTRY_IMAGE}/facturio:${CI_COMMIT_TAG} docker push ${CI_REGISTRY_IMAGE}/facturio:${CI_COMMIT_TAG} fi