chore(deps): update actions/setup-python action to v6.1.0 #237
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: llvmlite_win-64_wheel_builder | |
| on: | |
| pull_request: | |
| paths: | |
| - .github/workflows/llvmlite_win-64_wheel_builder.yml | |
| workflow_dispatch: | |
| inputs: | |
| llvmdev_run_id: | |
| description: 'llvmdev workflow run ID (optional)' | |
| required: false | |
| type: string | |
| upload_wheel_to_anaconda: | |
| description: 'Upload wheel to Anaconda Cloud - numba channel' | |
| required: false | |
| type: boolean | |
| default: false | |
| # Add concurrency control | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} | |
| cancel-in-progress: true | |
| env: | |
| FALLBACK_LLVMDEV_VERSION: "20" | |
| CONDA_CHANNEL_NUMBA: numba/label/llvm20-wheel | |
| VALIDATION_PYTHON_VERSION: "3.12" | |
| ARTIFACT_RETENTION_DAYS: 7 | |
| jobs: | |
| win-64-build: | |
| name: win-64-build | |
| runs-on: windows-2025 | |
| defaults: | |
| run: | |
| shell: bash -elx {0} | |
| strategy: | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] | |
| fail-fast: false | |
| steps: | |
| - name: Clone repository | |
| uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Miniconda | |
| uses: conda-incubator/setup-miniconda@835234971496cad1653abb28a638a281cf32541f # v3.2.0 | |
| with: | |
| auto-update-conda: true | |
| auto-activate-base: true | |
| - name: Setup Python | |
| uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| allow-prereleases: true | |
| - name: Download llvmdev Artifact | |
| if: ${{ inputs.llvmdev_run_id != '' }} | |
| uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 | |
| with: | |
| name: llvmdev_for_wheel_win-64 | |
| path: llvmdev_conda_packages | |
| run-id: ${{ inputs.llvmdev_run_id }} | |
| repository: ${{ github.repository }} | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Install build dependencies | |
| run: | | |
| if [ "${{ inputs.llvmdev_run_id }}" != "" ]; then | |
| CHAN="file:///${{ github.workspace }}/llvmdev_conda_packages" | |
| conda install -c defaults -c "$CHAN" "llvmdev=${{ env.FALLBACK_LLVMDEV_VERSION }}" | |
| else | |
| CHAN="${{ env.CONDA_CHANNEL_NUMBA }}" | |
| conda install -c defaults "${CHAN}::llvmdev=${{ env.FALLBACK_LLVMDEV_VERSION }}" | |
| fi | |
| conda install -c defaults cmake libxml2 | |
| python -m pip install build wheel setuptools delvewheel | |
| - name: Build wheel | |
| env: | |
| LLVMLITE_PACKAGE_FORMAT: "wheel" | |
| run: python -m build --wheel --no-isolation | |
| - name: Repair wheel with delvewheel | |
| run: | | |
| mkdir -p wheel_temp | |
| mv dist/*.whl wheel_temp/ | |
| python -m delvewheel repair --analyze-existing -w dist wheel_temp/*.whl | |
| ls -l dist | |
| - name: Upload llvmlite wheel | |
| uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 | |
| with: | |
| name: llvmlite-win-64-py${{ matrix.python-version }} | |
| path: dist/*.whl | |
| compression-level: 0 | |
| retention-days: ${{ env.ARTIFACT_RETENTION_DAYS }} | |
| if-no-files-found: error | |
| - name: Show Workflow Run ID | |
| run: "echo \"Workflow Run ID: ${{ github.run_id }}\"" | |
| win-64-validate: | |
| name: win-64-validate | |
| needs: win-64-build | |
| runs-on: windows-2025 | |
| defaults: | |
| run: | |
| shell: bash -elx {0} | |
| strategy: | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] | |
| fail-fast: false | |
| steps: | |
| - name: Clone repository | |
| uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 | |
| - name: Setup Miniconda | |
| uses: conda-incubator/setup-miniconda@835234971496cad1653abb28a638a281cf32541f # v3.2.0 | |
| with: | |
| python-version: ${{ env.VALIDATION_PYTHON_VERSION }} | |
| auto-update-conda: true | |
| auto-activate-base: true | |
| - name: Install validation dependencies | |
| run: conda install -c defaults py-lief wheel twine keyring rfc3986 | |
| - name: Download llvmlite wheels | |
| uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 | |
| with: | |
| name: llvmlite-win-64-py${{ matrix.python-version }} | |
| path: dist | |
| - name: Validate wheels | |
| run: | | |
| cd dist | |
| for WHL_FILE in *.whl; do | |
| wheel unpack "$WHL_FILE" | |
| python "$GITHUB_WORKSPACE"/buildscripts/github/validate_win-64_wheel.py llvmlite/binding/llvmlite.dll | |
| twine check "$WHL_FILE" | |
| done | |
| win-64-test: | |
| name: win-64-test | |
| needs: win-64-validate | |
| runs-on: windows-2025 | |
| defaults: | |
| run: | |
| shell: bash -elx {0} | |
| strategy: | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] | |
| fail-fast: false | |
| steps: | |
| - name: Setup Python | |
| uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| allow-prereleases: true | |
| - name: Download llvmlite wheel | |
| uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 | |
| with: | |
| name: llvmlite-win-64-py${{ matrix.python-version }} | |
| path: dist | |
| - name: Install and test | |
| env: | |
| LLVMLITE_DIST_TEST: "1" | |
| run: | | |
| # Upgrade pip and install wheel | |
| python -m pip install --upgrade pip wheel | |
| echo "Installing lief for distribution testing" | |
| python -m pip install -v lief | |
| # Install wheel and run tests | |
| cd dist | |
| # Windows compatible way to get the wheel file using bash | |
| whl=$(ls -1 ./*.whl) | |
| echo "Using wheel: $whl" | |
| python -m pip install "$whl" | |
| # Run tests | |
| python -m llvmlite.tests | |
| win-64-upload: | |
| name: win-64-upload | |
| needs: win-64-test | |
| if: github.event_name == 'workflow_dispatch' && inputs.upload_wheel_to_anaconda | |
| runs-on: windows-2025 | |
| defaults: | |
| run: | |
| shell: bash -elx {0} | |
| strategy: | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] | |
| fail-fast: false | |
| steps: | |
| - name: Setup Miniconda | |
| uses: conda-incubator/setup-miniconda@835234971496cad1653abb28a638a281cf32541f # v3.2.0 | |
| with: | |
| python-version: ${{ env.VALIDATION_PYTHON_VERSION }} | |
| auto-update-conda: true | |
| auto-activate-base: true | |
| - name: Install anaconda-client | |
| run: conda install -c anaconda anaconda-client | |
| - name: Download llvmlite wheel | |
| uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 | |
| with: | |
| name: llvmlite-win-64-py${{ matrix.python-version }} | |
| path: dist | |
| - name: Upload wheel to Anaconda Cloud | |
| env: | |
| ANACONDA_API_TOKEN: ${{ secrets.NUMBA_CHANNEL_WHEEL_UPLOAD }} | |
| run: | | |
| cd dist | |
| whl=$(ls -1 ./*.whl) | |
| echo "Uploading wheel: $whl" | |
| anaconda -t "$ANACONDA_API_TOKEN" upload --force -u numba -l dev "$whl" |