From f0e357e940245ac0f1f15292aa5e6ace74f8f0ab Mon Sep 17 00:00:00 2001 From: Mr Finchum Date: Tue, 21 Jan 2025 18:42:22 +0000 Subject: [PATCH] feat: Adds pipline automation Adds pipline for versioning, buildign and publishing to pypi. --- .gitlab-ci.yml | 47 +++++++++++++++++++++++++--- .gitlab-ci/versioning/gitversion.yml | 2 +- Gitversion.yml | 4 ++- pyproject.toml | 2 +- requirements.txt | 2 -- src/optima35/__init__.py | 2 +- 6 files changed, 48 insertions(+), 11 deletions(-) delete mode 100644 requirements.txt diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cd116fe..363a744 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,10 +1,10 @@ --- - include: - local: .gitlab-ci/versioning/gitversion.yml - local: .gitlab-ci/git/create_tag.yml stages: + - build - release gitversion: @@ -13,7 +13,44 @@ gitversion: 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 + - 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 @@ -21,12 +58,12 @@ create_tag: tags: - gitlab-org-docker variables: - VERSION: v$GitVersion_SemVer + 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 + 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 diff --git a/.gitlab-ci/versioning/gitversion.yml b/.gitlab-ci/versioning/gitversion.yml index 5391fdf..dbbc149 100644 --- a/.gitlab-ci/versioning/gitversion.yml +++ b/.gitlab-ci/versioning/gitversion.yml @@ -1,5 +1,4 @@ --- - .versioning:gitversion: image: name: mcr.microsoft.com/dotnet/sdk:9.0 @@ -25,6 +24,7 @@ grep 'GitVersion_Minor=' gitversion.properties >> gitversion.env grep 'GitVersion_Patch=' gitversion.properties >> gitversion.env grep 'GitVersion_MajorMinorPatch=' gitversion.properties >> gitversion.env + grep 'GitVersion_BuildMetaData=' gitversion.properties >> gitversion.env artifacts: reports: # propagates variables into the pipeline level diff --git a/Gitversion.yml b/Gitversion.yml index 165f995..907c4c5 100644 --- a/Gitversion.yml +++ b/Gitversion.yml @@ -1,3 +1,5 @@ --- - mode: Mainline +major-version-bump-message: "^(build|chore|ci|docs|feat|fix|patch|refactor|revert|style|test)(\\([\\w\\s-,/\\\\]*\\))?(!:|:.*\\n\\n((.+\\n)+\\n)?BREAKING CHANGE:\\s.+)" # noqa yaml[line-length] +minor-version-bump-message: "^(build|chore|ci|docs|feat|refactor|revert|style|test)(\\([\\w\\s-,/\\\\]*\\))?:" +patch-version-bump-message: "^(fix|patch)(\\([\\w\\s-,/\\\\]*\\))?:" diff --git a/pyproject.toml b/pyproject.toml index b6e50a1..2f7e4bf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,7 +17,7 @@ classifiers = [ ] [project.urls] -Homepage = "https://gitlab.com/CodeByMrFinchum/optima35" +Source = "https://gitlab.com/CodeByMrFinchum/optima35" [project.scripts] optima35 = "optima35.__main__:main" diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 357cdbd..0000000 --- a/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -piexif -pillow diff --git a/src/optima35/__init__.py b/src/optima35/__init__.py index 364e7ba..f102a9c 100644 --- a/src/optima35/__init__.py +++ b/src/optima35/__init__.py @@ -1 +1 @@ -__version__ = "0.6.4" +__version__ = "0.0.1"