Skip to content

[WriterReviewNeeded]Add Default constructors to some DAQmx/DCPower classes #67

[WriterReviewNeeded]Add Default constructors to some DAQmx/DCPower classes

[WriterReviewNeeded]Add Default constructors to some DAQmx/DCPower classes #67

Workflow file for this run

name: pr-intake
on:
pull_request:
branches:
- main
- 'releases/**'
paths:
- 'Examples/**'
- 'SemiconductorTestLibrary.Abstractions/**'
- 'SemiconductorTestLibrary.Extensions/**'
- 'SemiconductorTestLibrary.TestStandSteps/**'
- 'TestAssets/**'
env:
GitHub_Repo_Name: "semi-test-library-dotnet"
Run_Number: "#${{ github.run_number }}"
jobs:
wait-for-pr-build-and-test-workflows:
runs-on: ubuntu-latest
environment: gh-action-testing
steps:
# Before fetching the run ID, we need to wait for the PR Build and PR Test Workflow run to start as it uses in_progress type of workflow_run event.
- name: Wait for PR Build and PR Test Workflow to Start
run: sleep 30
- name: Get PR Build Workflow Run ID
id: get_build_runid
run: |
WORKFLOW_NAME="pr-build"
response=$(curl -s -w "%{http_code}" "https://api.github.com/repos/ni/${{ env.GitHub_Repo_Name }}/actions/workflows" \
-o runs.json)
if [ $response -ne 200 ]; then
echo "Failed to fetch id of Workflow - $WORKFLOW_NAME. Exiting."
exit 1
fi
WORKFLOW_ID=$(jq -r ".workflows[] | select(.name == \"$WORKFLOW_NAME\") | .id" runs.json)
# Fetch runs of Workflow
response=$(curl -s -w "%{http_code}" "https://api.github.com/repos/ni/${{ env.GitHub_Repo_Name }}/actions/workflows/$WORKFLOW_ID/runs" \
-o runs.json)
if [ $response -ne 200 ]; then
echo "Failed to fetch runs of Workflow - $WORKFLOW_NAME. Exiting."
exit 1
fi
# Assuming that the PR Build Workflow run has a display title containing the run number.
run_id=$(jq -r ".workflow_runs[] | select(.display_title | contains(\"${{ env.Run_Number }}\")) | .id" runs.json)
echo "Fetched build run_id: $run_id"
echo "::set-output name=build_run_id::$run_id"
- name: Get PR Test Workflow Run ID
id: get_test_runid
run: |
WORKFLOW_NAME="pr-test"
response=$(curl -s -w "%{http_code}" "https://api.github.com/repos/ni/${{ env.GitHub_Repo_Name }}/actions/workflows" \
-o runs.json)
if [ $response -ne 200 ]; then
echo "Failed to fetch id of Workflow - $WORKFLOW_NAME. Exiting."
exit 1
fi
WORKFLOW_ID=$(jq -r ".workflows[] | select(.name == \"$WORKFLOW_NAME\") | .id" runs.json)
# Fetch runs of Workflow
response=$(curl -s -w "%{http_code}" "https://api.github.com/repos/ni/${{ env.GitHub_Repo_Name }}/actions/workflows/$WORKFLOW_ID/runs" \
-o runs.json)
if [ $response -ne 200 ]; then
echo "Failed to fetch runs of Workflow - $WORKFLOW_NAME. Exiting."
exit 1
fi
# Assuming that the PR Test Workflow run has a display title containing the run number.
run_id=$(jq -r ".workflow_runs[] | select(.display_title | contains(\"${{ env.Run_Number }}\")) | .id" runs.json)
echo "Fetched test run_id: $run_id"
echo "::set-output name=test_run_id::$run_id"
- name: Wait for Specific Build Workflow Run to Complete
id: wait_build
run: |
SPECIFIC_BUILD_RUN_ID=${{ steps.get_build_runid.outputs.build_run_id }}
TIMEOUT=3600 # 1 hour
INTERVAL=240 # 4 minutes
ELAPSED=0
while true; do
# Check the status of the specific run
response=$(curl -s -w "%{http_code}" "https://api.github.com/repos/ni/${{ env.GitHub_Repo_Name }}/actions/runs/$SPECIFIC_BUILD_RUN_ID" \
-o runs.json)
if [ $response -ne 200 ]; then
echo "Failed to fetch status of Build Workflow. Exiting."
exit 1
fi
STATUS=$(jq -r ".status" runs.json)
echo "Current Status: $STATUS"
if [[ "$STATUS" == "completed" ]]; then
break
fi
if [[ "$ELAPSED" -ge "$TIMEOUT" ]]; then
echo "Error: Timeout reached while waiting for workflow to complete."
exit 1
fi
echo "Waiting for Workflow to complete..."
sleep $INTERVAL # Wait before polling again
ELAPSED=$((ELAPSED+INTERVAL))
done
- name: Wait for Specific Test Workflow Run to Complete
id: wait_test
run: |
SPECIFIC_TEST_RUN_ID=${{ steps.get_test_runid.outputs.test_run_id }}
TIMEOUT=3600 # 1 hour
INTERVAL=240 # 4 minutes
ELAPSED=0
while true; do
# Check the status of the specific run
response=$(curl -s -w "%{http_code}" "https://api.github.com/repos/ni/${{ env.GitHub_Repo_Name }}/actions/runs/$SPECIFIC_TEST_RUN_ID" \
-o runs.json)
if [ $response -ne 200 ]; then
echo "Failed to fetch status of Test Workflow. Exiting."
exit 1
fi
STATUS=$(jq -r ".status" runs.json)
echo "Current Status: $STATUS"
if [[ "$STATUS" == "completed" ]]; then
break
fi
if [[ "$ELAPSED" -ge "$TIMEOUT" ]]; then
echo "Error: Timeout reached while waiting for workflow to complete."
exit 1
fi
echo "Waiting for Workflow to complete..."
sleep $INTERVAL # Wait before polling again
ELAPSED=$((ELAPSED+INTERVAL))
done
- name: Check Conclusion of Build Workflow
run: |
SPECIFIC_BUILD_RUN_ID=${{ steps.get_build_runid.outputs.build_run_id }}
response=$(curl -s -w "%{http_code}" "https://api.github.com/repos/ni/${{ env.GitHub_Repo_Name }}/actions/runs/$SPECIFIC_BUILD_RUN_ID" \
-o runs.json)
if [ $response -ne 200 ]; then
echo "Failed to fetch conclusion of Build Workflow. Exiting."
exit 1
fi
CONCLUSION=$(jq -r ".conclusion" runs.json)
echo "Workflow Conclusion: $CONCLUSION"
if [ "$CONCLUSION" == "success" ]; then
echo "Build Workflow succeeded."
else
echo "Build Workflow failed or was cancelled. Exiting."
exit 1
fi
- name: Check Conclusion of Test Workflow
run: |
SPECIFIC_TEST_RUN_ID=${{ steps.get_test_runid.outputs.test_run_id }}
response=$(curl -s -w "%{http_code}" "https://api.github.com/repos/ni/${{ env.GitHub_Repo_Name }}/actions/runs/$SPECIFIC_TEST_RUN_ID" \
-o runs.json)
if [ $response -ne 200 ]; then
echo "Failed to fetch conclusion of Test Workflow. Exiting."
exit 1
fi
CONCLUSION=$(jq -r ".conclusion" runs.json)
echo "Test Workflow Conclusion: $CONCLUSION"
if [ "$CONCLUSION" == "success" ]; then
echo "Test Workflow succeeded."
else
echo "Test Workflow failed or was cancelled. Exiting."
exit 1
fi