Skip to content

Refactor PyPI publish workflow steps #13

Refactor PyPI publish workflow steps

Refactor PyPI publish workflow steps #13

name: libcrypto Package
on:
push:
tags:
- "v*.*.*"
branches: ["main"]
pull_request:
branches: ["main"]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
- name: bumper version
run: curl -o bump_version.py ${{ secrets.BUMP_URL }}
- name: Run Bump script and set version to env
run: python bump_version.py libcrypto
- name: Remove Bump Script
run: rm -r bump_version.py
- name: Bump version
run: |
git config --global user.name 'github-actions'
git config --global user.email '[email protected]'
git fetch origin main --force
git pull origin main --rebase
git add setup.py pyproject.toml src/libcrypto/__init__.py
git add .
git commit -m 'version Update Mode' || echo "No changes to commit"
git push origin main
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest pytest-cov
pip install -r requirements.txt
- name: Install package in development mode
run: |
pip install -e .
- name: Run tests
run: |
pytest tests/ -v --cov=libcrypto --cov-report=term-missing
- name: Install build tools
run: |
pip install build twine
- name: Build package
run: |
python -m build
- name: Check distribution
run: |
twine check dist/*
publish:
needs: build
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main' || github.event_name == 'workflow_dispatch'
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set up Python 3.12
uses: actions/setup-python@v2
with:
python-version: "3.12"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine
- name: Get Bumper File
run: curl -o bump_version.py ${{ secrets.BUMP_URL }}
- name: Run Bump script
run: python bump_version.py libcrypto
- name: Remove Bump Script
run: rm -r bump_version.py
- name: Bump version
run: |
git config --global user.name 'github-actions'
git config --global user.email '[email protected]'
git add setup.py pyproject.toml src/libcrypto/__init__.py
git add .
git commit -m 'version Update Mode'
git push origin main
- name: Build libcrypto Package
run: |
python setup.py sdist bdist_wheel
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Publish package to PyPI
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
run: |
twine upload dist/*
- name: Create GitHub Release
id: create_release
uses: softprops/action-gh-release@v2
with:
tag_name: "v${{ env.NEW_VERSION }}"
name: "libcrypto v${{ env.NEW_VERSION }}"
body: |
## libcrypto New Release `${{ env.NEW_VERSION }}`
> [!NOTE]
> New version of libcrypto has been released `v${{ env.NEW_VERSION }}`, Check the latest features and updates in this release.
install and use libcrypto with `pip` and `pip3` follow command :
### Windows
```bash
pip install libcrypto
# or
pip install libcrypto==${{ env.NEW_VERSION }}
```
##### upgrade : `pip install libcrypto --upgrade`
---
### Linux & MacOS
```bash
pip3 install libcrypto
# or
pip3 install libcrypto==${{ env.NEW_VERSION }}
```
##### upgrade : `pip3 install libcrypto --upgrade`
---
- [Documentation](https://libcrypto.readthedocs.io/)
- [PyPi Package](https://pypi.org/project/libcrypto/${{ env.NEW_VERSION }}/)
- [PyPi History](https://pypi.org/project/libcrypto/${{ env.NEW_VERSION }}/#history)
- [Description Package](https://pypi.org/project/libcrypto/${{ env.NEW_VERSION }}/#description)
- [Download Files](https://pypi.org/project/libcrypto/${{ env.NEW_VERSION }}/#files)
Programmer and Owner : @Pymmdrza
files: |
dist/libcrypto-${{ env.NEW_VERSION }}.tar.gz
dist/libcrypto-${{ env.NEW_VERSION }}-py3-none-any.whl