Skip to content

Update CI.yml

Update CI.yml #2

Workflow file for this run

name: Jenkins CI Regression
on:
push:
branches: [ main ]
pull_request:
jobs:
trigger-jenkins:
runs-on: ubuntu-latest
steps:
- name: Trigger Jenkins Build
id: trigger
run: |
echo "Triggering Jenkins job..."
RESPONSE=$(curl -s -X POST \
-u "${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }}" \
"${{ secrets.JENKINS_URL }}/job/${{ secrets.JENKINS_JOB }}/buildWithParameters?token=${{ secrets.JENKINS_TRIGGER }}" -i)
echo "$RESPONSE"
- name: Wait for Jenkins Build to Complete
id: wait
run: |
echo "Polling Jenkins for completion..."
ATTEMPTS=0
BUILD_STATUS="PENDING"
until [ "$BUILD_STATUS" = "SUCCESS" ] || [ "$BUILD_STATUS" = "FAILURE" ]; do
sleep 30
BUILD_STATUS=$(curl -s -u "${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }}" \
"${{ secrets.JENKINS_URL }}/job/${{ secrets.JENKINS_JOB }}/lastBuild/api/json" \
| jq -r '.result')
echo "[$ATTEMPTS] Current status: $BUILD_STATUS"
ATTEMPTS=$((ATTEMPTS + 1))
if [ $ATTEMPTS -gt 60 ]; then
echo "Timed out after 30 minutes."
exit 1
fi
done
echo "Final Jenkins status: $BUILD_STATUS"
echo "status=${BUILD_STATUS}" >> $GITHUB_OUTPUT
- name: Mark PR Failed if Jenkins Failed
if: steps.wait.outputs.status == 'FAILURE'
run: exit 1
- name: Jenkins Build Succeeded
if: steps.wait.outputs.status == 'SUCCESS'
run: echo "✅ Jenkins Regression Passed Successfully"