X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/125ed5b2601f0e74ded03b666132e3c37ae8af07..6ae8457a8628345c59fed22c58728ffa258a3e76:/.github/workflows/pypi_upload.yml?ds=sidebyside diff --git a/.github/workflows/pypi_upload.yml b/.github/workflows/pypi_upload.yml index 5df91d9..d52f41a 100644 --- a/.github/workflows/pypi_upload.yml +++ b/.github/workflows/pypi_upload.yml @@ -1,31 +1,95 @@ -name: pypi_upload +name: Publish to PyPI on: release: - types: created + types: [published] + +permissions: + contents: read jobs: - build: - name: PyPI Upload + main: + name: sdist + pure wheel runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - - name: Set up Python - uses: actions/setup-python@v2 + - name: Set up latest Python + uses: actions/setup-python@v4 + with: + python-version: "*" - - name: Install latest pip, setuptools, twine + wheel + - name: Install latest pip, build, twine run: | - python -m pip install --upgrade pip setuptools twine wheel + python -m pip install --upgrade --disable-pip-version-check pip + python -m pip install --upgrade build twine - - name: Build wheels - run: | - python setup.py bdist_wheel - python setup.py sdist + - name: Build wheel and source distributions + run: python -m build - name: Upload to PyPI via Twine env: TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }} + run: twine upload --verbose -u '__token__' dist/* + + mypyc: + name: mypyc wheels (${{ matrix.name }}) + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-latest + name: linux-x86_64 + - os: windows-2019 + name: windows-amd64 + - os: macos-11 + name: macos-x86_64 + macos_arch: "x86_64" + - os: macos-11 + name: macos-arm64 + macos_arch: "arm64" + - os: macos-11 + name: macos-universal2 + macos_arch: "universal2" + + steps: + - uses: actions/checkout@v3 + + - name: Build wheels via cibuildwheel + uses: pypa/cibuildwheel@v2.8.1 + env: + CIBW_ARCHS_MACOS: "${{ matrix.macos_arch }}" + # This isn't supported in pyproject.toml which makes sense (but is annoying). + CIBW_PROJECT_REQUIRES_PYTHON: ">=3.6.2" + + - name: Upload wheels as workflow artifacts + uses: actions/upload-artifact@v2 + with: + name: ${{ matrix.name }}-mypyc-wheels + path: ./wheelhouse/*.whl + + - name: Upload wheels to PyPI via Twine + env: + TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }} + run: pipx run twine upload --verbose -u '__token__' wheelhouse/*.whl + + update-stable-branch: + name: Update stable branch + needs: [main, mypyc] + runs-on: ubuntu-latest + permissions: + contents: write + + steps: + - name: Checkout stable branch + uses: actions/checkout@v3 + with: + ref: stable + fetch-depth: 0 + + - name: Update stable branch to release tag & push run: | - twine upload --verbose -u '__token__' dist/* + git reset --hard ${{ github.event.release.tag_name }} + git push