Skip to content

Release Python SDK

Release Python SDK #72

name: Release Python SDK
on:
workflow_dispatch:
inputs:
env:
default: 'test'
description: 'PyPi env'
required: true
type: choice
options:
- dev
- test
- prod
jobs:
release-version:
runs-on: ubuntu-latest
name: Release sdk
steps:
- id: checkout
name: Checkout repo
uses: actions/checkout@v3
with:
token: ${{ secrets.FATTUREINCLOUD_BOT_TOKEN }}
- id: init-git
name: Init GIT
run: |
git config --global user.email "[email protected]"
git config --global user.name "fattureincloud-bot"
- id: setup-node
name: Setup Node.js
uses: actions/setup-node@v3
- id: setup-python
name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: '3.9'
- id: install-dependencies
name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build
- id: setup-libraries
name: Install libraries
run: |
npm install -g yarn
yarn global add standard-version
sudo add-apt-repository ppa:rmescandon/yq -y
sudo apt update
sudo apt install yq -y
cd ./scripts/
yarn
# We read the version from the sdk-version.yaml file and create the tag
# If it is needed to bump version, launch the related workflow
- id: read-python-sdk-version
name: Read Python SDK version
run: |
SDK_VERSION=$(yq e '.info.version' ./sdk-version.yaml)
echo "Releasing version: $SDK_VERSION"
echo "sdk_version=$SDK_VERSION" >> $GITHUB_ENV
# Here we use standard-version just to generate the changelog
- id: generate-changelog
name: Generate Changelog
run: |
standard-version --skip.bump --skip.tag
- id: git-push
name: Pushing to Git repo
if: ${{ !env.ACT && github.event.inputs.env == 'prod' }}
run: |
git push origin
- id: save-commit-sha
name: Save latest commit sha
run: |
COMMIT_SHA=$(git rev-parse HEAD)
echo "commit_sha=$COMMIT_SHA" >> $GITHUB_ENV
- id: create-tag
name: Create tag
if: ${{ !env.ACT && github.event.inputs.env == 'prod' }}
uses: actions/github-script@v6
with:
github-token: ${{ github.token }}
script: |
github.rest.git.createRef({
owner: context.repo.owner,
repo: context.repo.repo,
ref: "refs/tags/v${{ env.sdk_version }}",
sha: "${{ env.commit_sha }}"
})
- id: build-package
name: Build package
run: >-
python -m
build
--sdist
--wheel
--outdir dist/
.
- id: skip-pypi-publish
name: Skipping publishing
if: ${{ env.ACT || github.event.inputs.env == 'dev' }}
run: |
echo "Skipping publishing"
- id: test-pypi-publish
name: Publish to Test PyPI
if: ${{ !env.ACT && github.event.inputs.env == 'test' }}
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
repository_url: https://test.pypi.org/legacy/
- id: pypi-publish
name: Publish to PyPI
if: ${{ !env.ACT && github.event.inputs.env == 'prod' }}
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PYPI_API_TOKEN }}