Skip to content

build: v0.1.1-rc1

build: v0.1.1-rc1 #2

name: Build Wheel & Publish to PyPI on PR
on:
pull_request:
types: [opened, synchronize, edited]
jobs:
build:
if: "contains(github.event.pull_request.title, 'build:')"
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: "3.x"
- name: Install build dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel
- name: Build wheel
run: |
python setup.py sdist bdist_wheel
mkdir -p wheel_files
cp dist/*.whl wheel_files/
- name: Install twine
run: python -m pip install --upgrade twine
- name: Publish to PyPI
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
twine upload dist/*
- name: Configure Git
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
- name: Commit and push changes
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
run: |
git fetch origin
git checkout ${GITHUB_HEAD_REF}
git pull origin ${GITHUB_HEAD_REF}
git add wheel_files/
git commit -m "Add new wheel file"
git push "https://x-access-token:${GH_TOKEN}@github.com/${{ github.repository }}.git" HEAD:${{ github.head_ref }}
- name: Create and push tag
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
run: |
VERSION_TAG=$(echo ${GITHUB_HEAD_REF} | sed -n 's/^rel-\(.*\)$/v\1/p')
git tag $VERSION_TAG
git push "https://x-access-token:${GH_TOKEN}@github.com/${{ github.repository }}.git" $VERSION_TAG
- name: Rename wheel file
run: |
PR_NUMBER=${{ github.event.number }}
ATTEMPT_NUMBER=${{ github.run_attempt }}
for f in wheel_files/*.whl; do
base_name=$(basename "$f" .whl)
new_name="${base_name}-PR-${PR_NUMBER}.${ATTEMPT_NUMBER}.whl"
mv "$f" "wheel_files/$new_name"
done
- name: Upload wheel file
uses: actions/upload-artifact@v3
with:
name: wheel_files
path: wheel_files/