--- include: - local: .gitlab-ci/versioning/gitversion.yml - local: .gitlab-ci/git/create_tag.yml stages: - build - release gitversion: extends: .versioning:gitversion stage: .pre tags: - gitlab-org-docker rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Run this job when commits are pushed or merged to the default branch build: stage: build image: python:3.9.21 tags: - gitlab-org-docker rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Run this job when commits are pushed or merged to the default branch needs: - job: gitversion artifacts: true script: - sed -i "s/0.0.1/${GitVersion_MajorMinorPatch}/" src/optima35/__init__.py - cat src/optima35/__init__.py - python3 -m pip install build - python3 -m build artifacts: paths: - dist/* expire_in: 1 day publish: stage: release image: python:3.9.21 tags: - gitlab-org-docker rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Run this job when commits are pushed or merged to the default branch variables: TWINE_USERNAME: "__token__" TWINE_PASSWORD: $TWINE_API needs: - job: build artifacts: true script: - python3 -m pip install twine - python3 -m twine upload dist/* create_tag: extends: .git:create_tag stage: release tags: - gitlab-org-docker variables: VERSION: $GitVersion_SemVer TOKEN: $GITLAB_TOKEN needs: - job: gitversion artifacts: true rules: - if: $CI_COMMIT_TAG when: never # Do not run this job when a tag is created manually - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Run this job when commits are pushed or merged to the default branch