diff --git a/.github/workflows/pypi.yaml b/.github/workflows/pypi.yaml new file mode 100644 index 0000000..97e7f1e --- /dev/null +++ b/.github/workflows/pypi.yaml @@ -0,0 +1,57 @@ +name: pypi + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +permissions: + id-token: write + +jobs: + build-linux: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.10' + cache: 'pip' + - run: | + pip install auditwheel patchelf + pip wheel . -w wheel + auditwheel repair -w dist --plat=manylinux_2_17_x86_64 wheel/*.whl + - uses: actions/upload-artifact@v4 + with: + name: python-package-linux + path: dist/*.whl + + build-macos: + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.10' + cache: 'pip' + - run: | + pip wheel . -w dist + - uses: actions/upload-artifact@v4 + with: + name: python-package-macos + path: dist/*.whl + + publish: + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') + runs-on: ubuntu-latest + needs: [build-linux, build-macos] + environment: + name: pypi + url: https://pypi.org/p/pylc3 + steps: + - uses: actions/download-artifact@v4 + with: + merge-multiple: true + path: dist/ + - uses: pypa/gh-action-pypi-publish@release/v1