From 0f534856d60ef6f4c3c398ddf3b4251d2ab347ea Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Thu, 26 Mar 2026 14:20:41 +0530 Subject: [PATCH 01/30] Update validate_builds.py --- gha-script/validate_builds.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gha-script/validate_builds.py b/gha-script/validate_builds.py index 7677b679e3..2f0d73a5ac 100644 --- a/gha-script/validate_builds.py +++ b/gha-script/validate_builds.py @@ -12,7 +12,8 @@ GITHUB_BUILD_SCRIPT_BASE_REPO = "build-scripts" -GITHUB_BUILD_SCRIPT_BASE_OWNER = "ppc64le" +#GITHUB_BUILD_SCRIPT_BASE_OWNER = "ppc64le" +GITHUB_BUILD_SCRIPT_BASE_OWNER = "stutiibm" HOME = os.getcwd() package_data = {} From 1013f628ece57018d0bbe540f1bb6a43f71dd2c4 Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Thu, 26 Mar 2026 14:40:59 +0530 Subject: [PATCH 02/30] Update pr-build.yaml --- .github/workflows/pr-build.yaml | 74 ++++++++++++++++++++++----------- 1 file changed, 50 insertions(+), 24 deletions(-) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index d392615213..f68f252958 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -27,7 +27,7 @@ run-name: > || github.event.pull_request.title }} jobs: - validate: + build_info: runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} steps: @@ -44,7 +44,7 @@ jobs: - name: Install required packages run: | sudo apt update -y - sudo apt-get install -y file + sudo apt-get install -y file jq - name: Install Python dependencies run: | @@ -54,28 +54,54 @@ jobs: - name: Set PR number run: echo "PR_NUMBER=${{ github.event.pull_request.number || inputs.pr_number }}" >> $GITHUB_ENV - - name: Run validate_builds.py script with live logs + - name: Locate and parse build_info.json run: | - python3 -u gha-script/validate_builds.py ${PR_NUMBER:-false} 2>&1 | tee build_log - my_pid_status=${PIPESTATUS[0]} - - build_size=$(stat -c %s build_log) - - if [ "$my_pid_status" -ne 0 ]; then - echo "Script failed for PR #${PR_NUMBER}" - if [ "$build_size" -lt 1800000 ]; then - cat build_log - else - echo "Build log too large, showing last 100 lines" - tail -100 build_log - fi + BUILD_INFO_FILE=$(find . -name "build_info.json" -print -quit) + + if [ -z "$BUILD_INFO_FILE" ]; then + echo "build_info.json not found!" + exit 1 + fi + + echo "Using build_info: $BUILD_INFO_FILE" + + PACKAGE_NAME=$(jq -r '.package_name // ""' $BUILD_INFO_FILE) + VERSION=$(jq -r '.version // ""' $BUILD_INFO_FILE) + + if [ -z "$PACKAGE_NAME" ] || [ -z "$VERSION" ]; then + echo "PACKAGE_NAME or VERSION missing in build_info.json" exit 1 - else - echo "Script completed successfully for PR #${PR_NUMBER}" - if [ "$build_size" -lt 1800000 ]; then - cat build_log - else - echo "Build log too large, showing last 100 lines" - tail -100 build_log - fi fi + + echo "PACKAGE_NAME=$PACKAGE_NAME" + echo "VERSION=$VERSION" + + # Export for next step + echo "PACKAGE_NAME=$PACKAGE_NAME" >> $GITHUB_ENV + echo "VERSION=$VERSION" >> $GITHUB_ENV + + # - name: Run validate_builds.py script with live logs + # run: | + # python3 -u gha-script/validate_builds.py ${PR_NUMBER:-false} 2>&1 | tee build_log + # my_pid_status=${PIPESTATUS[0]} + + # build_size=$(stat -c %s build_log) + + # if [ "$my_pid_status" -ne 0 ]; then + # echo "Script failed for PR #${PR_NUMBER}" + # if [ "$build_size" -lt 1800000 ]; then + # cat build_log + # else + # echo "Build log too large, showing last 100 lines" + # tail -100 build_log + # fi + # exit 1 + # else + # echo "Script completed successfully for PR #${PR_NUMBER}" + # if [ "$build_size" -lt 1800000 ]; then + # cat build_log + # else + # echo "Build log too large, showing last 100 lines" + # tail -100 build_log + # fi + # fi From 39786a1314175eb95cdb854a588d731843a53fdb Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Thu, 26 Mar 2026 14:48:24 +0530 Subject: [PATCH 03/30] Update pr-build.yaml --- .github/workflows/pr-build.yaml | 56 ++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index f68f252958..ca3786c31c 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -54,6 +54,36 @@ jobs: - name: Set PR number run: echo "PR_NUMBER=${{ github.event.pull_request.number || inputs.pr_number }}" >> $GITHUB_ENV + + + - name: Run validate_builds.py script with live logs + run: | + python3 -u gha-script/validate_builds.py ${PR_NUMBER:-false} 2>&1 | tee build_log + my_pid_status=${PIPESTATUS[0]} + + build_size=$(stat -c %s build_log) + + if [ "$my_pid_status" -ne 0 ]; then + echo "Script failed for PR #${PR_NUMBER}" + if [ "$build_size" -lt 1800000 ]; then + cat build_log + else + echo "Build log too large, showing last 100 lines" + tail -100 build_log + fi + exit 1 + else + echo "Script completed successfully for PR #${PR_NUMBER}" + if [ "$build_size" -lt 1800000 ]; then + cat build_log + else + echo "Build log too large, showing last 100 lines" + tail -100 build_log + fi + fi + + + - name: Locate and parse build_info.json run: | BUILD_INFO_FILE=$(find . -name "build_info.json" -print -quit) @@ -79,29 +109,3 @@ jobs: # Export for next step echo "PACKAGE_NAME=$PACKAGE_NAME" >> $GITHUB_ENV echo "VERSION=$VERSION" >> $GITHUB_ENV - - # - name: Run validate_builds.py script with live logs - # run: | - # python3 -u gha-script/validate_builds.py ${PR_NUMBER:-false} 2>&1 | tee build_log - # my_pid_status=${PIPESTATUS[0]} - - # build_size=$(stat -c %s build_log) - - # if [ "$my_pid_status" -ne 0 ]; then - # echo "Script failed for PR #${PR_NUMBER}" - # if [ "$build_size" -lt 1800000 ]; then - # cat build_log - # else - # echo "Build log too large, showing last 100 lines" - # tail -100 build_log - # fi - # exit 1 - # else - # echo "Script completed successfully for PR #${PR_NUMBER}" - # if [ "$build_size" -lt 1800000 ]; then - # cat build_log - # else - # echo "Build log too large, showing last 100 lines" - # tail -100 build_log - # fi - # fi From 48f28f020c92cb80ec045fa9227fef3e8e58080d Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Thu, 26 Mar 2026 15:19:42 +0530 Subject: [PATCH 04/30] Update validate_builds.py --- gha-script/validate_builds.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/gha-script/validate_builds.py b/gha-script/validate_builds.py index 2f0d73a5ac..080175a5cf 100644 --- a/gha-script/validate_builds.py +++ b/gha-script/validate_builds.py @@ -11,9 +11,10 @@ -GITHUB_BUILD_SCRIPT_BASE_REPO = "build-scripts" +#GITHUB_BUILD_SCRIPT_BASE_REPO = "build-scripts" #GITHUB_BUILD_SCRIPT_BASE_OWNER = "ppc64le" -GITHUB_BUILD_SCRIPT_BASE_OWNER = "stutiibm" +repo = os.environ.get("GITHUB_REPOSITORY") # +owner, repo_name = repo.split("/") HOME = os.getcwd() package_data = {} @@ -266,11 +267,12 @@ def validate_build_info_file(file_name): raise e def trigger_build_validation_ci(pr_number): - pull_request_file_url = "https://api.github.com/repos/{}/{}/pulls/{}/files".format( - GITHUB_BUILD_SCRIPT_BASE_OWNER, - GITHUB_BUILD_SCRIPT_BASE_REPO, - pr_number - ) + pull_request_file_url = f"https://api.github.com/repos/{owner}/{repo_name}/pulls/{pr_number}/files" + # pull_request_file_url = "https://api.github.com/repos/{}/{}/pulls/{}/files".format( + # GITHUB_BUILD_SCRIPT_BASE_OWNER, + # GITHUB_BUILD_SCRIPT_BASE_REPO, + # pr_number + # ) print(f"pull_request_file_url:{pull_request_file_url}" ) From c2395f9e51c9858097a7b6e3bc8fd9dc759d63da Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Thu, 26 Mar 2026 15:26:19 +0530 Subject: [PATCH 05/30] Update pr-build.yaml --- .github/workflows/pr-build.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index ca3786c31c..bd11ad297d 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -34,6 +34,9 @@ jobs: - name: Checkout code (Pull Request) if: github.event_name == 'pull_request' uses: actions/checkout@v6 + with: + repository: ${{ github.event.pull_request.head.repo.full_name }} + ref: ${{ github.event.pull_request.head.ref }} - name: Checkout code (Workflow Dispatch) if: github.event_name == 'workflow_dispatch' From b348f5523883e7ed54f4b82abee64eb80fa02f92 Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Thu, 26 Mar 2026 15:37:59 +0530 Subject: [PATCH 06/30] Update pr-build.yaml --- .github/workflows/pr-build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index bd11ad297d..e12236a76f 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -89,7 +89,7 @@ jobs: - name: Locate and parse build_info.json run: | - BUILD_INFO_FILE=$(find . -name "build_info.json" -print -quit) + BUILD_INFO_FILE=$(git diff --name-only origin/${{ github.base_ref }}...HEAD | grep 'build_info.json' | head -n 1) if [ -z "$BUILD_INFO_FILE" ]; then echo "build_info.json not found!" From 0ea780fb959403d1826136214fc9e5a1da76ec57 Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Thu, 26 Mar 2026 16:01:11 +0530 Subject: [PATCH 07/30] Update pr-build.yaml --- .github/workflows/pr-build.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index e12236a76f..51ce3384fc 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -37,6 +37,7 @@ jobs: with: repository: ${{ github.event.pull_request.head.repo.full_name }} ref: ${{ github.event.pull_request.head.ref }} + fetch-depth: 0 - name: Checkout code (Workflow Dispatch) if: github.event_name == 'workflow_dispatch' @@ -85,11 +86,14 @@ jobs: fi fi - + - name: Fetch base branch + run: | + git fetch origin ${{ github.base_ref }} --depth=1 - name: Locate and parse build_info.json run: | BUILD_INFO_FILE=$(git diff --name-only origin/${{ github.base_ref }}...HEAD | grep 'build_info.json' | head -n 1) + if [ -z "$BUILD_INFO_FILE" ]; then echo "build_info.json not found!" From e7db43fc09ec9dd715da55da9accd563322d5032 Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Thu, 26 Mar 2026 19:06:49 +0530 Subject: [PATCH 08/30] Update pr-build.yaml --- .github/workflows/pr-build.yaml | 44 +++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index 51ce3384fc..5e344aa093 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -116,3 +116,47 @@ jobs: # Export for next step echo "PACKAGE_NAME=$PACKAGE_NAME" >> $GITHUB_ENV echo "VERSION=$VERSION" >> $GITHUB_ENV + + - name: Read build_info.json + run: | + chmod +x ./gha-script/read_buildinfo.sh + bash ./gha-script/read_buildinfo.sh + + - name: Create scanner-env.sh + run: | + mkdir -p package-cache + BUILD_INFO_FILE=$(find . -name "build_info.json" -print -quit) + + echo "Using build_info: $BUILD_INFO_FILE" + + PACKAGE_DIR=$(jq -r '.package_dir // ""' $BUILD_INFO_FILE) + WHEEL_BUILD=$(jq -r '.wheel_build // "false"' $BUILD_INFO_FILE) + DOCKER_BUILD=$(jq -r '.docker_build // "false"' $BUILD_INFO_FILE) + VALIDATE_BUILD=$(jq -r '.validate_build_script // "true"' $BUILD_INFO_FILE) + + + cat < package-cache/scanner-env.sh + export PACKAGE_NAME=$PACKAGE_NAME + export VERSION=$VERSION + export PACKAGE_DIR=$PACKAGE_DIR + export WHEEL_BUILD=$WHEEL_BUILD + export BUILD_DOCKER=$DOCKER_BUILD + export VALIDATE_BUILD_SCRIPT=$VALIDATE_BUILD + EOF + + mv variable.sh package-cache/ + echo "-------------- scanner-env.sh created --------------------" + cat package-cache/scanner-env.sh + echo "-------------- variable.sh --------------------" + cat package-cache/variable.sh + + - name: Archive package cache + run: tar -czf package-cache.tar.gz package-cache/ + + - name: Upload package cache + uses: actions/upload-artifact@v6 + with: + name: package-cache + path: package-cache.tar.gz + + From 03dcb7f3d8053649fdc6d01e9976830d5027f36e Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Thu, 26 Mar 2026 23:46:32 +0530 Subject: [PATCH 09/30] Update pr-build.yaml --- .github/workflows/pr-build.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index 5e344aa093..b07733c280 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -125,7 +125,6 @@ jobs: - name: Create scanner-env.sh run: | mkdir -p package-cache - BUILD_INFO_FILE=$(find . -name "build_info.json" -print -quit) echo "Using build_info: $BUILD_INFO_FILE" From f71ce2d0934c717f80480c6a3bbd22866efc1a61 Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Thu, 26 Mar 2026 23:54:42 +0530 Subject: [PATCH 10/30] Update pr-build.yaml --- .github/workflows/pr-build.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index b07733c280..4709208038 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -114,6 +114,7 @@ jobs: echo "VERSION=$VERSION" # Export for next step + echo "BUILD_INFO_FILE=$BUILD_INFO_FILE" >> $GITHUB_ENV echo "PACKAGE_NAME=$PACKAGE_NAME" >> $GITHUB_ENV echo "VERSION=$VERSION" >> $GITHUB_ENV From e5027ddfadee9d713816288d1ec7f3132d540436 Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Fri, 27 Mar 2026 00:43:11 +0530 Subject: [PATCH 11/30] Update pr-build.yaml --- .github/workflows/pr-build.yaml | 101 +++++++++++++++++++++++++++++++- 1 file changed, 100 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index 4709208038..183407b612 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -25,7 +25,7 @@ run-name: > ${{ github.event_name == 'workflow_dispatch' && format('Retriggered build on {0} for PR {1}', inputs.large-runner, inputs.pr_number) || github.event.pull_request.title }} - + jobs: build_info: runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} @@ -159,4 +159,103 @@ jobs: name: package-cache path: package-cache.tar.gz + build: + needs: build_info + runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} + + steps: + - uses: actions/checkout@v6 + + - name: Download package-cache + uses: actions/download-artifact@v7 + with: + name: package-cache + + - name: Extract package cache + run: tar -xzf package-cache.tar.gz + + - name: Build Package + #env: + # GHA_CURRENCY_SERVICE_ID_API_KEY: ${{ secrets.GHA_CURRENCY_SERVICE_ID_API_KEY }} + run: | + echo "Sourcing variable.sh and scanner-env.sh..." + source package-cache/variable.sh + source package-cache/scanner-env.sh + + echo "===== variable.sh =====" + cat package-cache/variable.sh + + echo "===== scanner-env.sh =====" + cat package-cache/scanner-env.sh + + echo "============== CPU INFO ==============" + lscpu + echo "======================================" + + chmod +x ./gha-script/build_package.sh + bash ./gha-script/build_package.sh 2>&1 | tee build_log + BUILD_STATUS=${PIPESTATUS[0]} + + LOG_SIZE=$(stat -c %s build_log) + + if [ "$BUILD_STATUS" -ne 0 ]; then + echo "Build failed!" + + if [ "$LOG_SIZE" -lt 1800000 ]; then + cat build_log + else + echo "Log too large, showing last 200 lines" + tail -200 build_log + fi + exit 1 + else + echo "Build succeeded!" + + if [ "$LOG_SIZE" -lt 1800000 ]; then + cat build_log + else + echo "Log too large, showing last 200 lines" + tail -200 build_log + fi + fi + + # Detect cloned package directory + CLONED_PACKAGE=$(ls -td -- */ | head -n 1) + + echo "Detected cloned package: $CLONED_PACKAGE" + + sudo mv "$CLONED_PACKAGE" package-cache + + echo "export CLONED_PACKAGE=\"$CLONED_PACKAGE\"" >> package-cache/scanner-env.sh + + echo "----- Updated scanner-env.sh -----" + cat package-cache/scanner-env.sh + + cd package-cache + sudo chown $USER:$USER -R . + + chmod +x ../gha-script/pre_process.sh + bash ../gha-script/pre_process.sh + + cd $GITHUB_WORKSPACE + + #gzip build_log || true + + #chmod +x ./gha-script/upload-scripts/upload_file.sh + #bash ./gha-script/upload-scripts/upload_file.sh build_log.gz + + - name: Fix permissions on package-cache + run: | + USER=$(whoami) + sudo chown -R $USER:$USER package-cache + sudo chmod -R u+rwX,go+rX,go-w package-cache + + - name: Archive updated package cache + run: tar -czf package-cache.tar.gz package-cache/ + + - name: Upload updated package-cache + uses: actions/upload-artifact@v6 + with: + name: updated-package-cache + path: package-cache.tar.gz From 4801a96e2065bd6b09acb79e867f97b81d8a9db1 Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Fri, 27 Mar 2026 01:10:41 +0530 Subject: [PATCH 12/30] Update pr-build.yaml --- .github/workflows/pr-build.yaml | 183 +++++++++++++++++--------------- 1 file changed, 96 insertions(+), 87 deletions(-) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index 183407b612..87d100c54b 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -25,7 +25,7 @@ run-name: > ${{ github.event_name == 'workflow_dispatch' && format('Retriggered build on {0} for PR {1}', inputs.large-runner, inputs.pr_number) || github.event.pull_request.title }} - + jobs: build_info: runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} @@ -160,102 +160,111 @@ jobs: path: package-cache.tar.gz build: - needs: build_info - runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} + needs: build_info + runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} - steps: - - uses: actions/checkout@v6 + steps: + - uses: actions/checkout@v6 - - name: Download package-cache - uses: actions/download-artifact@v7 - with: - name: package-cache + - name: Download package-cache + uses: actions/download-artifact@v7 + with: + name: package-cache - - name: Extract package cache - run: tar -xzf package-cache.tar.gz + - name: Extract package cache + run: tar -xzf package-cache.tar.gz - - name: Build Package - #env: - # GHA_CURRENCY_SERVICE_ID_API_KEY: ${{ secrets.GHA_CURRENCY_SERVICE_ID_API_KEY }} - run: | - echo "Sourcing variable.sh and scanner-env.sh..." - source package-cache/variable.sh - source package-cache/scanner-env.sh + - name: Build Package + #env: + # GHA_CURRENCY_SERVICE_ID_API_KEY: ${{ secrets.GHA_CURRENCY_SERVICE_ID_API_KEY }} + run: | + echo "Sourcing variable.sh and scanner-env.sh..." + source package-cache/variable.sh + source package-cache/scanner-env.sh - echo "===== variable.sh =====" - cat package-cache/variable.sh + echo "===== variable.sh =====" + cat package-cache/variable.sh - echo "===== scanner-env.sh =====" - cat package-cache/scanner-env.sh + echo "===== scanner-env.sh =====" + cat package-cache/scanner-env.sh - echo "============== CPU INFO ==============" - lscpu - echo "======================================" + echo "============== CPU INFO ==============" + lscpu + echo "======================================" - chmod +x ./gha-script/build_package.sh - bash ./gha-script/build_package.sh 2>&1 | tee build_log - BUILD_STATUS=${PIPESTATUS[0]} + chmod +x ./gha-script/build_package.sh + echo "========== START BUILD ==========" + set -uo pipefail + bash ./gha-script/build_package.sh 2>&1 | tee build_log + BUILD_STATUS=${PIPESTATUS[0]} + echo "========== BUILD FINISHED ==========" - LOG_SIZE=$(stat -c %s build_log) + LOG_SIZE=$(stat -c %s build_log) - if [ "$BUILD_STATUS" -ne 0 ]; then + if [ "$BUILD_STATUS" -ne 0 ]; then echo "Build failed!" - if [ "$LOG_SIZE" -lt 1800000 ]; then - cat build_log - else - echo "Log too large, showing last 200 lines" - tail -200 build_log - fi - exit 1 + if [ "$LOG_SIZE" -lt 1800000 ]; then + echo "----- FULL BUILD LOG -----" + echo "::group::Build Logs" + cat build_log + echo "::endgroup::" else - echo "Build succeeded!" - - if [ "$LOG_SIZE" -lt 1800000 ]; then - cat build_log - else - echo "Log too large, showing last 200 lines" - tail -200 build_log - fi - fi - - # Detect cloned package directory - CLONED_PACKAGE=$(ls -td -- */ | head -n 1) - - echo "Detected cloned package: $CLONED_PACKAGE" - - sudo mv "$CLONED_PACKAGE" package-cache - - echo "export CLONED_PACKAGE=\"$CLONED_PACKAGE\"" >> package-cache/scanner-env.sh - - echo "----- Updated scanner-env.sh -----" - cat package-cache/scanner-env.sh - - cd package-cache - sudo chown $USER:$USER -R . - - chmod +x ../gha-script/pre_process.sh - bash ../gha-script/pre_process.sh - - cd $GITHUB_WORKSPACE - - #gzip build_log || true - - #chmod +x ./gha-script/upload-scripts/upload_file.sh - #bash ./gha-script/upload-scripts/upload_file.sh build_log.gz - - - name: Fix permissions on package-cache - run: | - USER=$(whoami) - sudo chown -R $USER:$USER package-cache - sudo chmod -R u+rwX,go+rX,go-w package-cache - - - name: Archive updated package cache - run: tar -czf package-cache.tar.gz package-cache/ - - - name: Upload updated package-cache - uses: actions/upload-artifact@v6 - with: - name: updated-package-cache - path: package-cache.tar.gz - + echo "Log too large, showing last 200 lines" + tail -200 build_log + fi + + exit 1 + else + echo "Build succeeded!" + + if [ "$LOG_SIZE" -lt 1800000 ]; then + cat build_log + else + echo "Log too large, showing last 200 lines" + tail -200 build_log + fi + fi + + # Detect cloned package directory + CLONED_PACKAGE=$(ls -td -- */ | head -n 1) + if [ -z "$CLONED_PACKAGE" ]; then + echo "No cloned package found" + exit 1 + fi + + echo "Detected cloned package: $CLONED_PACKAGE" + sudo mv "$CLONED_PACKAGE" package-cache + + echo "export CLONED_PACKAGE=\"$CLONED_PACKAGE\"" >> package-cache/scanner-env.sh + + echo "----- Updated scanner-env.sh -----" + cat package-cache/scanner-env.sh + + cd package-cache + sudo chown $USER:$USER -R . + + chmod +x ../gha-script/pre_process.sh + bash ../gha-script/pre_process.sh + + cd $GITHUB_WORKSPACE + + #gzip build_log || true + + #chmod +x ./gha-script/upload-scripts/upload_file.sh + #bash ./gha-script/upload-scripts/upload_file.sh build_log.gz + + - name: Fix permissions on package-cache + run: | + USER=$(whoami) + sudo chown -R $USER:$USER package-cache + sudo chmod -R u+rwX,go+rX,go-w package-cache + + - name: Archive updated package cache + run: tar -czf package-cache.tar.gz package-cache/ + + - name: Upload updated package-cache + uses: actions/upload-artifact@v6 + with: + name: updated-package-cache + path: package-cache.tar.gz From 8e80aa272af423cd03672f0931f5cfc7a13e06c1 Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Fri, 27 Mar 2026 01:27:50 +0530 Subject: [PATCH 13/30] Update pr-build.yaml --- .github/workflows/pr-build.yaml | 65 +++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 27 deletions(-) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index 87d100c54b..a4a815ed01 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -67,23 +67,32 @@ jobs: build_size=$(stat -c %s build_log) + #if [ "$my_pid_status" -ne 0 ]; then + # echo "Script failed for PR #${PR_NUMBER}" + # if [ "$build_size" -lt 1800000 ]; then + # cat build_log + # else + # echo "Build log too large, showing last 100 lines" + # tail -100 build_log + # fi + # exit 1 + #else + # echo "Script completed successfully for PR #${PR_NUMBER}" + # if [ "$build_size" -lt 1800000 ]; then + # cat build_log + # else + # echo "Build log too large, showing last 100 lines" + # tail -100 build_log + # fi + #fi if [ "$my_pid_status" -ne 0 ]; then - echo "Script failed for PR #${PR_NUMBER}" - if [ "$build_size" -lt 1800000 ]; then - cat build_log - else - echo "Build log too large, showing last 100 lines" - tail -100 build_log - fi - exit 1 + echo "Script failed for PR #${PR_NUMBER}" + echo "::group::Validation Logs" + tail -200 build_log + echo "::endgroup::" + exit 1 else - echo "Script completed successfully for PR #${PR_NUMBER}" - if [ "$build_size" -lt 1800000 ]; then - cat build_log - else - echo "Build log too large, showing last 100 lines" - tail -100 build_log - fi + echo "Script completed successfully for PR #${PR_NUMBER}" fi - name: Fetch base branch @@ -205,9 +214,10 @@ jobs: echo "Build failed!" if [ "$LOG_SIZE" -lt 1800000 ]; then - echo "----- FULL BUILD LOG -----" - echo "::group::Build Logs" - cat build_log + echo "----- FULL BUILD LOG -----" + echo "::group::Build Logs" + #cat build_log + tail -200 build_log echo "::endgroup::" else echo "Log too large, showing last 200 lines" @@ -218,22 +228,23 @@ jobs: else echo "Build succeeded!" - if [ "$LOG_SIZE" -lt 1800000 ]; then - cat build_log - else - echo "Log too large, showing last 200 lines" - tail -200 build_log - fi - fi - + #if [ "$LOG_SIZE" -lt 1800000 ]; then + # cat build_log + #else + # echo "Log too large, showing last 200 lines" + # tail -200 build_log + #fi + fi + # Detect cloned package directory CLONED_PACKAGE=$(ls -td -- */ | head -n 1) if [ -z "$CLONED_PACKAGE" ]; then - echo "No cloned package found" + echo "❌ No cloned package found" exit 1 fi echo "Detected cloned package: $CLONED_PACKAGE" + sudo mv "$CLONED_PACKAGE" package-cache echo "export CLONED_PACKAGE=\"$CLONED_PACKAGE\"" >> package-cache/scanner-env.sh From 503258cefabc4b21760e0cf05f2f2ead05d51187 Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Sun, 29 Mar 2026 10:17:10 +0530 Subject: [PATCH 14/30] Update build_package.sh --- gha-script/build_package.sh | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/gha-script/build_package.sh b/gha-script/build_package.sh index 8c1cd2ee24..f6308ac23a 100755 --- a/gha-script/build_package.sh +++ b/gha-script/build_package.sh @@ -55,21 +55,21 @@ if [ $my_pid_status != 0 ]; then echo "Script execution failed for "$PKG_DIR_PATH$BUILD_SCRIPT" "$VERSION" " echo "*************************************************************************************" - if [ $build_size -lt 1800000 ]; - then - cat build_log - else - tail -100 build_log - fi + # if [ $build_size -lt 1800000 ]; + # then + # cat build_log + # else + # tail -100 build_log + # fi exit 1 else echo "Script execution completed successfully for "$PKG_DIR_PATH$BUILD_SCRIPT" "$VERSION" " echo "*************************************************************************************" - if [ $build_size -lt 1800000 ]; - then - cat build_log - else - tail -100 build_log - fi + # if [ $build_size -lt 1800000 ]; + # then + # cat build_log + # else + # tail -100 build_log + # fi fi exit 0 From 7011de1c20f98f5d2dcbb7c3d7504c81a64b482d Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Sun, 29 Mar 2026 10:41:05 +0530 Subject: [PATCH 15/30] Update pr-build.yaml --- .github/workflows/pr-build.yaml | 59 +++++++++++++++++---------------- 1 file changed, 30 insertions(+), 29 deletions(-) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index a4a815ed01..512d0fa96b 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -204,37 +204,38 @@ jobs: chmod +x ./gha-script/build_package.sh echo "========== START BUILD ==========" set -uo pipefail - bash ./gha-script/build_package.sh 2>&1 | tee build_log - BUILD_STATUS=${PIPESTATUS[0]} + #bash ./gha-script/build_package.sh 2>&1 | tee build_log + bash ./gha-script/build_package.sh + #BUILD_STATUS=${PIPESTATUS[0]} echo "========== BUILD FINISHED ==========" - LOG_SIZE=$(stat -c %s build_log) - - if [ "$BUILD_STATUS" -ne 0 ]; then - echo "Build failed!" - - if [ "$LOG_SIZE" -lt 1800000 ]; then - echo "----- FULL BUILD LOG -----" - echo "::group::Build Logs" - #cat build_log - tail -200 build_log - echo "::endgroup::" - else - echo "Log too large, showing last 200 lines" - tail -200 build_log - fi - - exit 1 - else - echo "Build succeeded!" - - #if [ "$LOG_SIZE" -lt 1800000 ]; then - # cat build_log - #else - # echo "Log too large, showing last 200 lines" - # tail -200 build_log - #fi - fi + #LOG_SIZE=$(stat -c %s build_log) + + # if [ "$BUILD_STATUS" -ne 0 ]; then + # echo "Build failed!" + + # if [ "$LOG_SIZE" -lt 1800000 ]; then + # echo "----- FULL BUILD LOG -----" + # echo "::group::Build Logs" + # #cat build_log + # tail -200 build_log + # echo "::endgroup::" + # else + # echo "Log too large, showing last 200 lines" + # tail -200 build_log + # fi + + # exit 1 + # else + # echo "Build succeeded!" + + # #if [ "$LOG_SIZE" -lt 1800000 ]; then + # # cat build_log + # #else + # # echo "Log too large, showing last 200 lines" + # # tail -200 build_log + # #fi + # fi # Detect cloned package directory CLONED_PACKAGE=$(ls -td -- */ | head -n 1) From 89df97352c94281d38c72c01b4872e2066b2e2f2 Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Sun, 29 Mar 2026 11:43:17 +0530 Subject: [PATCH 16/30] Refactor PR build workflow and simplify scripts Refactor PR build workflow by removing commented code and simplifying the validate_builds.py execution. Update environment variable handling and streamline the build process for better clarity and performance. --- .github/workflows/pr-build.yaml | 277 ++++++++++++++------------------ 1 file changed, 123 insertions(+), 154 deletions(-) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index 512d0fa96b..0210b15f89 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -26,7 +26,80 @@ run-name: > && format('Retriggered build on {0} for PR {1}', inputs.large-runner, inputs.pr_number) || github.event.pull_request.title }} +# ===================== ANCHORS ===================== +x-wheel-job: &wheel-job + needs: build_info + runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} + +x-wheel-env: &wheel-env + GHA_CURRENCY_SERVICE_ID_API_KEY: ${{ secrets.GHA_CURRENCY_SERVICE_ID_API_KEY }} + GHA_CURRENCY_SERVICE_ID: ${{ secrets.GHA_CURRENCY_SERVICE_ID }} + PACKAGE_NAME: ${{ env.PACKAGE_NAME }} + VERSION: ${{ env.VERSION }} + +x-wheel-steps: &wheel-steps + - name: Checkout code + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Install system dependencies + run: sudo apt update -y + + - name: Download package-cache + uses: actions/download-artifact@v7 + with: + name: package-cache + + - name: Extract package cache + run: tar -xzf package-cache.tar.gz + + - name: Run build_wheels.sh + run: | + ls + echo "---------------------updated cache-----------------------" + ls package-cache + + chmod +x package-cache/variable.sh + chmod +x package-cache/scanner-env.sh + source package-cache/variable.sh + source package-cache/scanner-env.sh + + chmod +x ./gha-script/build_wheels.sh + bash ./gha-script/build_wheels.sh + + WORKSPACE=$(pwd) + LOG_NAME="${PACKAGE_NAME}_${VERSION}_wheel_py${PYTHON_VERSION}_log.gz" + + if [ -f "$WORKSPACE/wheel_build_log" ]; then + gzip "$WORKSPACE/wheel_build_log" + mv "$WORKSPACE/wheel_build_log.gz" "$WORKSPACE/$LOG_NAME" + else + echo "Wheel build completed for ${PACKAGE_NAME} ${VERSION} on Python ${PYTHON_VERSION}" \ + > "$WORKSPACE/${PACKAGE_NAME}_${VERSION}_wheel_py${PYTHON_VERSION}_log" + gzip "$WORKSPACE/${PACKAGE_NAME}_${VERSION}_wheel_py${PYTHON_VERSION}_log" + LOG_NAME="${PACKAGE_NAME}_${VERSION}_wheel_py${PYTHON_VERSION}_log.gz" + fi + + chmod +x ./gha-script/upload-scripts/upload_file.sh + bash ./gha-script/upload-scripts/upload_file.sh $LOG_NAME + + - name: Upload wheel artifact + run: | + if ls *.whl 1> /dev/null 2>&1; then + sudo chmod a+r *.whl + WHEEL_FILE=$(ls *.whl) + SHA256_VALUE=$(cat sha256.sha) + chmod +x ./gha-script/upload-scripts/upload_wheel.sh + bash ./gha-script/upload-scripts/upload_wheel.sh $WHEEL_FILE $SHA256_VALUE + else + echo "No wheel file found!" + exit 1 + fi + +# ===================== JOBS ===================== jobs: + build_info: runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} @@ -58,74 +131,28 @@ jobs: - name: Set PR number run: echo "PR_NUMBER=${{ github.event.pull_request.number || inputs.pr_number }}" >> $GITHUB_ENV - - - - name: Run validate_builds.py script with live logs + - name: Run validate_builds.py run: | - python3 -u gha-script/validate_builds.py ${PR_NUMBER:-false} 2>&1 | tee build_log - my_pid_status=${PIPESTATUS[0]} - - build_size=$(stat -c %s build_log) - - #if [ "$my_pid_status" -ne 0 ]; then - # echo "Script failed for PR #${PR_NUMBER}" - # if [ "$build_size" -lt 1800000 ]; then - # cat build_log - # else - # echo "Build log too large, showing last 100 lines" - # tail -100 build_log - # fi - # exit 1 - #else - # echo "Script completed successfully for PR #${PR_NUMBER}" - # if [ "$build_size" -lt 1800000 ]; then - # cat build_log - # else - # echo "Build log too large, showing last 100 lines" - # tail -100 build_log - # fi - #fi - if [ "$my_pid_status" -ne 0 ]; then - echo "Script failed for PR #${PR_NUMBER}" - echo "::group::Validation Logs" - tail -200 build_log - echo "::endgroup::" - exit 1 - else - echo "Script completed successfully for PR #${PR_NUMBER}" - fi + python3 -u gha-script/validate_builds.py ${PR_NUMBER:-false} - name: Fetch base branch - run: | - git fetch origin ${{ github.base_ref }} --depth=1 + run: git fetch origin ${{ github.base_ref }} --depth=1 - name: Locate and parse build_info.json run: | BUILD_INFO_FILE=$(git diff --name-only origin/${{ github.base_ref }}...HEAD | grep 'build_info.json' | head -n 1) - if [ -z "$BUILD_INFO_FILE" ]; then echo "build_info.json not found!" exit 1 fi - echo "Using build_info: $BUILD_INFO_FILE" - PACKAGE_NAME=$(jq -r '.package_name // ""' $BUILD_INFO_FILE) VERSION=$(jq -r '.version // ""' $BUILD_INFO_FILE) - if [ -z "$PACKAGE_NAME" ] || [ -z "$VERSION" ]; then - echo "PACKAGE_NAME or VERSION missing in build_info.json" - exit 1 - fi - - echo "PACKAGE_NAME=$PACKAGE_NAME" - echo "VERSION=$VERSION" - - # Export for next step - echo "BUILD_INFO_FILE=$BUILD_INFO_FILE" >> $GITHUB_ENV echo "PACKAGE_NAME=$PACKAGE_NAME" >> $GITHUB_ENV echo "VERSION=$VERSION" >> $GITHUB_ENV + echo "BUILD_INFO_FILE=$BUILD_INFO_FILE" >> $GITHUB_ENV - name: Read build_info.json run: | @@ -135,29 +162,17 @@ jobs: - name: Create scanner-env.sh run: | mkdir -p package-cache - - echo "Using build_info: $BUILD_INFO_FILE" - PACKAGE_DIR=$(jq -r '.package_dir // ""' $BUILD_INFO_FILE) WHEEL_BUILD=$(jq -r '.wheel_build // "false"' $BUILD_INFO_FILE) - DOCKER_BUILD=$(jq -r '.docker_build // "false"' $BUILD_INFO_FILE) - VALIDATE_BUILD=$(jq -r '.validate_build_script // "true"' $BUILD_INFO_FILE) - cat < package-cache/scanner-env.sh export PACKAGE_NAME=$PACKAGE_NAME export VERSION=$VERSION export PACKAGE_DIR=$PACKAGE_DIR export WHEEL_BUILD=$WHEEL_BUILD - export BUILD_DOCKER=$DOCKER_BUILD - export VALIDATE_BUILD_SCRIPT=$VALIDATE_BUILD EOF - mv variable.sh package-cache/ - echo "-------------- scanner-env.sh created --------------------" - cat package-cache/scanner-env.sh - echo "-------------- variable.sh --------------------" - cat package-cache/variable.sh + mv variable.sh package-cache/ - name: Archive package cache run: tar -czf package-cache.tar.gz package-cache/ @@ -184,99 +199,53 @@ jobs: run: tar -xzf package-cache.tar.gz - name: Build Package - #env: - # GHA_CURRENCY_SERVICE_ID_API_KEY: ${{ secrets.GHA_CURRENCY_SERVICE_ID_API_KEY }} run: | - echo "Sourcing variable.sh and scanner-env.sh..." source package-cache/variable.sh source package-cache/scanner-env.sh - echo "===== variable.sh =====" - cat package-cache/variable.sh - - echo "===== scanner-env.sh =====" - cat package-cache/scanner-env.sh - - echo "============== CPU INFO ==============" - lscpu - echo "======================================" - chmod +x ./gha-script/build_package.sh - echo "========== START BUILD ==========" - set -uo pipefail - #bash ./gha-script/build_package.sh 2>&1 | tee build_log - bash ./gha-script/build_package.sh - #BUILD_STATUS=${PIPESTATUS[0]} - echo "========== BUILD FINISHED ==========" - - #LOG_SIZE=$(stat -c %s build_log) - - # if [ "$BUILD_STATUS" -ne 0 ]; then - # echo "Build failed!" - - # if [ "$LOG_SIZE" -lt 1800000 ]; then - # echo "----- FULL BUILD LOG -----" - # echo "::group::Build Logs" - # #cat build_log - # tail -200 build_log - # echo "::endgroup::" - # else - # echo "Log too large, showing last 200 lines" - # tail -200 build_log - # fi - - # exit 1 - # else - # echo "Build succeeded!" - - # #if [ "$LOG_SIZE" -lt 1800000 ]; then - # # cat build_log - # #else - # # echo "Log too large, showing last 200 lines" - # # tail -200 build_log - # #fi - # fi - - # Detect cloned package directory - CLONED_PACKAGE=$(ls -td -- */ | head -n 1) - if [ -z "$CLONED_PACKAGE" ]; then - echo "❌ No cloned package found" - exit 1 - fi - - echo "Detected cloned package: $CLONED_PACKAGE" - - sudo mv "$CLONED_PACKAGE" package-cache - - echo "export CLONED_PACKAGE=\"$CLONED_PACKAGE\"" >> package-cache/scanner-env.sh - - echo "----- Updated scanner-env.sh -----" - cat package-cache/scanner-env.sh - - cd package-cache - sudo chown $USER:$USER -R . - - chmod +x ../gha-script/pre_process.sh - bash ../gha-script/pre_process.sh - - cd $GITHUB_WORKSPACE - - #gzip build_log || true - - #chmod +x ./gha-script/upload-scripts/upload_file.sh - #bash ./gha-script/upload-scripts/upload_file.sh build_log.gz - - - name: Fix permissions on package-cache - run: | - USER=$(whoami) - sudo chown -R $USER:$USER package-cache - sudo chmod -R u+rwX,go+rX,go-w package-cache - - - name: Archive updated package cache - run: tar -czf package-cache.tar.gz package-cache/ - - - name: Upload updated package-cache - uses: actions/upload-artifact@v6 - with: - name: updated-package-cache - path: package-cache.tar.gz + bash ./gha-script/build_package.sh + +# ===================== WHEEL JOBS ===================== + + wheel_build_py39: + <<: *wheel-job + if: ${{ env.WHEEL_BUILD == 'true' }} + continue-on-error: true + env: + <<: *wheel-env + PYTHON_VERSION: "3.9" + steps: *wheel-steps + + wheel_build_py310: + <<: *wheel-job + if: ${{ env.WHEEL_BUILD == 'true' }} + env: + <<: *wheel-env + PYTHON_VERSION: "3.10" + steps: *wheel-steps + + wheel_build_py311: + <<: *wheel-job + if: ${{ env.WHEEL_BUILD == 'true' }} + env: + <<: *wheel-env + PYTHON_VERSION: "3.11" + steps: *wheel-steps + + wheel_build_py312: + <<: *wheel-job + if: ${{ env.WHEEL_BUILD == 'true' }} + env: + <<: *wheel-env + PYTHON_VERSION: "3.12" + steps: *wheel-steps + + wheel_build_py313: + <<: *wheel-job + if: ${{ env.WHEEL_BUILD == 'true' }} + continue-on-error: true + env: + <<: *wheel-env + PYTHON_VERSION: "3.13" + steps: *wheel-steps From d4d5ae840ff3671be55f6000bf188f1723d36133 Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Sun, 29 Mar 2026 12:29:07 +0530 Subject: [PATCH 17/30] Refactor PR build workflow for clarity and logging Refactor GitHub Actions workflow for better readability and functionality. Removed redundant anchors and improved logging for the validate_builds.py script. --- .github/workflows/pr-build.yaml | 208 +++++++++++++++----------------- 1 file changed, 100 insertions(+), 108 deletions(-) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index 0210b15f89..6479ff213f 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -26,78 +26,6 @@ run-name: > && format('Retriggered build on {0} for PR {1}', inputs.large-runner, inputs.pr_number) || github.event.pull_request.title }} -# ===================== ANCHORS ===================== -x-wheel-job: &wheel-job - needs: build_info - runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} - -x-wheel-env: &wheel-env - GHA_CURRENCY_SERVICE_ID_API_KEY: ${{ secrets.GHA_CURRENCY_SERVICE_ID_API_KEY }} - GHA_CURRENCY_SERVICE_ID: ${{ secrets.GHA_CURRENCY_SERVICE_ID }} - PACKAGE_NAME: ${{ env.PACKAGE_NAME }} - VERSION: ${{ env.VERSION }} - -x-wheel-steps: &wheel-steps - - name: Checkout code - uses: actions/checkout@v6 - with: - fetch-depth: 0 - - - name: Install system dependencies - run: sudo apt update -y - - - name: Download package-cache - uses: actions/download-artifact@v7 - with: - name: package-cache - - - name: Extract package cache - run: tar -xzf package-cache.tar.gz - - - name: Run build_wheels.sh - run: | - ls - echo "---------------------updated cache-----------------------" - ls package-cache - - chmod +x package-cache/variable.sh - chmod +x package-cache/scanner-env.sh - source package-cache/variable.sh - source package-cache/scanner-env.sh - - chmod +x ./gha-script/build_wheels.sh - bash ./gha-script/build_wheels.sh - - WORKSPACE=$(pwd) - LOG_NAME="${PACKAGE_NAME}_${VERSION}_wheel_py${PYTHON_VERSION}_log.gz" - - if [ -f "$WORKSPACE/wheel_build_log" ]; then - gzip "$WORKSPACE/wheel_build_log" - mv "$WORKSPACE/wheel_build_log.gz" "$WORKSPACE/$LOG_NAME" - else - echo "Wheel build completed for ${PACKAGE_NAME} ${VERSION} on Python ${PYTHON_VERSION}" \ - > "$WORKSPACE/${PACKAGE_NAME}_${VERSION}_wheel_py${PYTHON_VERSION}_log" - gzip "$WORKSPACE/${PACKAGE_NAME}_${VERSION}_wheel_py${PYTHON_VERSION}_log" - LOG_NAME="${PACKAGE_NAME}_${VERSION}_wheel_py${PYTHON_VERSION}_log.gz" - fi - - chmod +x ./gha-script/upload-scripts/upload_file.sh - bash ./gha-script/upload-scripts/upload_file.sh $LOG_NAME - - - name: Upload wheel artifact - run: | - if ls *.whl 1> /dev/null 2>&1; then - sudo chmod a+r *.whl - WHEEL_FILE=$(ls *.whl) - SHA256_VALUE=$(cat sha256.sha) - chmod +x ./gha-script/upload-scripts/upload_wheel.sh - bash ./gha-script/upload-scripts/upload_wheel.sh $WHEEL_FILE $SHA256_VALUE - else - echo "No wheel file found!" - exit 1 - fi - -# ===================== JOBS ===================== jobs: build_info: @@ -131,9 +59,20 @@ jobs: - name: Set PR number run: echo "PR_NUMBER=${{ github.event.pull_request.number || inputs.pr_number }}" >> $GITHUB_ENV - - name: Run validate_builds.py + - name: Run validate_builds.py script with live logs run: | - python3 -u gha-script/validate_builds.py ${PR_NUMBER:-false} + python3 -u gha-script/validate_builds.py ${PR_NUMBER:-false} 2>&1 | tee build_log + my_pid_status=${PIPESTATUS[0]} + + if [ "$my_pid_status" -ne 0 ]; then + echo "Script failed for PR #${PR_NUMBER}" + echo "::group::Validation Logs" + tail -200 build_log + echo "::endgroup::" + exit 1 + else + echo "Script completed successfully for PR #${PR_NUMBER}" + fi - name: Fetch base branch run: git fetch origin ${{ github.base_ref }} --depth=1 @@ -150,9 +89,9 @@ jobs: PACKAGE_NAME=$(jq -r '.package_name // ""' $BUILD_INFO_FILE) VERSION=$(jq -r '.version // ""' $BUILD_INFO_FILE) + echo "BUILD_INFO_FILE=$BUILD_INFO_FILE" >> $GITHUB_ENV echo "PACKAGE_NAME=$PACKAGE_NAME" >> $GITHUB_ENV echo "VERSION=$VERSION" >> $GITHUB_ENV - echo "BUILD_INFO_FILE=$BUILD_INFO_FILE" >> $GITHUB_ENV - name: Read build_info.json run: | @@ -162,6 +101,7 @@ jobs: - name: Create scanner-env.sh run: | mkdir -p package-cache + PACKAGE_DIR=$(jq -r '.package_dir // ""' $BUILD_INFO_FILE) WHEEL_BUILD=$(jq -r '.wheel_build // "false"' $BUILD_INFO_FILE) @@ -208,44 +148,96 @@ jobs: # ===================== WHEEL JOBS ===================== + wheel_build_py39: - <<: *wheel-job - if: ${{ env.WHEEL_BUILD == 'true' }} + needs: build_info + if: ${{ always() }} + runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} continue-on-error: true env: - <<: *wheel-env PYTHON_VERSION: "3.9" - steps: *wheel-steps - wheel_build_py310: - <<: *wheel-job - if: ${{ env.WHEEL_BUILD == 'true' }} - env: - <<: *wheel-env - PYTHON_VERSION: "3.10" - steps: *wheel-steps + steps: + - name: Checkout code + uses: actions/checkout@v6 + with: + fetch-depth: 0 - wheel_build_py311: - <<: *wheel-job - if: ${{ env.WHEEL_BUILD == 'true' }} - env: - <<: *wheel-env - PYTHON_VERSION: "3.11" - steps: *wheel-steps + - name: Install system dependencies + run: | + sudo apt update -y - wheel_build_py312: - <<: *wheel-job - if: ${{ env.WHEEL_BUILD == 'true' }} - env: - <<: *wheel-env - PYTHON_VERSION: "3.12" - steps: *wheel-steps + - name: Download package-cache from previous step + uses: actions/download-artifact@v7 + with: + name: package-cache - wheel_build_py313: - <<: *wheel-job - if: ${{ env.WHEEL_BUILD == 'true' }} - continue-on-error: true - env: - <<: *wheel-env - PYTHON_VERSION: "3.13" - steps: *wheel-steps + - name: Extract package cache + run: tar -xzf package-cache.tar.gz + + - name: Run build_wheels.sh + run: | + ls + echo "---------------------updated cache-----------------------" + ls package-cache + + chmod +x package-cache/variable.sh + chmod +x package-cache/scanner-env.sh + source package-cache/variable.sh + source package-cache/scanner-env.sh + + # CONTROL FLAG HERE + if [ "$WHEEL_BUILD" != "true" ]; then + echo "Skipping wheel build as WHEEL_BUILD=false" + exit 0 + fi + + chmod +x ./gha-script/build_wheels.sh + bash ./gha-script/build_wheels.sh + + echo "===========after execution ==================" + sudo apt update -y + sudo lsb_release -a 2>/dev/null || echo "lsb_release not available" + sudo uname -a + + # echo "===== AFTER BUILD: checking for wheel_build_log =====" + # WORKSPACE=$(pwd) + # echo "Workspace = $WORKSPACE" + # ls -lh + + # echo "----- specifically checking for wheel_build_log -----" + # ls -lh "$WORKSPACE/wheel_build_log" || echo "wheel_build_log NOT found!" + + # # ======= HANDLE LOG FILE (NO UPLOAD) ======= + # LOG_NAME="${PACKAGE_NAME}_${VERSION}_wheel_py39_log.gz" + + # if [ -f "$WORKSPACE/wheel_build_log" ]; then + # echo "Found wheel_build_log — compressing it" + # gzip "$WORKSPACE/wheel_build_log" + # mv "$WORKSPACE/wheel_build_log.gz" "$WORKSPACE/$LOG_NAME" + # else + # echo "wheel_build_log missing — creating fallback log" + # echo "Wheel build completed for ${PACKAGE_NAME} ${VERSION} on Python 3.9" \ + # > "$WORKSPACE/${PACKAGE_NAME}_${VERSION}_wheel_py39_log" + # gzip "$WORKSPACE/${PACKAGE_NAME}_${VERSION}_wheel_py39_log" + # LOG_NAME="${PACKAGE_NAME}_${VERSION}_wheel_py39_log.gz" + # fi + + # echo "Final log file (NOT uploaded): $LOG_NAME" + # ls -lh "$WORKSPACE/$LOG_NAME" + + # - name: Verify wheel artifact (no upload) + # run: | + # if ls *.whl 1> /dev/null 2>&1; then + # echo "Wheel file generated:" + # ls -lh *.whl + # else + # echo "No wheel file found!" + # exit 1 + # fi + + + + + + From 64351a82c7e348a7351763153a7293cb30d1e9aa Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Mon, 30 Mar 2026 20:17:42 +0530 Subject: [PATCH 18/30] Update pr-build.yaml --- .github/workflows/pr-build.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index 6479ff213f..fc62bebb20 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -155,6 +155,8 @@ jobs: runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} continue-on-error: true env: + GHA_CURRENCY_SERVICE_ID_API_KEY: ${{ secrets.GHA_CURRENCY_SERVICE_ID_API_KEY }} + GHA_CURRENCY_SERVICE_ID: ${{ secrets.GHA_CURRENCY_SERVICE_ID }} PYTHON_VERSION: "3.9" steps: From 9ba0bb7cc170d179dacd9b32d6eed7dc0a2cf358 Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Mon, 30 Mar 2026 20:44:57 +0530 Subject: [PATCH 19/30] Add wheel_build_py310 job for Python 3.10 Added a new job 'wheel_build_py310' for building wheels with Python 3.10. This job includes steps for checking out code, installing dependencies, downloading package cache, extracting it, and running the build script. --- .github/workflows/pr-build.yaml | 93 ++++++++++++++++++++------------- 1 file changed, 58 insertions(+), 35 deletions(-) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index fc62bebb20..fa8340d3c4 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -202,41 +202,64 @@ jobs: sudo lsb_release -a 2>/dev/null || echo "lsb_release not available" sudo uname -a - # echo "===== AFTER BUILD: checking for wheel_build_log =====" - # WORKSPACE=$(pwd) - # echo "Workspace = $WORKSPACE" - # ls -lh - - # echo "----- specifically checking for wheel_build_log -----" - # ls -lh "$WORKSPACE/wheel_build_log" || echo "wheel_build_log NOT found!" - - # # ======= HANDLE LOG FILE (NO UPLOAD) ======= - # LOG_NAME="${PACKAGE_NAME}_${VERSION}_wheel_py39_log.gz" - - # if [ -f "$WORKSPACE/wheel_build_log" ]; then - # echo "Found wheel_build_log — compressing it" - # gzip "$WORKSPACE/wheel_build_log" - # mv "$WORKSPACE/wheel_build_log.gz" "$WORKSPACE/$LOG_NAME" - # else - # echo "wheel_build_log missing — creating fallback log" - # echo "Wheel build completed for ${PACKAGE_NAME} ${VERSION} on Python 3.9" \ - # > "$WORKSPACE/${PACKAGE_NAME}_${VERSION}_wheel_py39_log" - # gzip "$WORKSPACE/${PACKAGE_NAME}_${VERSION}_wheel_py39_log" - # LOG_NAME="${PACKAGE_NAME}_${VERSION}_wheel_py39_log.gz" - # fi - - # echo "Final log file (NOT uploaded): $LOG_NAME" - # ls -lh "$WORKSPACE/$LOG_NAME" - - # - name: Verify wheel artifact (no upload) - # run: | - # if ls *.whl 1> /dev/null 2>&1; then - # echo "Wheel file generated:" - # ls -lh *.whl - # else - # echo "No wheel file found!" - # exit 1 - # fi + + wheel_build_py310: + needs: build_info + if: ${{ always() }} + runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} + continue-on-error: true + env: + GHA_CURRENCY_SERVICE_ID_API_KEY: ${{ secrets.GHA_CURRENCY_SERVICE_ID_API_KEY }} + GHA_CURRENCY_SERVICE_ID: ${{ secrets.GHA_CURRENCY_SERVICE_ID }} + PYTHON_VERSION: "3.10" + + steps: + - name: Checkout code + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Install system dependencies + run: | + sudo apt update -y + + - name: Download package-cache from previous step + uses: actions/download-artifact@v7 + with: + name: package-cache + + - name: Extract package cache + run: tar -xzf package-cache.tar.gz + + - name: Run build_wheels.sh + run: | + ls + echo "---------------------updated cache-----------------------" + ls package-cache + + chmod +x package-cache/variable.sh + chmod +x package-cache/scanner-env.sh + source package-cache/variable.sh + source package-cache/scanner-env.sh + + # CONTROL FLAG HERE + if [ "$WHEEL_BUILD" != "true" ]; then + echo "Skipping wheel build as WHEEL_BUILD=false" + exit 0 + fi + + chmod +x ./gha-script/build_wheels.sh + bash ./gha-script/build_wheels.sh + + echo "===========after execution ==================" + sudo apt update -y + sudo lsb_release -a 2>/dev/null || echo "lsb_release not available" + sudo uname -a + + + + + From af322d4832cba5cf147c7de35f2af0000f3398c3 Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Mon, 30 Mar 2026 20:46:32 +0530 Subject: [PATCH 20/30] Simplify wheel build logging in build_wheels.sh Removed redundant logging logic for wheel build status. --- gha-script/build_wheels.sh | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/gha-script/build_wheels.sh b/gha-script/build_wheels.sh index 37d49b67b6..1ee24c07ee 100644 --- a/gha-script/build_wheels.sh +++ b/gha-script/build_wheels.sh @@ -59,21 +59,30 @@ if [ $wheel_status != 0 ]; then echo "Wheel build failed for "$PKG_DIR_PATH$BUILD_SCRIPT" "$VERSION" " echo "*************************************************************************************" - if [ $log_size -lt 1800000 ]; - then - cat wheel_build_log - else - tail -100 wheel_build_log - fi exit 1 else echo "Script execution completed successfully for "$PKG_DIR_PATH$BUILD_SCRIPT" "$VERSION" " echo "*************************************************************************************" - if [ $log_size -lt 1800000 ]; - then - cat wheel_build_log - else - tail -100 wheel_build_log - fi fi +# if [ $wheel_status != 0 ]; +# then +# echo "Wheel build failed for "$PKG_DIR_PATH$BUILD_SCRIPT" "$VERSION" " +# echo "*************************************************************************************" +# if [ $log_size -lt 1800000 ]; +# then +# cat wheel_build_log +# else +# tail -100 wheel_build_log +# fi +# exit 1 +# else +# echo "Script execution completed successfully for "$PKG_DIR_PATH$BUILD_SCRIPT" "$VERSION" " +# echo "*************************************************************************************" +# if [ $log_size -lt 1800000 ]; +# then +# cat wheel_build_log +# else +# tail -100 wheel_build_log +# fi +# fi exit 0 From bb7ee02ab497f525f4f6dd1f26e3924ea26f9f72 Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Tue, 31 Mar 2026 00:15:01 +0530 Subject: [PATCH 21/30] Modify wheel build jobs in PR workflow Updated the continue-on-error setting for wheel builds and added new jobs for Python 3.11, 3.12, and 3.13. --- .github/workflows/pr-build.yaml | 164 +++++++++++++++++++++++++++++++- 1 file changed, 163 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index fa8340d3c4..821e53896a 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -207,7 +207,7 @@ jobs: needs: build_info if: ${{ always() }} runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} - continue-on-error: true + continue-on-error: false env: GHA_CURRENCY_SERVICE_ID_API_KEY: ${{ secrets.GHA_CURRENCY_SERVICE_ID_API_KEY }} GHA_CURRENCY_SERVICE_ID: ${{ secrets.GHA_CURRENCY_SERVICE_ID }} @@ -255,6 +255,168 @@ jobs: sudo apt update -y sudo lsb_release -a 2>/dev/null || echo "lsb_release not available" sudo uname -a + + + wheel_build_py311: + needs: build_info + if: ${{ always() }} + runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} + continue-on-error: false + env: + GHA_CURRENCY_SERVICE_ID_API_KEY: ${{ secrets.GHA_CURRENCY_SERVICE_ID_API_KEY }} + GHA_CURRENCY_SERVICE_ID: ${{ secrets.GHA_CURRENCY_SERVICE_ID }} + PYTHON_VERSION: "3.11" + + steps: + - name: Checkout code + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Install system dependencies + run: | + sudo apt update -y + + - name: Download package-cache from previous step + uses: actions/download-artifact@v7 + with: + name: package-cache + + - name: Extract package cache + run: tar -xzf package-cache.tar.gz + + - name: Run build_wheels.sh + run: | + ls + echo "---------------------updated cache-----------------------" + ls package-cache + + chmod +x package-cache/variable.sh + chmod +x package-cache/scanner-env.sh + source package-cache/variable.sh + source package-cache/scanner-env.sh + + # CONTROL FLAG HERE + if [ "$WHEEL_BUILD" != "true" ]; then + echo "Skipping wheel build as WHEEL_BUILD=false" + exit 0 + fi + + chmod +x ./gha-script/build_wheels.sh + bash ./gha-script/build_wheels.sh + + echo "===========after execution ==================" + sudo apt update -y + sudo lsb_release -a 2>/dev/null || echo "lsb_release not available" + sudo uname -a + + + + wheel_build_py312: + needs: build_info + if: ${{ always() }} + runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} + continue-on-error: false + env: + GHA_CURRENCY_SERVICE_ID_API_KEY: ${{ secrets.GHA_CURRENCY_SERVICE_ID_API_KEY }} + GHA_CURRENCY_SERVICE_ID: ${{ secrets.GHA_CURRENCY_SERVICE_ID }} + PYTHON_VERSION: "3.12" + + steps: + - name: Checkout code + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Install system dependencies + run: | + sudo apt update -y + + - name: Download package-cache from previous step + uses: actions/download-artifact@v7 + with: + name: package-cache + + - name: Extract package cache + run: tar -xzf package-cache.tar.gz + + - name: Run build_wheels.sh + run: | + ls + echo "---------------------updated cache-----------------------" + ls package-cache + + chmod +x package-cache/variable.sh + chmod +x package-cache/scanner-env.sh + source package-cache/variable.sh + source package-cache/scanner-env.sh + + # CONTROL FLAG HERE + if [ "$WHEEL_BUILD" != "true" ]; then + echo "Skipping wheel build as WHEEL_BUILD=false" + exit 0 + fi + + chmod +x ./gha-script/build_wheels.sh + bash ./gha-script/build_wheels.sh + + echo "===========after execution ==================" + sudo apt update -y + sudo lsb_release -a 2>/dev/null || echo "lsb_release not available" + sudo uname -a + + wheel_build_py313: + needs: build_info + if: ${{ always() }} + runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} + continue-on-error: true + env: + GHA_CURRENCY_SERVICE_ID_API_KEY: ${{ secrets.GHA_CURRENCY_SERVICE_ID_API_KEY }} + GHA_CURRENCY_SERVICE_ID: ${{ secrets.GHA_CURRENCY_SERVICE_ID }} + PYTHON_VERSION: "3.13" + + steps: + - name: Checkout code + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Install system dependencies + run: | + sudo apt update -y + + - name: Download package-cache from previous step + uses: actions/download-artifact@v7 + with: + name: package-cache + + - name: Extract package cache + run: tar -xzf package-cache.tar.gz + + - name: Run build_wheels.sh + run: | + ls + echo "---------------------updated cache-----------------------" + ls package-cache + + chmod +x package-cache/variable.sh + chmod +x package-cache/scanner-env.sh + source package-cache/variable.sh + source package-cache/scanner-env.sh + + # CONTROL FLAG HERE + if [ "$WHEEL_BUILD" != "true" ]; then + echo "Skipping wheel build as WHEEL_BUILD=false" + exit 0 + fi + + chmod +x ./gha-script/build_wheels.sh + bash ./gha-script/build_wheels.sh + + echo "===========after execution ==================" + sudo apt update -y + sudo lsb_release -a 2>/dev/null || echo "lsb_release not available" + sudo uname -a From 4b80b471e54df8d48e64e12e30c9adf2b5a608b1 Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Tue, 31 Mar 2026 00:31:16 +0530 Subject: [PATCH 22/30] Add Docker build step to PR workflow --- .github/workflows/pr-build.yaml | 62 +++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index 821e53896a..a7bc5aeb47 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -417,6 +417,68 @@ jobs: sudo apt update -y sudo lsb_release -a 2>/dev/null || echo "lsb_release not available" sudo uname -a + + + + build_docker: + needs: build + if: ${{ always() }} + runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} + + steps: + - name: Checkout code + uses: actions/checkout@v6 + + - name: Download package-cache + uses: actions/download-artifact@v7 + with: + name: updated-package-cache + + - name: Extract package cache + run: tar -xzf package-cache.tar.gz + + - name: Build Docker Image + run: | + echo "===== Sourcing environment =====" + ls package-cache + + chmod +x package-cache/variable.sh + chmod +x package-cache/scanner-env.sh + source package-cache/variable.sh + source package-cache/scanner-env.sh + + # CONTROL FLAG + if [ "$BUILD_DOCKER" != "true" ]; then + echo "Skipping Docker build as BUILD_DOCKER=false" + exit 0 + fi + + echo "===== Starting Docker build =====" + chmod +x ./gha-script/build_docker.sh + bash ./gha-script/build_docker.sh + + echo "===== Docker images after build =====" + docker images + + echo "===== Saving Docker image =====" + docker save -o package-cache/image.tar "$IMAGE_NAME" + + ls -lh package-cache/image.tar + + # - name: Fix permissions on package-cache + # run: | + # USER=$(whoami) + # sudo chown -R $USER:$USER package-cache + # sudo chmod -R u+rwX,go+rX,go-w package-cache + + # - name: Archive package cache with image + # run: tar -czf package-cache.tar.gz package-cache/ + + # - name: Upload package-cache with image.tar + # uses: actions/upload-artifact@v6 + # with: + # name: package-cache-with-image + # path: package-cache.tar.gz From 564508cf995340bd4f9b37ec50bec7b0661db282 Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Tue, 31 Mar 2026 00:34:52 +0530 Subject: [PATCH 23/30] Update pr-build.yaml --- .github/workflows/pr-build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index a7bc5aeb47..48349f58dc 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -421,7 +421,7 @@ jobs: build_docker: - needs: build + needs: build_info if: ${{ always() }} runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} From 60eac8e0768b29038cfab932d4773b52bba86b85 Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Tue, 31 Mar 2026 00:45:20 +0530 Subject: [PATCH 24/30] Update pr-build.yaml --- .github/workflows/pr-build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index 48349f58dc..f2418bdcd8 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -432,7 +432,7 @@ jobs: - name: Download package-cache uses: actions/download-artifact@v7 with: - name: updated-package-cache + name: package-cache - name: Extract package cache run: tar -xzf package-cache.tar.gz From 316ed53c5adb4db226bc4cb1423823ac8efb87e8 Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Tue, 31 Mar 2026 01:04:16 +0530 Subject: [PATCH 25/30] Update pr-build.yaml --- .github/workflows/pr-build.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index f2418bdcd8..ae3719061a 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -447,9 +447,10 @@ jobs: source package-cache/variable.sh source package-cache/scanner-env.sh - # CONTROL FLAG - if [ "$BUILD_DOCKER" != "true" ]; then - echo "Skipping Docker build as BUILD_DOCKER=false" + BUILD_DOCKER=$(echo "$BUILD_DOCKER" | tr -d '[:space:]' | tr '[:upper:]' '[:lower:]') + + if [[ "$BUILD_DOCKER" != "true" ]]; then + echo "Skipping Docker build as BUILD_DOCKER=$BUILD_DOCKER" exit 0 fi From da0ad610d6396b4c93f783ebb20cfa975f5709bf Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Tue, 31 Mar 2026 10:12:25 +0530 Subject: [PATCH 26/30] Log contents of variable.sh and scanner-env.sh Add logging for variable.sh and scanner-env.sh contents --- .github/workflows/pr-build.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index ae3719061a..f2c72ceaf1 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -143,6 +143,11 @@ jobs: source package-cache/variable.sh source package-cache/scanner-env.sh + echo "------------------- variable.sh -----------------------------" + cat package-cache/variable.sh + echo "------------------- scanner-env.sh -----------------------------" + cat package-cache/scanner-env.sh + chmod +x ./gha-script/build_package.sh bash ./gha-script/build_package.sh From 7872748411344229097b1605848c9951fc69121c Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Tue, 31 Mar 2026 10:26:09 +0530 Subject: [PATCH 27/30] Update pr-build.yaml --- .github/workflows/pr-build.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index f2c72ceaf1..1df31eca3a 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -105,11 +105,19 @@ jobs: PACKAGE_DIR=$(jq -r '.package_dir // ""' $BUILD_INFO_FILE) WHEEL_BUILD=$(jq -r '.wheel_build // "false"' $BUILD_INFO_FILE) + # Robust docker_build extraction + if jq -e '.docker_build == true or .docker_build == "true"' "$BUILD_INFO_FILE" > /dev/null; then + DOCKER_BUILD="true" + else + DOCKER_BUILD="false" + fi + cat < package-cache/scanner-env.sh export PACKAGE_NAME=$PACKAGE_NAME export VERSION=$VERSION export PACKAGE_DIR=$PACKAGE_DIR export WHEEL_BUILD=$WHEEL_BUILD + export BUILD_DOCKER=$DOCKER_BUILD EOF mv variable.sh package-cache/ From 4352263af5953d5a9ca3961a29f6c48a333a4010 Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Tue, 31 Mar 2026 17:59:27 +0530 Subject: [PATCH 28/30] Update pr-build.yaml --- .github/workflows/pr-build.yaml | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index 1df31eca3a..296ffcebe4 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -79,11 +79,30 @@ jobs: - name: Locate and parse build_info.json run: | - BUILD_INFO_FILE=$(git diff --name-only origin/${{ github.base_ref }}...HEAD | grep 'build_info.json' | head -n 1) + # BUILD_INFO_FILE=$(git diff --name-only origin/${{ github.base_ref }}...HEAD | grep 'build_info.json' | head -n 1) + + # if [ -z "$BUILD_INFO_FILE" ]; then + # echo "build_info.json not found!" + # exit 1 + # fi + + CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD) + + BUILD_INFO_FILE=$(echo "$CHANGED_FILES" | grep 'build_info.json' | head -n 1) if [ -z "$BUILD_INFO_FILE" ]; then - echo "build_info.json not found!" - exit 1 + echo "No build_info.json modified, trying to detect from changed files..." + + PACKAGE_DIR=$(echo "$CHANGED_FILES" | head -n 1 | cut -d'/' -f1-2) + + BUILD_INFO_FILE="$PACKAGE_DIR/build_info.json" + + if [ ! -f "$BUILD_INFO_FILE" ]; then + echo "Could not locate build_info.json!" + exit 1 + fi + + echo "Using fallback build_info: $BUILD_INFO_FILE" fi PACKAGE_NAME=$(jq -r '.package_name // ""' $BUILD_INFO_FILE) From 68dff629812969c834501c1c546956e1d9cf6542 Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Tue, 31 Mar 2026 18:35:53 +0530 Subject: [PATCH 29/30] Update pr-build.yaml --- .github/workflows/pr-build.yaml | 295 +++++--------------------------- 1 file changed, 46 insertions(+), 249 deletions(-) diff --git a/.github/workflows/pr-build.yaml b/.github/workflows/pr-build.yaml index 296ffcebe4..68a1d72689 100644 --- a/.github/workflows/pr-build.yaml +++ b/.github/workflows/pr-build.yaml @@ -32,6 +32,10 @@ jobs: runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} steps: + # - name: Checkout code + # uses: actions/checkout@v6 + # with: + # fetch-depth: 0 - name: Checkout code (Pull Request) if: github.event_name == 'pull_request' uses: actions/checkout@v6 @@ -79,13 +83,6 @@ jobs: - name: Locate and parse build_info.json run: | - # BUILD_INFO_FILE=$(git diff --name-only origin/${{ github.base_ref }}...HEAD | grep 'build_info.json' | head -n 1) - - # if [ -z "$BUILD_INFO_FILE" ]; then - # echo "build_info.json not found!" - # exit 1 - # fi - CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD) BUILD_INFO_FILE=$(echo "$CHANGED_FILES" | grep 'build_info.json' | head -n 1) @@ -93,8 +90,7 @@ jobs: if [ -z "$BUILD_INFO_FILE" ]; then echo "No build_info.json modified, trying to detect from changed files..." - PACKAGE_DIR=$(echo "$CHANGED_FILES" | head -n 1 | cut -d'/' -f1-2) - + PACKAGE_DIR=$(echo "$CHANGED_FILES" | grep '/' | head -n 1 | cut -d'/' -f1-2) BUILD_INFO_FILE="$PACKAGE_DIR/build_info.json" if [ ! -f "$BUILD_INFO_FILE" ]; then @@ -124,7 +120,6 @@ jobs: PACKAGE_DIR=$(jq -r '.package_dir // ""' $BUILD_INFO_FILE) WHEEL_BUILD=$(jq -r '.wheel_build // "false"' $BUILD_INFO_FILE) - # Robust docker_build extraction if jq -e '.docker_build == true or .docker_build == "true"' "$BUILD_INFO_FILE" > /dev/null; then DOCKER_BUILD="true" else @@ -170,356 +165,158 @@ jobs: source package-cache/variable.sh source package-cache/scanner-env.sh - echo "------------------- variable.sh -----------------------------" - cat package-cache/variable.sh - echo "------------------- scanner-env.sh -----------------------------" - cat package-cache/scanner-env.sh - chmod +x ./gha-script/build_package.sh bash ./gha-script/build_package.sh # ===================== WHEEL JOBS ===================== - wheel_build_py39: needs: build_info - if: ${{ always() }} + if: ${{ success() }} runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} continue-on-error: true env: - GHA_CURRENCY_SERVICE_ID_API_KEY: ${{ secrets.GHA_CURRENCY_SERVICE_ID_API_KEY }} - GHA_CURRENCY_SERVICE_ID: ${{ secrets.GHA_CURRENCY_SERVICE_ID }} PYTHON_VERSION: "3.9" steps: - - name: Checkout code - uses: actions/checkout@v6 + - uses: actions/checkout@v6 with: fetch-depth: 0 - - name: Install system dependencies - run: | - sudo apt update -y + - run: sudo apt update -y - - name: Download package-cache from previous step - uses: actions/download-artifact@v7 + - uses: actions/download-artifact@v7 with: name: package-cache - - name: Extract package cache - run: tar -xzf package-cache.tar.gz - - - name: Run build_wheels.sh - run: | - ls - echo "---------------------updated cache-----------------------" - ls package-cache + - run: tar -xzf package-cache.tar.gz - chmod +x package-cache/variable.sh - chmod +x package-cache/scanner-env.sh + - run: | source package-cache/variable.sh source package-cache/scanner-env.sh - # CONTROL FLAG HERE if [ "$WHEEL_BUILD" != "true" ]; then - echo "Skipping wheel build as WHEEL_BUILD=false" + echo "Skipping wheel build" exit 0 fi chmod +x ./gha-script/build_wheels.sh bash ./gha-script/build_wheels.sh - echo "===========after execution ==================" - sudo apt update -y - sudo lsb_release -a 2>/dev/null || echo "lsb_release not available" - sudo uname -a - - wheel_build_py310: needs: build_info - if: ${{ always() }} + if: ${{ success() }} runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} - continue-on-error: false env: - GHA_CURRENCY_SERVICE_ID_API_KEY: ${{ secrets.GHA_CURRENCY_SERVICE_ID_API_KEY }} - GHA_CURRENCY_SERVICE_ID: ${{ secrets.GHA_CURRENCY_SERVICE_ID }} PYTHON_VERSION: "3.10" steps: - - name: Checkout code - uses: actions/checkout@v6 + - uses: actions/checkout@v6 with: fetch-depth: 0 - - - name: Install system dependencies - run: | - sudo apt update -y - - - name: Download package-cache from previous step - uses: actions/download-artifact@v7 + - run: sudo apt update -y + - uses: actions/download-artifact@v7 with: name: package-cache - - - name: Extract package cache - run: tar -xzf package-cache.tar.gz - - - name: Run build_wheels.sh - run: | - ls - echo "---------------------updated cache-----------------------" - ls package-cache - - chmod +x package-cache/variable.sh - chmod +x package-cache/scanner-env.sh + - run: tar -xzf package-cache.tar.gz + - run: | source package-cache/variable.sh source package-cache/scanner-env.sh - - # CONTROL FLAG HERE - if [ "$WHEEL_BUILD" != "true" ]; then - echo "Skipping wheel build as WHEEL_BUILD=false" - exit 0 - fi - + if [ "$WHEEL_BUILD" != "true" ]; then exit 0; fi chmod +x ./gha-script/build_wheels.sh bash ./gha-script/build_wheels.sh - echo "===========after execution ==================" - sudo apt update -y - sudo lsb_release -a 2>/dev/null || echo "lsb_release not available" - sudo uname -a - - wheel_build_py311: needs: build_info - if: ${{ always() }} + if: ${{ success() }} runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} - continue-on-error: false env: - GHA_CURRENCY_SERVICE_ID_API_KEY: ${{ secrets.GHA_CURRENCY_SERVICE_ID_API_KEY }} - GHA_CURRENCY_SERVICE_ID: ${{ secrets.GHA_CURRENCY_SERVICE_ID }} PYTHON_VERSION: "3.11" steps: - - name: Checkout code - uses: actions/checkout@v6 + - uses: actions/checkout@v6 with: fetch-depth: 0 - - - name: Install system dependencies - run: | - sudo apt update -y - - - name: Download package-cache from previous step - uses: actions/download-artifact@v7 + - run: sudo apt update -y + - uses: actions/download-artifact@v7 with: name: package-cache - - - name: Extract package cache - run: tar -xzf package-cache.tar.gz - - - name: Run build_wheels.sh - run: | - ls - echo "---------------------updated cache-----------------------" - ls package-cache - - chmod +x package-cache/variable.sh - chmod +x package-cache/scanner-env.sh + - run: tar -xzf package-cache.tar.gz + - run: | source package-cache/variable.sh source package-cache/scanner-env.sh - - # CONTROL FLAG HERE - if [ "$WHEEL_BUILD" != "true" ]; then - echo "Skipping wheel build as WHEEL_BUILD=false" - exit 0 - fi - + if [ "$WHEEL_BUILD" != "true" ]; then exit 0; fi chmod +x ./gha-script/build_wheels.sh bash ./gha-script/build_wheels.sh - echo "===========after execution ==================" - sudo apt update -y - sudo lsb_release -a 2>/dev/null || echo "lsb_release not available" - sudo uname -a - - - wheel_build_py312: needs: build_info - if: ${{ always() }} + if: ${{ success() }} runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} - continue-on-error: false env: - GHA_CURRENCY_SERVICE_ID_API_KEY: ${{ secrets.GHA_CURRENCY_SERVICE_ID_API_KEY }} - GHA_CURRENCY_SERVICE_ID: ${{ secrets.GHA_CURRENCY_SERVICE_ID }} PYTHON_VERSION: "3.12" steps: - - name: Checkout code - uses: actions/checkout@v6 + - uses: actions/checkout@v6 with: fetch-depth: 0 - - - name: Install system dependencies - run: | - sudo apt update -y - - - name: Download package-cache from previous step - uses: actions/download-artifact@v7 + - run: sudo apt update -y + - uses: actions/download-artifact@v7 with: name: package-cache - - - name: Extract package cache - run: tar -xzf package-cache.tar.gz - - - name: Run build_wheels.sh - run: | - ls - echo "---------------------updated cache-----------------------" - ls package-cache - - chmod +x package-cache/variable.sh - chmod +x package-cache/scanner-env.sh + - run: tar -xzf package-cache.tar.gz + - run: | source package-cache/variable.sh source package-cache/scanner-env.sh - - # CONTROL FLAG HERE - if [ "$WHEEL_BUILD" != "true" ]; then - echo "Skipping wheel build as WHEEL_BUILD=false" - exit 0 - fi - + if [ "$WHEEL_BUILD" != "true" ]; then exit 0; fi chmod +x ./gha-script/build_wheels.sh bash ./gha-script/build_wheels.sh - echo "===========after execution ==================" - sudo apt update -y - sudo lsb_release -a 2>/dev/null || echo "lsb_release not available" - sudo uname -a - wheel_build_py313: needs: build_info - if: ${{ always() }} + if: ${{ success() }} runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} continue-on-error: true env: - GHA_CURRENCY_SERVICE_ID_API_KEY: ${{ secrets.GHA_CURRENCY_SERVICE_ID_API_KEY }} - GHA_CURRENCY_SERVICE_ID: ${{ secrets.GHA_CURRENCY_SERVICE_ID }} PYTHON_VERSION: "3.13" steps: - - name: Checkout code - uses: actions/checkout@v6 + - uses: actions/checkout@v6 with: fetch-depth: 0 - - - name: Install system dependencies - run: | - sudo apt update -y - - - name: Download package-cache from previous step - uses: actions/download-artifact@v7 + - run: sudo apt update -y + - uses: actions/download-artifact@v7 with: name: package-cache - - - name: Extract package cache - run: tar -xzf package-cache.tar.gz - - - name: Run build_wheels.sh - run: | - ls - echo "---------------------updated cache-----------------------" - ls package-cache - - chmod +x package-cache/variable.sh - chmod +x package-cache/scanner-env.sh + - run: tar -xzf package-cache.tar.gz + - run: | source package-cache/variable.sh source package-cache/scanner-env.sh - - # CONTROL FLAG HERE - if [ "$WHEEL_BUILD" != "true" ]; then - echo "Skipping wheel build as WHEEL_BUILD=false" - exit 0 - fi - + if [ "$WHEEL_BUILD" != "true" ]; then exit 0; fi chmod +x ./gha-script/build_wheels.sh bash ./gha-script/build_wheels.sh - echo "===========after execution ==================" - sudo apt update -y - sudo lsb_release -a 2>/dev/null || echo "lsb_release not available" - sudo uname -a - - - build_docker: needs: build_info - if: ${{ always() }} + if: ${{ success() }} runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }} steps: - - name: Checkout code - uses: actions/checkout@v6 - - - name: Download package-cache - uses: actions/download-artifact@v7 + - uses: actions/checkout@v6 + - uses: actions/download-artifact@v7 with: name: package-cache - - - name: Extract package cache - run: tar -xzf package-cache.tar.gz - - - name: Build Docker Image - run: | - echo "===== Sourcing environment =====" - ls package-cache - - chmod +x package-cache/variable.sh - chmod +x package-cache/scanner-env.sh + - run: tar -xzf package-cache.tar.gz + - run: | source package-cache/variable.sh source package-cache/scanner-env.sh BUILD_DOCKER=$(echo "$BUILD_DOCKER" | tr -d '[:space:]' | tr '[:upper:]' '[:lower:]') if [[ "$BUILD_DOCKER" != "true" ]]; then - echo "Skipping Docker build as BUILD_DOCKER=$BUILD_DOCKER" + echo "Skipping Docker build" exit 0 fi - echo "===== Starting Docker build =====" chmod +x ./gha-script/build_docker.sh bash ./gha-script/build_docker.sh - - echo "===== Docker images after build =====" - docker images - - echo "===== Saving Docker image =====" - docker save -o package-cache/image.tar "$IMAGE_NAME" - - ls -lh package-cache/image.tar - - # - name: Fix permissions on package-cache - # run: | - # USER=$(whoami) - # sudo chown -R $USER:$USER package-cache - # sudo chmod -R u+rwX,go+rX,go-w package-cache - - # - name: Archive package cache with image - # run: tar -czf package-cache.tar.gz package-cache/ - - # - name: Upload package-cache with image.tar - # uses: actions/upload-artifact@v6 - # with: - # name: package-cache-with-image - # path: package-cache.tar.gz - - - - - - - - - - - From 278ebb686b153255f62831fbbe7bac0edff93e92 Mon Sep 17 00:00:00 2001 From: Stuti Ravikiran Wali Date: Tue, 31 Mar 2026 18:36:49 +0530 Subject: [PATCH 30/30] Update multidict_ubi_9.3.sh --- m/multidict/multidict_ubi_9.3.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/m/multidict/multidict_ubi_9.3.sh b/m/multidict/multidict_ubi_9.3.sh index a04566de57..415ce87274 100644 --- a/m/multidict/multidict_ubi_9.3.sh +++ b/m/multidict/multidict_ubi_9.3.sh @@ -18,6 +18,7 @@ # # --------------------------------------------------------------------------- + # Variables PACKAGE_NAME=multidict PACKAGE_VERSION=${1:-v6.0.2}