feat: Adds pipline automation

Adds pipline for versioning, buildign and publishing to pypi.
This commit is contained in:
Mr Finchum 2025-01-21 18:42:22 +00:00
parent a737d09e7c
commit f0e357e940
6 changed files with 48 additions and 11 deletions

View file

@ -1,10 +1,10 @@
--- ---
include: include:
- local: .gitlab-ci/versioning/gitversion.yml - local: .gitlab-ci/versioning/gitversion.yml
- local: .gitlab-ci/git/create_tag.yml - local: .gitlab-ci/git/create_tag.yml
stages: stages:
- build
- release - release
gitversion: gitversion:
@ -13,7 +13,44 @@ gitversion:
tags: tags:
- gitlab-org-docker - gitlab-org-docker
rules: 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: create_tag:
extends: .git:create_tag extends: .git:create_tag
@ -21,12 +58,12 @@ create_tag:
tags: tags:
- gitlab-org-docker - gitlab-org-docker
variables: variables:
VERSION: v$GitVersion_SemVer VERSION: $GitVersion_SemVer
TOKEN: $GITLAB_TOKEN TOKEN: $GITLAB_TOKEN
needs: needs:
- job: gitversion - job: gitversion
artifacts: true artifacts: true
rules: rules:
- if: $CI_COMMIT_TAG - if: $CI_COMMIT_TAG
when: never # Do not run this job when a tag is created manually 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 - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # Run this job when commits are pushed or merged to the default branch

View file

@ -1,5 +1,4 @@
--- ---
.versioning:gitversion: .versioning:gitversion:
image: image:
name: mcr.microsoft.com/dotnet/sdk:9.0 name: mcr.microsoft.com/dotnet/sdk:9.0
@ -25,6 +24,7 @@
grep 'GitVersion_Minor=' gitversion.properties >> gitversion.env grep 'GitVersion_Minor=' gitversion.properties >> gitversion.env
grep 'GitVersion_Patch=' gitversion.properties >> gitversion.env grep 'GitVersion_Patch=' gitversion.properties >> gitversion.env
grep 'GitVersion_MajorMinorPatch=' gitversion.properties >> gitversion.env grep 'GitVersion_MajorMinorPatch=' gitversion.properties >> gitversion.env
grep 'GitVersion_BuildMetaData=' gitversion.properties >> gitversion.env
artifacts: artifacts:
reports: reports:
# propagates variables into the pipeline level # propagates variables into the pipeline level

View file

@ -1,3 +1,5 @@
--- ---
mode: Mainline 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-,/\\\\]*\\))?:"

View file

@ -17,7 +17,7 @@ classifiers = [
] ]
[project.urls] [project.urls]
Homepage = "https://gitlab.com/CodeByMrFinchum/optima35" Source = "https://gitlab.com/CodeByMrFinchum/optima35"
[project.scripts] [project.scripts]
optima35 = "optima35.__main__:main" optima35 = "optima35.__main__:main"

View file

@ -1,2 +0,0 @@
piexif
pillow

View file

@ -1 +1 @@
__version__ = "0.6.4" __version__ = "0.0.1"