[ci][client] Eth Python client automatically infer its version from tags

This commit is contained in:
Lucas PASCAL
2024-01-05 16:42:58 +01:00
parent b5e0c8759b
commit 99ba4a9eed
4 changed files with 14 additions and 49 deletions

View File

@@ -4,6 +4,8 @@ name: Python client checks, package build and deployment
on:
workflow_dispatch:
push:
tags:
- 'client-*'
branches:
- develop
- master
@@ -36,50 +38,6 @@ jobs:
- name: Mypy type checking
run: (cd client && mypy src/)
get-develop-version:
name: Get develop version
runs-on: ubuntu-latest
if: ${{ github.event_name == 'pull_request' && github.base_ref == 'develop' }}
outputs:
develop_version: ${{ steps.get-version.outputs.develop_version }}
steps:
- name: Check Out Code
uses: actions/checkout@v3
with:
ref: develop
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.12.0
- name: Get version
id: get-version
env:
PYTHONPATH: client/src/ledger_app_clients
run: |
echo "develop_version=$(python -c 'from ethereum import __version__; print(__version__)')" >> $GITHUB_OUTPUT
version-check:
name: Check Version when opening a PR against develop
runs-on: ubuntu-latest
needs: get-develop-version
steps:
- name: Check Out Code
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.12.0
- name: Check Version Bump
env:
DEVELOP_VERSION: ${{needs.get-develop-version.outputs.develop_version}}
PYTHONPATH: client/src/ledger_app_clients
run: |
current_version=$(python -c "from ethereum import __version__; print(__version__)")
if [[ "$current_version" == "$DEVELOP_VERSION" ]]; then
echo "Version in __init__.py hasn't been bumped. Please bump the version before merging."
exit 1
fi
packaging:
needs: [lint, mypy]
name: Build, test and deploy the Python package
@@ -87,7 +45,7 @@ jobs:
with:
package_directory: "client/"
stable_deployment: true
check_changelog_version: true
check_changelog_version: ${{ startsWith(github.ref,'refs/tags/') }}
publish: ${{ github.event_name == 'push' }}
secrets:
pypi_token: secrets.PYPI_PUBLIC_API_TOKEN

2
.gitignore vendored
View File

@@ -9,7 +9,7 @@ build/
# Python
*.pyc
__version__.py
# JS
tests/node_modules

View File

@@ -34,8 +34,12 @@ dependencies = [
[tools.setuptools]
include-package-data = true
[tool.setuptools.dynamic]
version = {attr = "ledger_app_clients.ethereum.__version__"}
[tool.setuptools_scm]
version_file = "src/ledger_app_clients/ethereum/__version__.py"
local_scheme = "no-local-version"
root = "../"
git_describe_command = "git describe --dirty --tags --long --match client-*[0-9]*"
fallback_version = "0.0.0"
[project.urls]
Home = "https://github.com/LedgerHQ/app-ethereum"

View File

@@ -1 +1,4 @@
__version__ = "0.2.0"
try:
from ledger_app_clients.ethereum.__version__ import __version__ # noqa
except ImportError:
__version__ = "unknown version" # noqa