| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- # This workflow will install Python dependencies, run tests and lint with a variety of Python versions
- # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
- name: Python package
- on:
- push:
- tags:
- - '*released'
- workflow_dispatch:
- jobs:
- update-version:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout repository
- uses: actions/checkout@v4
- with:
- ref: master
- fetch-depth: 0
- - name: Set up Python
- uses: actions/setup-python@v5
- with:
- python-version: "3.10"
- - name: Update version.py
- run: |
- python update_version.py
- - name: Verify version.py
- run: |
- ls -l magic_pdf/libs/version.py
- cat magic_pdf/libs/version.py
- - name: Commit changes
- run: |
- git config --local user.email "moe@myhloli.com"
- git config --local user.name "myhloli"
- git add magic_pdf/libs/version.py
- if git diff-index --quiet HEAD; then
- echo "No changes to commit"
- else
- git commit -m "Update version.py with new version"
- fi
- id: commit_changes
- - name: Push changes
- if: steps.commit_changes.outcome == 'success'
- env:
- GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }}
- run: |
- git push origin HEAD:master
- build:
- needs: [ update-version ]
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- python-version: ["3.10"]
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
- with:
- ref: master
- fetch-depth: 0
- - name: Verify version.py
- run: |
- ls -l magic_pdf/libs/version.py
- cat magic_pdf/libs/version.py
- - name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v5
- with:
- python-version: ${{ matrix.python-version }}
- - name: Install dependencies
- run: |
- python -m pip install --upgrade pip
- if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- - name: Install wheel
- run: |
- python -m pip install wheel
- - name: Build wheel
- run: |
- python setup.py bdist_wheel
- - name: Upload artifact
- uses: actions/upload-artifact@v4
- with:
- name: wheel-file
- path: dist/*.whl
- retention-days: 30
- release:
- needs: [ build ]
- runs-on: ubuntu-latest
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
- - name: Download artifact
- uses: actions/download-artifact@v4
- with:
- name: wheel-file
- path: dist
- - name: Create and Upload Release
- id: create_release
- uses: softprops/action-gh-release@4634c16e79c963813287e889244c50009e7f0981
- with:
- files: './dist/*.whl'
- env:
- GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }}
- - name: Publish distribution to PyPI
- run: |
- pip install twine
- twine upload dist/* -u __token__ -p ${{ secrets.PYPI_TOKEN }}
|