Skip to content

Commit

Permalink
[ci][client] Eth Python client automatically infer its version from tags
Browse files Browse the repository at this point in the history
  • Loading branch information
lpascal-ledger committed Jan 5, 2024
1 parent fa43cc9 commit de3be1c
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 49 deletions.
48 changes: 3 additions & 45 deletions .github/workflows/python-client.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ name: Python client checks, package build and deployment
on:
workflow_dispatch:
push:
tags:
- 'client-*'
branches:
- develop
- master
Expand Down Expand Up @@ -36,58 +38,14 @@ 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
uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_pypi_deployment.yml@v1
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 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ build/

# Python
*.pyc

__version__.py

# JS
tests/node_modules
Expand Down
8 changes: 6 additions & 2 deletions client/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
5 changes: 4 additions & 1 deletion client/src/ledger_app_clients/ethereum/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
__version__ = "0.2.0"
try:
from ledger_app_clients.ethereum.__version__ import __version__ # noqa
except ImportError:
__version__ = "unknown version" # noqa

0 comments on commit de3be1c

Please sign in to comment.