From 11ea93da5b39776a0f1a6479c74d5dc4f0bc2df4 Mon Sep 17 00:00:00 2001 From: Matthew Douglas <38992547+matthewdouglas@users.noreply.github.com> Date: Mon, 23 Sep 2024 14:46:37 -0400 Subject: [PATCH 1/7] CI/CD: Add step to publish wheels on tag creation --- .github/workflows/python-package.yml | 27 +++++++++++++++++++++++++++ .github/workflows/upload_pypi.yml | 0 2 files changed, 27 insertions(+) create mode 100644 .github/workflows/upload_pypi.yml diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 241f90fca..b7414d4af 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -18,6 +18,7 @@ on: release: types: [published] workflow_dispatch: {} # Allow manual trigger + workflow_call: {} # Allow triggering from other worfkflows concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} @@ -221,6 +222,32 @@ jobs: - run: pip install auditwheel - run: python ./.github/scripts/auditwheel_show.py wheels/* | tee $GITHUB_STEP_SUMMARY + publish-wheels: + name: Publish wheels to Test PyPI + needs: [build-wheels, audit-wheels] + runs-on: ubuntu-latest + if: | + github.repository == 'bitsandbytes-foundation/bitsandbytes' + && github.event_name == 'push' && startsWith(github.ref, 'refs/tags') + environment: + name: release + url: https://test.pypi.org/p/bitsandbytes + permissions: + id-token: write + steps: + - name: Download distribution artifacts + uses: actions/download-artifact@v4 + with: + path: dist/ + pattern: "bdist_wheel_*" + merge-multiple: true + + - name: Publish to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + print-hash: true + repository-url: https://test.pypi.org/legacy/ + # test: # needs: # - build-wheels diff --git a/.github/workflows/upload_pypi.yml b/.github/workflows/upload_pypi.yml new file mode 100644 index 000000000..e69de29bb From e6d84b7c01fa56f1111dcab3daffef6461e7e241 Mon Sep 17 00:00:00 2001 From: Matthew Douglas <38992547+matthewdouglas@users.noreply.github.com> Date: Mon, 23 Sep 2024 14:49:05 -0400 Subject: [PATCH 2/7] Remove file --- .github/workflows/upload_pypi.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .github/workflows/upload_pypi.yml diff --git a/.github/workflows/upload_pypi.yml b/.github/workflows/upload_pypi.yml deleted file mode 100644 index e69de29bb..000000000 From 876ea82dc3e5cf6bae188de66829f5dd598bb10d Mon Sep 17 00:00:00 2001 From: Matthew Douglas <38992547+matthewdouglas@users.noreply.github.com> Date: Mon, 23 Sep 2024 15:31:05 -0400 Subject: [PATCH 3/7] Restrict pre-release workflow branches --- .github/workflows/python-package.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index b7414d4af..0c2e5bf14 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -157,6 +157,7 @@ jobs: upload-pre-release-wheels: name: Create release and upload artifacts runs-on: ubuntu-latest + if: github.ref_name == 'main' || github.ref_name == 'multi-backend-refactor' permissions: contents: write needs: From ca3f96bae6374bd6bb7dd7f3c1ceca7d9b1c54b8 Mon Sep 17 00:00:00 2001 From: Matthew Douglas <38992547+matthewdouglas@users.noreply.github.com> Date: Mon, 23 Sep 2024 17:09:39 -0400 Subject: [PATCH 4/7] Update PyPI publishing --- .github/workflows/python-package.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 0c2e5bf14..b2bad2174 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -232,7 +232,7 @@ jobs: && github.event_name == 'push' && startsWith(github.ref, 'refs/tags') environment: name: release - url: https://test.pypi.org/p/bitsandbytes + url: https://pypi.org/p/bitsandbytes permissions: id-token: write steps: @@ -243,11 +243,13 @@ jobs: pattern: "bdist_wheel_*" merge-multiple: true + - name: Remove macOS wheels + run: rm dist/bdist_wheel_macos-* + - name: Publish to PyPI uses: pypa/gh-action-pypi-publish@release/v1 with: print-hash: true - repository-url: https://test.pypi.org/legacy/ # test: # needs: From 13aed145c9710409b49474dccba7f984aa977a3e Mon Sep 17 00:00:00 2001 From: Matthew Douglas <38992547+matthewdouglas@users.noreply.github.com> Date: Mon, 23 Sep 2024 17:13:44 -0400 Subject: [PATCH 5/7] Update PyPI publishing --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index b2bad2174..d444471e6 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -244,7 +244,7 @@ jobs: merge-multiple: true - name: Remove macOS wheels - run: rm dist/bdist_wheel_macos-* + run: rm dist/*macos* - name: Publish to PyPI uses: pypa/gh-action-pypi-publish@release/v1 From b0032d78712d063f2a61790fa59d5de4a5bc8528 Mon Sep 17 00:00:00 2001 From: Matthew Douglas <38992547+matthewdouglas@users.noreply.github.com> Date: Mon, 23 Sep 2024 17:43:04 -0400 Subject: [PATCH 6/7] Update package workflow name --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index d444471e6..be5440624 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -224,7 +224,7 @@ jobs: - run: python ./.github/scripts/auditwheel_show.py wheels/* | tee $GITHUB_STEP_SUMMARY publish-wheels: - name: Publish wheels to Test PyPI + name: Publish wheels to PyPI needs: [build-wheels, audit-wheels] runs-on: ubuntu-latest if: | From 1e1d9eedba0ba5496bc47374632cdb5cd72a4b3b Mon Sep 17 00:00:00 2001 From: Matthew Douglas <38992547+matthewdouglas@users.noreply.github.com> Date: Mon, 23 Sep 2024 21:42:21 -0400 Subject: [PATCH 7/7] continuous pre-release only on main --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index be5440624..945266bbd 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -157,7 +157,7 @@ jobs: upload-pre-release-wheels: name: Create release and upload artifacts runs-on: ubuntu-latest - if: github.ref_name == 'main' || github.ref_name == 'multi-backend-refactor' + if: github.ref_name == 'main' permissions: contents: write needs: