Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
2342267
ci: Update GitHub Actions to v4 and remove Node.js deprecation workar…
claude Nov 21, 2025
34d7f03
docs: Add CI/CD fix session notes for continuity
claude Nov 21, 2025
81f9c92
ci: Fix Python 3.12 distutils and GLIBC compatibility issues
mraduldubey Nov 21, 2025
cae2b69
ci: Revert upload-artifact to v4 (v3 is deprecated and blocked)
mraduldubey Nov 21, 2025
085dc1f
ci: Fix setuptools timing and force Node16 for Docker container
mraduldubey Nov 21, 2025
05e7635
ci: Fix CI-Win-NoCUDA by using always() condition for setuptools
mraduldubey Nov 25, 2025
3c03522
ci: Clean glib build artifacts before reconfigure to force rebuild
mraduldubey Nov 25, 2025
13f697b
ci: Allow first CMake configure to fail in Win-NoCUDA build
mraduldubey Nov 26, 2025
215a47a
ci: Add distutils compatibility shim for Python 3.12 in vcpkg
mraduldubey Nov 26, 2025
7965300
ci: Install setuptools before AND after CMake configure
mraduldubey Nov 26, 2025
31e2ba0
ci: Fix YAML syntax error in if condition
mraduldubey Nov 26, 2025
3167bf8
ci: Fix distutils shim using PowerShell here-string for proper Python…
mraduldubey Nov 26, 2025
249754a
ci: Fix distutils shim - use line-by-line Out-File instead of here-st…
mraduldubey Nov 26, 2025
d317ab2
ci: Fix distutils shim using PowerShell here-strings and add version.py
Nov 26, 2025
572efbb
ci: Simplify distutils shim by piping here-string directly
Nov 26, 2025
f5ba90a
ci: Use PowerShell array instead of here-strings for distutils shim
Nov 26, 2025
5176657
ci: Change all CI workflows to manual trigger only (workflow_dispatch)
Nov 26, 2025
9842491
ci: Add verification step to recreate distutils shim before CMake rec…
Nov 26, 2025
3be5d9c
ci: Simplify distutils fix by removing unnecessary reconfigure steps
Nov 27, 2025
924ea92
Revert "ci: Simplify distutils fix by removing unnecessary reconfigur…
Nov 27, 2025
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
9 changes: 2 additions & 7 deletions .github/workflows/CI-Linux-ARM64.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,10 @@
name: CI-Linux-ARM64

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

workflow_dispatch:
env:
NOTE_TO_SELF: "environments can not be passed from here to reused workflows!"
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true


jobs:
jetson-build-test:
uses: ./.github/workflows/build-test-lin.yml
Expand Down
6 changes: 1 addition & 5 deletions .github/workflows/CI-Linux-CUDA-Docker.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
name: CI-Linux-CUDA-Docker

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

workflow_dispatch:
env:
NOTE_TO_SELF: "environments can not be passed from here to reused workflows!"

Expand Down
6 changes: 1 addition & 5 deletions .github/workflows/CI-Linux-CUDA-wsl.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
name: CI-Linux-CUDA-WSL

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

workflow_dispatch:
env:
NOTE_TO_SELF: "environments can not be passed from here to reused workflows!"

Expand Down
9 changes: 2 additions & 7 deletions .github/workflows/CI-Linux-CUDA.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,10 @@
name: CI-Linux-CUDA

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

workflow_dispatch:
env:
NOTE_TO_SELF: "environments can not be passed from here to reused workflows!"
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true


jobs:
linux-cuda-build-test:
uses: ./.github/workflows/build-test-lin.yml
Expand Down
6 changes: 1 addition & 5 deletions .github/workflows/CI-Linux-NoCUDA.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
name: CI-Linux-NoCUDA

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

workflow_dispatch:
env:
NOTE_TO_SELF: "environments can not be passed from here to reused workflows!"

Expand Down
6 changes: 1 addition & 5 deletions .github/workflows/CI-Win-CUDA.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
name: CI-Win-CUDA

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

workflow_dispatch:
env:
NOTE_TO_SELF: "environments can not be passed from here to reused workflows!"

Expand Down
6 changes: 1 addition & 5 deletions .github/workflows/CI-Win-NoCUDA.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
name: CI-Win-NoCUDA

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

workflow_dispatch:
env:
NOTE_TO_SELF: "environments can not be passed from here to reused workflows!"

Expand Down
12 changes: 7 additions & 5 deletions .github/workflows/build-test-lin-container.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,12 @@ jobs:
env:
TEST_EXE: build/aprapipesut
CMAKE_TC_FILE: '../vcpkg/scripts/buildsystems/vcpkg.cmake' # Note: naming this variable as CMAKE_TOOLCHAIN_FILE can cause havoc!!!
ACTIONS_RUNNER_FORCED_INTERNAL_NODE_VERSION: node16
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
container: ghcr.io/kumaakh/aprapipes-build-x86-ubutu18.04-cuda:last-good
defaults:
run:
shell: bash
shell: bash
runs-on: ${{ inputs.runner }}
steps:
- name: Prepare builder
Expand All @@ -100,8 +102,8 @@ jobs:

- name: Checkout code
uses: actions/checkout@v3
with:
submodules: 'recursive'
with:
submodules: 'recursive'
lfs: true
fetch-depth: 0

Expand Down Expand Up @@ -179,9 +181,9 @@ jobs:
path: |
CI_test_result_${{inputs.flav}}.xml
${{ github.workspace }}/data/SaveOrCompareFail/**


- name: Upload build logs

- name: Upload build logs
if: ${{ always() }} # only upload logs when we have a failure above
uses: actions/upload-artifact@v4
with:
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/build-test-lin-wsl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,10 +81,10 @@ jobs:
distribution: Ubuntu-22.04
- name: Prepare builder
run: |
${{ inputs.prep-cmd }}
${{ inputs.prep-cmd }}
apt purge cmake || true
pip3 install cmake==3.29.6 || echo 'did not update cmake'
${{ inputs.prep-check-cmd }}
pip3 install setuptools && pip3 install cmake==3.29.6 || echo 'did not update cmake'
${{ inputs.prep-check-cmd }}
shell: wsl-bash {0}

- name: Check builder for CUDA
Expand All @@ -101,9 +101,9 @@ jobs:
continue-on-error: true

- name: Checkout code
uses: actions/checkout@v3
with:
submodules: 'recursive'
uses: actions/checkout@v4
with:
submodules: 'recursive'
lfs: true
fetch-depth: 0

Expand Down Expand Up @@ -139,7 +139,7 @@ jobs:

- name: Cache dependencies for fast cloud build
id: cache-all
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: |
${{ inputs.cache-path }}
Expand Down
13 changes: 6 additions & 7 deletions .github/workflows/build-test-lin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,14 +73,13 @@ jobs:
env:
TEST_EXE: build/aprapipesut
CMAKE_TC_FILE: '../vcpkg/scripts/buildsystems/vcpkg.cmake' # Note: naming this variable as CMAKE_TOOLCHAIN_FILE can cause havoc!!!
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
runs-on: ${{ inputs.runner }}
steps:
- name: Prepare builder
run: |
${{ inputs.prep-cmd }}
${{ inputs.prep-cmd }}
apt purge cmake || true
pip3 install cmake==3.29.6 || echo 'did not update cmake'
pip3 install setuptools && pip3 install cmake==3.29.6 || echo 'did not update cmake'
${{ inputs.prep-check-cmd }}

- name: Check builder for CUDA
Expand All @@ -96,9 +95,9 @@ jobs:
continue-on-error: true

- name: Checkout code
uses: actions/checkout@v3
with:
submodules: 'recursive'
uses: actions/checkout@v4
with:
submodules: 'recursive'
fetch-depth: 0

- name: List Submodules
Expand Down Expand Up @@ -132,7 +131,7 @@ jobs:

- name: Cache dependencies for fast cloud build
id: cache-all
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: |
${{ inputs.cache-path }}
Expand Down
140 changes: 135 additions & 5 deletions .github/workflows/build-test-win.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,9 +97,9 @@ jobs:
continue-on-error: true

- name: Checkout code
uses: actions/checkout@v3
with:
submodules: 'recursive'
uses: actions/checkout@v4
with:
submodules: 'recursive'
lfs: true
fetch-depth: 0

Expand Down Expand Up @@ -134,21 +134,151 @@ jobs:

- name: Cache dependencies for fast cloud build
id: cache-all
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: |
${{ inputs.cache-path }}
key: ${{ inputs.flav }}-4-${{ hashFiles( 'base/vcpkg.json', 'vcpkg/baseline.json', 'submodule_ver.txt') }}
restore-keys: ${{ inputs.flav }}-

- name: Install setuptools for vcpkg's Python (pre-configure)
if: ${{ !inputs.is-prep-phase }}
shell: pwsh
run: |
# Install setuptools if vcpkg Python already exists from cache
$pythonPath = (Get-ChildItem -Path "${{github.workspace}}/vcpkg/downloads/tools/python" -Filter "python.exe" -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1).FullName
if ($pythonPath) {
Write-Host "Found cached vcpkg Python at $pythonPath. Installing setuptools..."
& $pythonPath -m ensurepip --upgrade 2>&1 | Out-Null
& $pythonPath -m pip install setuptools 2>&1 | Out-Null

# Create distutils compatibility shim for Python 3.12+
$pythonDir = Split-Path $pythonPath
$libDir = Join-Path $pythonDir "Lib"
$distutilsInit = Join-Path $libDir "distutils\__init__.py"

if (!(Test-Path (Join-Path $libDir "distutils"))) {
Write-Host "Creating distutils compatibility shim for Python 3.12+"
New-Item -Path (Join-Path $libDir "distutils") -ItemType Directory -Force | Out-Null

# Create __init__.py
$lines = @(
"import sys",
"from setuptools import _distutils",
"sys.modules['distutils'] = _distutils",
"from setuptools._distutils import *"
)
$lines | Out-File -FilePath $distutilsInit -Encoding utf8

# Create version.py shim
$versionPy = Join-Path $libDir "distutils\version.py"
"from setuptools._distutils.version import *" | Out-File -FilePath $versionPy -Encoding utf8
}
} else {
Write-Host "vcpkg Python not found in cache, will install setuptools after CMake downloads it."
}
continue-on-error: true

- name: Make build folder
run: mkdir -p build
continue-on-error: true

- name: Configure CMake Common
working-directory: ${{github.workspace}}/build
run: '${{ inputs.cmake-conf-cmd}} -DCMAKE_TOOLCHAIN_FILE=${{env.CMAKE_TC_FILE}} -DCMAKE_BUILD_TYPE=${{inputs.buildConf}} -DENABLE_CUDA=${{inputs.cuda}}'
continue-on-error: true # Allow failure since setuptools may not be installed yet

- name: Install setuptools for vcpkg's Python (post-configure)
if: always() && !inputs.is-prep-phase
shell: pwsh
run: |
$pythonPath = (Get-ChildItem -Path "${{github.workspace}}/vcpkg/downloads/tools/python" -Filter "python.exe" -Recurse | Select-Object -First 1).FullName
if ($pythonPath) {
Write-Host "Found vcpkg Python at $pythonPath. Installing setuptools..."
& $pythonPath -m ensurepip --upgrade
& $pythonPath -m pip install setuptools

# Create distutils compatibility shim for Python 3.12+
$pythonDir = Split-Path $pythonPath
$libDir = Join-Path $pythonDir "Lib"
$distutilsInit = Join-Path $libDir "distutils\__init__.py"

if (!(Test-Path (Join-Path $libDir "distutils"))) {
Write-Host "Creating distutils compatibility shim for Python 3.12+"
New-Item -Path (Join-Path $libDir "distutils") -ItemType Directory -Force | Out-Null

# Create __init__.py
$lines = @(
"import sys",
"from setuptools import _distutils",
"sys.modules['distutils'] = _distutils",
"from setuptools._distutils import *"
)
$lines | Out-File -FilePath $distutilsInit -Encoding utf8

# Create version.py shim
$versionPy = Join-Path $libDir "distutils\version.py"
"from setuptools._distutils.version import *" | Out-File -FilePath $versionPy -Encoding utf8
}
} else {
Write-Host "vcpkg Python not found, skipping setuptools installation."
}

- name: Clean glib build artifacts
if: always() && !inputs.is-prep-phase
shell: pwsh
run: |
$glibBuildPath = "${{github.workspace}}/vcpkg/buildtrees/glib"
if (Test-Path $glibBuildPath) {
Write-Host "Removing glib build artifacts to force rebuild with setuptools..."
Remove-Item -Recurse -Force $glibBuildPath
} else {
Write-Host "No glib build artifacts found."
}

- name: Verify and recreate distutils shim before reconfigure
if: always() && !inputs.is-prep-phase
shell: pwsh
run: |
$pythonPath = (Get-ChildItem -Path "${{github.workspace}}/vcpkg/downloads/tools/python" -Filter "python.exe" -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1).FullName
if ($pythonPath) {
Write-Host "Verifying distutils shim for vcpkg Python at $pythonPath"
$pythonDir = Split-Path $pythonPath
$libDir = Join-Path $pythonDir "Lib"
$distutilsDir = Join-Path $libDir "distutils"
$distutilsInit = Join-Path $distutilsDir "__init__.py"

# Always recreate the shim to ensure it's present and correct
if (Test-Path $distutilsDir) {
Write-Host "Distutils directory exists, recreating shim files..."
Remove-Item -Recurse -Force $distutilsDir
}

Write-Host "Creating fresh distutils compatibility shim..."
New-Item -Path $distutilsDir -ItemType Directory -Force | Out-Null

# Create __init__.py
$lines = @(
"import sys",
"from setuptools import _distutils",
"sys.modules['distutils'] = _distutils",
"from setuptools._distutils import *"
)
$lines | Out-File -FilePath $distutilsInit -Encoding utf8

# Create version.py shim
$versionPy = Join-Path $distutilsDir "version.py"
"from setuptools._distutils.version import *" | Out-File -FilePath $versionPy -Encoding utf8

Write-Host "Distutils shim verified and recreated successfully"
} else {
Write-Host "Warning: vcpkg Python not found!"
}

- name: Reconfigure CMake after installing setuptools
if: always() && !inputs.is-prep-phase
working-directory: ${{github.workspace}}/build
run: '${{ inputs.cmake-conf-cmd }} -DCMAKE_TOOLCHAIN_FILE=${{env.CMAKE_TC_FILE}} -DCMAKE_BUILD_TYPE=${{inputs.buildConf}} -DENABLE_CUDA=${{inputs.cuda}}'
continue-on-error: ${{inputs.is-prep-phase}} # in prep phase we expect an error here due to missing OpenCV

- name: Remove files not needed for the build
if: ${{!inputs.is-selfhosted}} # we have space crunch on hosted builder only
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/doxy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Update Footer with Commit Hash
run: |
Expand Down
Loading