Skip to content
Draft

Singh22 #8045

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
0f53485
Update validate_builds.py
stutiibm Mar 26, 2026
1013f62
Update pr-build.yaml
stutiibm Mar 26, 2026
39786a1
Update pr-build.yaml
stutiibm Mar 26, 2026
48f28f0
Update validate_builds.py
stutiibm Mar 26, 2026
c2395f9
Update pr-build.yaml
stutiibm Mar 26, 2026
b348f55
Update pr-build.yaml
stutiibm Mar 26, 2026
0ea780f
Update pr-build.yaml
stutiibm Mar 26, 2026
e7db43f
Update pr-build.yaml
stutiibm Mar 26, 2026
03dcb7f
Update pr-build.yaml
stutiibm Mar 26, 2026
f71ce2d
Update pr-build.yaml
stutiibm Mar 26, 2026
e5027dd
Update pr-build.yaml
stutiibm Mar 26, 2026
4801a96
Update pr-build.yaml
stutiibm Mar 26, 2026
8e80aa2
Update pr-build.yaml
stutiibm Mar 26, 2026
503258c
Update build_package.sh
stutiibm Mar 29, 2026
7011de1
Update pr-build.yaml
stutiibm Mar 29, 2026
89df973
Refactor PR build workflow and simplify scripts
stutiibm Mar 29, 2026
d4d5ae8
Refactor PR build workflow for clarity and logging
stutiibm Mar 29, 2026
64351a8
Update pr-build.yaml
stutiibm Mar 30, 2026
9ba0bb7
Add wheel_build_py310 job for Python 3.10
stutiibm Mar 30, 2026
af322d4
Simplify wheel build logging in build_wheels.sh
stutiibm Mar 30, 2026
bb7ee02
Modify wheel build jobs in PR workflow
stutiibm Mar 30, 2026
4b80b47
Add Docker build step to PR workflow
stutiibm Mar 30, 2026
564508c
Update pr-build.yaml
stutiibm Mar 30, 2026
60eac8e
Update pr-build.yaml
stutiibm Mar 30, 2026
316ed53
Update pr-build.yaml
stutiibm Mar 30, 2026
da0ad61
Log contents of variable.sh and scanner-env.sh
stutiibm Mar 31, 2026
7872748
Update pr-build.yaml
stutiibm Mar 31, 2026
4352263
Update pr-build.yaml
stutiibm Mar 31, 2026
68dff62
Update pr-build.yaml
stutiibm Mar 31, 2026
278ebb6
Update multidict_ubi_9.3.sh
stutiibm Mar 31, 2026
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
279 changes: 260 additions & 19 deletions .github/workflows/pr-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,22 @@ 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:
# - 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
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'
Expand All @@ -44,7 +53,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: |
Expand All @@ -59,23 +68,255 @@ jobs:
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
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

- name: Locate and parse build_info.json
run: |
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 "No build_info.json modified, trying to detect from changed files..."

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
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)
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

- 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

PACKAGE_DIR=$(jq -r '.package_dir // ""' $BUILD_INFO_FILE)
WHEEL_BUILD=$(jq -r '.wheel_build // "false"' $BUILD_INFO_FILE)

if jq -e '.docker_build == true or .docker_build == "true"' "$BUILD_INFO_FILE" > /dev/null; then
DOCKER_BUILD="true"
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
DOCKER_BUILD="false"
fi

cat <<EOF > 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/

- 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

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
run: |
source package-cache/variable.sh
source 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: ${{ success() }}
runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }}
continue-on-error: true
env:
PYTHON_VERSION: "3.9"

steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0

- run: sudo apt update -y

- uses: actions/download-artifact@v7
with:
name: package-cache

- run: tar -xzf package-cache.tar.gz

- run: |
source package-cache/variable.sh
source package-cache/scanner-env.sh

if [ "$WHEEL_BUILD" != "true" ]; then
echo "Skipping wheel build"
exit 0
fi

chmod +x ./gha-script/build_wheels.sh
bash ./gha-script/build_wheels.sh

wheel_build_py310:
needs: build_info
if: ${{ success() }}
runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }}
env:
PYTHON_VERSION: "3.10"

steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- run: sudo apt update -y
- uses: actions/download-artifact@v7
with:
name: package-cache
- run: tar -xzf package-cache.tar.gz
- run: |
source package-cache/variable.sh
source package-cache/scanner-env.sh
if [ "$WHEEL_BUILD" != "true" ]; then exit 0; fi
chmod +x ./gha-script/build_wheels.sh
bash ./gha-script/build_wheels.sh

wheel_build_py311:
needs: build_info
if: ${{ success() }}
runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }}
env:
PYTHON_VERSION: "3.11"

steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- run: sudo apt update -y
- uses: actions/download-artifact@v7
with:
name: package-cache
- run: tar -xzf package-cache.tar.gz
- run: |
source package-cache/variable.sh
source package-cache/scanner-env.sh
if [ "$WHEEL_BUILD" != "true" ]; then exit 0; fi
chmod +x ./gha-script/build_wheels.sh
bash ./gha-script/build_wheels.sh

wheel_build_py312:
needs: build_info
if: ${{ success() }}
runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }}
env:
PYTHON_VERSION: "3.12"

steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- run: sudo apt update -y
- uses: actions/download-artifact@v7
with:
name: package-cache
- run: tar -xzf package-cache.tar.gz
- run: |
source package-cache/variable.sh
source package-cache/scanner-env.sh
if [ "$WHEEL_BUILD" != "true" ]; then exit 0; fi
chmod +x ./gha-script/build_wheels.sh
bash ./gha-script/build_wheels.sh

wheel_build_py313:
needs: build_info
if: ${{ success() }}
runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }}
continue-on-error: true
env:
PYTHON_VERSION: "3.13"

steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- run: sudo apt update -y
- uses: actions/download-artifact@v7
with:
name: package-cache
- run: tar -xzf package-cache.tar.gz
- run: |
source package-cache/variable.sh
source package-cache/scanner-env.sh
if [ "$WHEEL_BUILD" != "true" ]; then exit 0; fi
chmod +x ./gha-script/build_wheels.sh
bash ./gha-script/build_wheels.sh

build_docker:
needs: build_info
if: ${{ success() }}
runs-on: ${{ github.event_name == 'pull_request' && 'ubuntu-24.04-ppc64le-p10' || inputs.large-runner }}

steps:
- uses: actions/checkout@v6
- uses: actions/download-artifact@v7
with:
name: package-cache
- 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"
exit 0
fi

chmod +x ./gha-script/build_docker.sh
bash ./gha-script/build_docker.sh
24 changes: 12 additions & 12 deletions gha-script/build_package.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
33 changes: 21 additions & 12 deletions gha-script/build_wheels.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Loading
Loading