image: python:latest stages: - lint - test - deploy before_script: - pip install poetry - poetry install --no-root lint: stage: lint script: - poetry run ruff check - poetry run ruff format --check test: stage: test script: - poetry run pytest -v --cov=. --cov-report=xml after_script: - bash <(curl -s https://codecov.io/bash) artifacts: reports: coverage_report: coverage_format: cobertura path: coverage.xml deploy_to_pypi: stage: deploy only: refs: - master changes: - pyproject.toml except: - tags script: - POETRY_PYPI_TOKEN_PYPI=$PYPI_PASSWORD poetry publish --build deploy_to_dockerhub: stage: deploy needs: - deploy_to_pypi only: refs: - master changes: - pyproject.toml - Dockerfile except: - tags image: docker:latest services: - docker:dind before_script: - docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD - docker buildx create --use script: - docker buildx build --push --tag rogsme/subscleaner:latest .