Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 5 additions & 44 deletions .github/workflows/llvmlite_linux-64_wheel_builder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -116,47 +116,6 @@ jobs:
- name: Show Workflow Run ID
run: "echo \"Workflow Run ID: ${{ github.run_id }}\""

linux-64-validate:
name: linux-64-validate
needs: linux-64-build
runs-on: ubuntu-latest
defaults:
run:
shell: bash -elx {0}
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.14t"]
fail-fast: false
steps:
- name: Clone repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Setup Miniconda
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
with:
python-version: ${{ env.VALIDATION_PYTHON_VERSION }}
auto-update-conda: true
auto-activate-base: true
activate-environment: true

- name: Install validation dependencies
run: conda install -c defaults wheel twine keyring rfc3986

- name: Download llvmlite wheels
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
with:
name: llvmlite-linux-64-py${{ matrix.python-version }}
path: dist

- name: Validate wheels
run: |
cd dist
for WHL_FILE in *.whl; do
echo "=== Validating $WHL_FILE ==="
# Check wheel structure
twine check "$WHL_FILE"
done

linux-64-test:
name: linux-64-test
needs: linux-64-build
Expand Down Expand Up @@ -189,8 +148,8 @@ jobs:
# Get the Python executable path
PYTHON_PATH=$(which python)

# Upgrade pip and install wheel
"${PYTHON_PATH}" -m pip install --upgrade pip wheel
# Upgrade pip and install wheel, twine
"${PYTHON_PATH}" -m pip install --upgrade pip wheel twine

# Install wheel
cd dist
Expand All @@ -205,6 +164,8 @@ jobs:
exit 1
fi

twine check "$whl"

echo "Installing lief for distribution testing"
# TODO: make unconditional when PyLIEF ships free-threaded wheels
if [[ "${{ matrix.python-version }}" != *t ]]; then
Expand All @@ -219,7 +180,7 @@ jobs:

linux-64-upload:
name: linux-64-upload
needs: [linux-64-test, linux-64-validate]
needs: linux-64-test
if: github.event_name == 'workflow_dispatch' && inputs.upload_wheel_to_anaconda
runs-on: ubuntu-latest
defaults:
Expand Down
49 changes: 5 additions & 44 deletions .github/workflows/llvmlite_linux-aarch64_wheel_builder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -113,47 +113,6 @@ jobs:
- name: Show Workflow Run ID
run: "echo \"Workflow Run ID: ${{ github.run_id }}\""

linux-aarch64-validate:
name: linux-aarch64-validate
needs: linux-aarch64-build
runs-on: ubuntu-24.04-arm
defaults:
run:
shell: bash -elx {0}
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.14t"]
fail-fast: false
steps:
- name: Clone repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Setup Miniconda
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.0
with:
python-version: ${{ env.VALIDATION_PYTHON_VERSION }}
auto-update-conda: true
auto-activate-base: true
activate-environment: true

- name: Install validation dependencies
run: conda install -c defaults wheel twine keyring rfc3986

- name: Download llvmlite wheels
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
with:
name: llvmlite-linux-aarch64-py${{ matrix.python-version }}
path: dist

- name: Validate wheels
run: |
cd dist
for WHL_FILE in *.whl; do
echo "=== Validating $WHL_FILE ==="
# Check wheel structure
twine check "$WHL_FILE"
done

linux-aarch64-test:
name: linux-aarch64-test
needs: linux-aarch64-build
Expand Down Expand Up @@ -186,8 +145,8 @@ jobs:
# Get the Python executable path
PYTHON_PATH=$(which python)

# Upgrade pip and install wheel
"${PYTHON_PATH}" -m pip install --upgrade pip wheel
# Upgrade pip and install wheel, twine
"${PYTHON_PATH}" -m pip install --upgrade pip wheel twine

# Install wheel
cd dist
Expand All @@ -202,6 +161,8 @@ jobs:
exit 1
fi

twine check "$whl"

echo "Installing lief for distribution testing"
# TODO: make unconditional when PyLIEF ships free-threaded wheels
if [[ "${{ matrix.python-version }}" != *t ]]; then
Expand All @@ -216,7 +177,7 @@ jobs:

linux-aarch64-upload:
name: linux-aarch64-upload
needs: [linux-aarch64-test, linux-aarch64-validate]
needs: linux-aarch64-test
if: github.event_name == 'workflow_dispatch' && inputs.upload_wheel_to_anaconda
runs-on: ubuntu-24.04-arm
defaults:
Expand Down
43 changes: 5 additions & 38 deletions .github/workflows/llvmlite_osx-arm64_wheel_builder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -124,42 +124,6 @@ jobs:
- name: Show Workflow Run ID
run: "echo \"Workflow Run ID: ${{ github.run_id }}\""

osx-arm64-validate:
name: osx-arm64-validate
needs: osx-arm64-build
runs-on: macos-14
defaults:
run:
shell: bash -elx {0}
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.14t"]
fail-fast: false
steps:
- name: Clone repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Setup Miniconda
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.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 wheel twine keyring rfc3986

- name: Download llvmlite wheels
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
with:
name: llvmlite-osx-arm64-py${{ matrix.python-version }}
path: dist

- name: Validate wheels
run: |
cd dist
twine check ./*.whl

osx-arm64-test:
name: osx-arm64-test
needs: osx-arm64-build
Expand Down Expand Up @@ -191,13 +155,16 @@ jobs:
run: |
PYTHON_PATH=$(which "python${{ matrix.python-version }}")
"$PYTHON_PATH" -m venv .venv && source .venv/bin/activate
python -m pip install --upgrade pip wheel
python -m pip install --upgrade pip wheel twine
cd dist
whl=$(stat -f "%m %N" ./*.whl | sort -n | tail -n 1 | cut -d' ' -f2-)
twine check "$whl"
echo "Installing lief for distribution testing"
# TODO: make unconditional when PyLIEF ships free-threaded wheels
if [[ "${{ matrix.python-version }}" != *t ]]; then
python -m pip install -v lief
fi
cd dist && python -m pip install -v ./*.whl
python -m pip install -v "$whl"
DYLIB_PATH=$(find "$(python -c "import llvmlite; print(llvmlite.__path__[0])")" -name "libllvmlite.dylib")
echo "Found dylib at: $DYLIB_PATH" && otool -L "$DYLIB_PATH"
python -m llvmlite.tests
Expand Down
57 changes: 9 additions & 48 deletions .github/workflows/llvmlite_win-64_wheel_builder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ on:
pull_request:
paths:
- .github/workflows/llvmlite_win-64_wheel_builder.yml
- buildscripts/github/validate_win-64_wheel.py
- setup.py
- versioneer.py
schedule:
Expand Down Expand Up @@ -108,49 +107,9 @@ jobs:
- 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", "3.14t"]
fail-fast: false
steps:
- name: Clone repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Setup Miniconda
uses: conda-incubator/setup-miniconda@fc2d68f6413eb2d87b895e92f8584b5b94a10167 # v3.3.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@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.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
needs: win-64-build
runs-on: windows-2025
defaults:
run:
Expand All @@ -177,19 +136,21 @@ jobs:
env:
LLVMLITE_DIST_TEST: "1"
run: |
# Upgrade pip and install wheel
python -m pip install --upgrade pip wheel
# Upgrade pip and install wheel, twine
python -m pip install --upgrade pip wheel twine

# Install wheel and run tests
cd dist
# Windows compatible way to get the wheel file using bash
whl=$(ls -1 ./*.whl)
twine check "$whl"

echo "Installing lief for distribution testing"
# TODO: make unconditional when PyLIEF ships free-threaded wheels
if [[ "${{ matrix.python-version }}" != *t ]]; then
python -m pip install -v lief
fi

# 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"

Expand Down
47 changes: 0 additions & 47 deletions buildscripts/github/validate_win-64_wheel.py

This file was deleted.

Loading