================
@@ -0,0 +1,111 @@
+name: Release Clang Python Bindings
+
+permissions:
+ contents: read
+
+on:
+ push:
+ branches:
+ - main
+ - release/*
+ paths:
+ - .github/workflows/release-clang-pypi.yml
+ - 'clang/bindings/python/**'
+
+ pull_request:
+ paths:
+ - .github/workflows/release-clang-pypi.yml
+ - 'clang/bindings/python/**'
+
+ workflow_dispatch:
+ inputs:
+ release-version:
+ description: 'Release Version'
+ required: false
+ type: string
+
+ workflow_call:
+ inputs:
+ release-version:
+ description: 'Release Version'
+ required: true
+ type: string
+ secrets:
+ RELEASE_TASKS_USER_TOKEN:
+ description: "Secret used to check user permissions."
+ required: false
+
+jobs:
+ build-release:
+ if: github.repository_owner == 'llvm' || github.event_name ==
'workflow_dispatch'
+ runs-on: ubuntu-24.04
+ steps:
+ - name: Checkout LLVM (tagged release)
+ if: inputs.release-version != ''
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 #
v5.0.0
+ with:
+ ref: "llvmorg-${{ inputs.release-version }}"
+ fetch-depth: 0
+ sparse-checkout: clang/bindings/python/
+
+ - name: Checkout LLVM (latest commit)
+ if: inputs.release-version == ''
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 #
v5.0.0
+ with:
+ fetch-depth: 0
+ sparse-checkout: clang/bindings/python/
+
+ - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c #
v6.0.0
+ with:
+ python-version: '3.13'
+
+ - name: Package Clang Python Bindings
+ working-directory: clang/bindings/python
+ run: |
+ pip install build twine
+ python -m build
+ python -m twine check dist/*
+
+ - name: Upload Clang Python Bindings package dist artifacts
+ uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
# v5.0.0
+ with:
+ name: python-package-dist
+ path: clang/bindings/python/dist
+
+ pypi-publish:
+ name: Upload release to PyPI
+ runs-on: ubuntu-24.04
+ needs: build-release
+ # Only run this job in the main llvm repository when a release version is
provided.
+ if: github.repository_owner == 'llvm' && inputs.release-version != ''
+ environment:
+ name: pypi
+ url: https://pypi.org/p/clang
+ permissions:
+ id-token: write # IMPORTANT: this permission is mandatory for trusted
publishing
+ steps:
+ - name: Checkout github-upload-release.py for permissions check
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 #
v5.0.0
+ with:
+ sparse-checkout: llvm/utils/release/github-upload-release.py
+
+ - name: Install dependencies for github-upload-release.py
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y python3-github
----------------
boomanaiden154 wrote:
Given this is a python dep for python that we control, this should probably be
a requirements file. We should probably fix all the uses in our other
workflows...
https://github.com/llvm/llvm-project/pull/168234
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits