Skip to content

Commit

Permalink
Feature/continuous delivery (#12)
Browse files Browse the repository at this point in the history
* added setuptools section in .toml file

* deleted setup.cfg file as it no more needed

* fixed visiumlint command and added dependencies on pyproject.toml file

* added MAJOR_UPDATE env variable

* made workflow dispatch available on this branch

* added cd.yaml

* modified name of branch from 'master' to 'main' in ci.yml

---------

Co-authored-by: Pascal Epple <[email protected]>
  • Loading branch information
epplepascal and Pascal Epple authored Oct 2, 2023
1 parent 2a71891 commit 383b3de
Show file tree
Hide file tree
Showing 4 changed files with 81 additions and 21 deletions.
67 changes: 67 additions & 0 deletions .github/workflows/cd.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@

name: CD Pipeline

on:
push:
branches: [ main ]
workflow_dispatch:
inputs:
major_update:
description: 'Set it to true to bump a major version'
required: false
default: false
type: choice
options:
- true
- false

jobs:
publish-to-pypi:
runs-on: ubuntu-latest
steps:
- name: Clone the repository with full history depth to retrieve all tags
uses: actions/checkout@v3
with:
fetch-depth: 0

- uses: actions/setup-python@v4
with:
python-version: 3.9

- run: |
python -m pip install --upgrade pip
python -m pip install --upgrade setuptools wheel
python -m pip install --upgrade twine
python -m pip install --upgrade setuptools_scm
python -m pip install --upgrade build
python -m pip install --upgrade semver
- name: Increment the git tag
run: |
# get the current git tag
CURRENT_TAG=$(git describe --tags --abbrev=0)
if [ "${{inputs.major_update}}" == "true" ]; then
# Increment the tag by a major version with the semver python package
NEW_TAG=$(python -c "import semver; print(semver.bump_major('$CURRENT_TAG'))")
else
# Increment the tag by a minor version with the semver python package
NEW_TAG=$(python -c "import semver; print(semver.bump_minor('$CURRENT_TAG'))")
fi
git tag $NEW_TAG
# push the tag to the remote repository
git push origin $NEW_TAG
- name: Retrieve the package version using setuptools_scm and publish to PyPI
run: |
# Use setuptools_scm to get the current version and echo it
PACKAGE_VERSION=$(python -c "import setuptools_scm; print(setuptools_scm.get_version())")
echo "Package version: $PACKAGE_VERSION"
# Build the package using setuptools_scm for versioning
python -m build
# Publish the package to PyPI using twine
python -m twine upload dist/*
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: CI

on:
push:
branches: [ master ]
branches: [ main ]
pull_request:
branches: [ master ]
branches: [ main ]
workflow_dispatch:

jobs:
Expand Down
15 changes: 12 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,9 +1,18 @@

[project]
name = "visiumlint"
dynamic = ["version"]
description = "All of your favorite linters and formatters gathered in a single command."
dependencies = ["black", "isort", "mypy", "pydocstyle", "pylint", "typer"]

[build-system]
requires = ["setuptools"]
requires = ["setuptools>=45", "setuptools_scm[toml]>=6.2"]
build-backend = "setuptools.build_meta"

[project.scripts]
visiumlint = "visiumlint.main:main"

[tool.setuptools_scm]

[tool.black]
line-length = 120

Expand All @@ -29,4 +38,4 @@ max-line-length = "200"

[tool.pydocstyle]
add-ignore = "D107, D104, D103"
convention = "google"
convention = "google"
16 changes: 0 additions & 16 deletions setup.cfg

This file was deleted.

0 comments on commit 383b3de

Please sign in to comment.