Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
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
39 changes: 27 additions & 12 deletions .github/workflows/julia-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ permissions:

env:
TRIGGER_ON_PR_PUSH: true # Set to true to enable triggers on PR pushes
LLVM_VERSION: "21.1"
LLVM_RELEASE_VERSION: "21.1.8"

on:
push:
Expand Down Expand Up @@ -123,35 +125,48 @@ jobs:
- name: Set up Rust
run: rustup show

- name: Install LLVM 14.0.6 using pecos-llvm (Unix)
- name: Install LLVM 21.1 (Unix)
if: runner.os != 'Windows'
run: |
echo "Installing LLVM using pecos..."
cargo run --locked -p pecos-cli --release -- install llvm
if [ "$RUNNER_OS" = "macOS" ]; then
echo "Installing LLVM 21 with Homebrew..."
HOMEBREW_NO_AUTO_UPDATE=1 brew install llvm@21
LLVM_PREFIX="$(brew --prefix llvm@21)"
else
echo "Installing LLVM 21.1 using PECOS-managed packages..."
cargo run --locked -p pecos-cli --release -- llvm ensure --managed --no-configure || bash scripts/ci/install-llvm-21-conda-linux.sh
LLVM_PREFIX="$HOME/.pecos/deps/llvm-21.1"
fi

echo "Setting LLVM environment variables..."
export PECOS_LLVM=$(cargo run --locked -p pecos-cli --release -- llvm find 2>/dev/null)
export LLVM_SYS_140_PREFIX="$PECOS_LLVM"
cargo run --locked -p pecos-cli --release -- llvm configure "$LLVM_PREFIX"
export PECOS_LLVM="$LLVM_PREFIX"
export LLVM_SYS_211_PREFIX="$LLVM_PREFIX"

echo "PECOS_LLVM=$PECOS_LLVM" >> $GITHUB_ENV
echo "LLVM_SYS_140_PREFIX=$LLVM_SYS_140_PREFIX" >> $GITHUB_ENV
echo "LLVM_SYS_211_PREFIX=$LLVM_SYS_211_PREFIX" >> $GITHUB_ENV

echo "Verifying LLVM installation..."
cargo run --locked -p pecos-cli --release -- llvm check

- name: Install LLVM 14.0.6 using pecos-llvm (Windows)
- name: Install LLVM 21.1 (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
Write-Host "Installing LLVM using pecos..."
cargo run --locked -p pecos-cli --release -- install llvm
$llvmRoot = Join-Path $env:USERPROFILE ".pecos\deps\llvm-21.1"
$llvmPrefix = Join-Path $llvmRoot "Library"
Write-Host "Installing conda-forge LLVM 21.1..."
./scripts/ci/install-llvm-21-windows.ps1 -InstallDir $llvmRoot -Version ${{ env.LLVM_RELEASE_VERSION }}

Write-Host "Setting LLVM environment variables..."
$env:PECOS_LLVM = (cargo run --locked -p pecos-cli --release -- llvm find 2>$null)
$env:LLVM_SYS_140_PREFIX = $env:PECOS_LLVM
$env:PECOS_LLVM = $llvmPrefix
$env:LLVM_SYS_211_PREFIX = $env:PECOS_LLVM
$env:LIBCLANG_PATH = Join-Path $llvmPrefix "bin"
cargo run --locked -p pecos-cli --release -- llvm configure "$env:PECOS_LLVM"

"PECOS_LLVM=$env:PECOS_LLVM" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
"LLVM_SYS_140_PREFIX=$env:LLVM_SYS_140_PREFIX" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
"LLVM_SYS_211_PREFIX=$env:LLVM_SYS_211_PREFIX" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
"LIBCLANG_PATH=$env:LIBCLANG_PATH" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append

Write-Host "Verifying LLVM installation..."
cargo run --locked -p pecos-cli --release -- llvm check
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/julia-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,23 +65,23 @@ jobs:
# NOTE: LLVM is not currently needed for Julia FFI since we use pecos with default-features = false
# Keeping this commented out in case we need to re-enable LLVM features in the future.
#
# - name: Install LLVM 14.0.6 using pecos (Unix)
# - name: Install LLVM 21.1 using pecos (Unix)
# if: runner.os != 'Windows'
# run: |
# echo "Installing LLVM using pecos..."
# cargo run -p pecos-cli --release -- install llvm
#
# echo "Setting LLVM environment variables..."
# export PECOS_LLVM=$(cargo run -p pecos-cli --release -- llvm find 2>/dev/null)
# export LLVM_SYS_140_PREFIX="$PECOS_LLVM"
# export LLVM_SYS_211_PREFIX="$PECOS_LLVM"
#
# echo "PECOS_LLVM=$PECOS_LLVM" >> $GITHUB_ENV
# echo "LLVM_SYS_140_PREFIX=$LLVM_SYS_140_PREFIX" >> $GITHUB_ENV
# echo "LLVM_SYS_211_PREFIX=$LLVM_SYS_211_PREFIX" >> $GITHUB_ENV
#
# echo "Verifying LLVM installation..."
# cargo run -p pecos-cli --release -- llvm check
#
# - name: Install LLVM 14.0.6 using pecos (Windows)
# - name: Install LLVM 21.1 using pecos (Windows)
# if: runner.os == 'Windows'
# shell: pwsh
# run: |
Expand All @@ -90,10 +90,10 @@ jobs:
#
# Write-Host "Setting LLVM environment variables..."
# $env:PECOS_LLVM = (cargo run -p pecos-cli --release -- llvm find 2>$null)
# $env:LLVM_SYS_140_PREFIX = $env:PECOS_LLVM
# $env:LLVM_SYS_211_PREFIX = $env:PECOS_LLVM
#
# "PECOS_LLVM=$env:PECOS_LLVM" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
# "LLVM_SYS_140_PREFIX=$env:LLVM_SYS_140_PREFIX" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
# "LLVM_SYS_211_PREFIX=$env:LLVM_SYS_211_PREFIX" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
#
# Write-Host "Verifying LLVM installation..."
# cargo run -p pecos-cli --release -- llvm check
Expand Down
Loading
Loading