From 958da5e5e9ce71d1be7580e45bdb142b019a9791 Mon Sep 17 00:00:00 2001 From: Michael Elsdörfer Date: Wed, 10 Jun 2020 08:47:01 +0100 Subject: Add Github action workflow to build Python wheels. --- .github/workflows/build-python-package.yml | 48 ++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 .github/workflows/build-python-package.yml (limited to '.github/workflows/build-python-package.yml') diff --git a/.github/workflows/build-python-package.yml b/.github/workflows/build-python-package.yml new file mode 100644 index 000000000..0a610881a --- /dev/null +++ b/.github/workflows/build-python-package.yml @@ -0,0 +1,48 @@ +name: Build Python Package + +on: [push, pull_request] + +jobs: + build_wheels: + name: Build wheel on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-18.04, macos-latest] + + steps: + - uses: actions/checkout@v1 + + - uses: actions/setup-python@v1 + name: Install Python + with: + python-version: '3.7' + + - name: Install cibuildwheel + run: | + python -m pip install cibuildwheel==1.4.2 + + - name: Install build tools for OSX + if: startsWith(matrix.os, 'macos') + run: | + brew install automake + + - name: Build wheels on Linux + if: startsWith(matrix.os, 'macos') != true + env: + CIBW_BEFORE_BUILD: cd src/runtime/c && autoreconf -i && ./configure && make && make install + run: | + python -m cibuildwheel src/runtime/python --output-dir wheelhouse + + - name: Build wheels on OSX + if: startsWith(matrix.os, 'macos') + env: + CIBW_BEFORE_BUILD: cd src/runtime/c && glibtoolize && autoreconf -i && ./configure && make && make install + run: | + python -m cibuildwheel src/runtime/python --output-dir wheelhouse + + - uses: actions/upload-artifact@v1 + with: + name: wheels + path: ./wheelhouse -- cgit v1.2.3 From 9ad7d25fb42b02fd06046fdde5c09088b9ab62eb Mon Sep 17 00:00:00 2001 From: Michael Elsdörfer Date: Sun, 14 Jun 2020 12:13:29 +0100 Subject: Add upload to PyPI step. --- .github/workflows/build-python-package.yml | 50 ++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 3 deletions(-) (limited to '.github/workflows/build-python-package.yml') diff --git a/.github/workflows/build-python-package.yml b/.github/workflows/build-python-package.yml index 0a610881a..5c48b0256 100644 --- a/.github/workflows/build-python-package.yml +++ b/.github/workflows/build-python-package.yml @@ -1,4 +1,4 @@ -name: Build Python Package +name: Build & Publish Python Package on: [push, pull_request] @@ -42,7 +42,51 @@ jobs: run: | python -m cibuildwheel src/runtime/python --output-dir wheelhouse - - uses: actions/upload-artifact@v1 + - uses: actions/upload-artifact@v2 with: - name: wheels path: ./wheelhouse + + build_sdist: + name: Build source distribution + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - uses: actions/setup-python@v2 + name: Install Python + with: + python-version: '3.7' + + - name: Build sdist + run: cd src/runtime/python && python setup.py sdist + + - uses: actions/upload-artifact@v2 + with: + path: dist/*.tar.gz + + upload_pypi: + needs: [build_wheels, build_sdist] + runs-on: ubuntu-latest + + steps: + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.x' + + - name: Install twine + run: pip install twine + + - uses: actions/download-artifact@v2 + with: + name: artifact + path: ./src/runtime/python/dist + + - name: Publish + env: + TWINE_USERNAME: __token__ + TWINE_PASSWORD: ${{ secrets.pypi_password }} + working-directory: ./src/runtime/python + run: | + curl -I --fail https://pypi.org/project/$(python setup.py --name)/$(python setup.py --version)/ || twine upload --repository testpypi dist/* + # To test: repository_url: https://test.pypi.org/legacy/ \ No newline at end of file -- cgit v1.2.3 From 6f5e25d01d9729447322c312aa3a15050ee5c954 Mon Sep 17 00:00:00 2001 From: Michael Elsdörfer Date: Sun, 14 Jun 2020 16:44:55 +0100 Subject: Bring back fail-fast. --- .github/workflows/build-python-package.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to '.github/workflows/build-python-package.yml') diff --git a/.github/workflows/build-python-package.yml b/.github/workflows/build-python-package.yml index 5c48b0256..7935d553b 100644 --- a/.github/workflows/build-python-package.yml +++ b/.github/workflows/build-python-package.yml @@ -7,7 +7,7 @@ jobs: name: Build wheel on ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: - fail-fast: false + fail-fast: true matrix: os: [ubuntu-18.04, macos-latest] @@ -89,4 +89,3 @@ jobs: working-directory: ./src/runtime/python run: | curl -I --fail https://pypi.org/project/$(python setup.py --name)/$(python setup.py --version)/ || twine upload --repository testpypi dist/* - # To test: repository_url: https://test.pypi.org/legacy/ \ No newline at end of file -- cgit v1.2.3 From 866e91c9172a19e33f8a6c88136d0f21cb091d69 Mon Sep 17 00:00:00 2001 From: Michael Elsdörfer Date: Sun, 14 Jun 2020 16:48:39 +0100 Subject: Make sure sdist is included. --- .github/workflows/build-python-package.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to '.github/workflows/build-python-package.yml') diff --git a/.github/workflows/build-python-package.yml b/.github/workflows/build-python-package.yml index 7935d553b..67272d701 100644 --- a/.github/workflows/build-python-package.yml +++ b/.github/workflows/build-python-package.yml @@ -62,13 +62,15 @@ jobs: - uses: actions/upload-artifact@v2 with: - path: dist/*.tar.gz + path: ./src/runtime/python/dist/*.tar.gz upload_pypi: needs: [build_wheels, build_sdist] runs-on: ubuntu-latest steps: + - uses: actions/checkout@v2 + - name: Set up Python uses: actions/setup-python@v2 with: @@ -86,6 +88,5 @@ jobs: env: TWINE_USERNAME: __token__ TWINE_PASSWORD: ${{ secrets.pypi_password }} - working-directory: ./src/runtime/python run: | - curl -I --fail https://pypi.org/project/$(python setup.py --name)/$(python setup.py --version)/ || twine upload --repository testpypi dist/* + (cd ./src/runtime/python && curl -I --fail https://test.pypi.org/project/$(python setup.py --name)/$(python setup.py --version)/) || twine upload --repository testpypi dist/* -- cgit v1.2.3 From 8d4eb9288acfcd236c1bdcbb5e05a13d7fe9f369 Mon Sep 17 00:00:00 2001 From: Michael Elsdörfer Date: Sun, 14 Jun 2020 17:34:31 +0100 Subject: Remove references to live PyPI. --- .github/workflows/build-python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '.github/workflows/build-python-package.yml') diff --git a/.github/workflows/build-python-package.yml b/.github/workflows/build-python-package.yml index 67272d701..138ad4f21 100644 --- a/.github/workflows/build-python-package.yml +++ b/.github/workflows/build-python-package.yml @@ -89,4 +89,4 @@ jobs: TWINE_USERNAME: __token__ TWINE_PASSWORD: ${{ secrets.pypi_password }} run: | - (cd ./src/runtime/python && curl -I --fail https://test.pypi.org/project/$(python setup.py --name)/$(python setup.py --version)/) || twine upload --repository testpypi dist/* + (cd ./src/runtime/python && curl -I --fail https://pypi.org/project/$(python setup.py --name)/$(python setup.py --version)/) || twine upload dist/* -- cgit v1.2.3