Skip to content

Test All Packages (Batch 18) on Arm64 #32

Test All Packages (Batch 18) on Arm64

Test All Packages (Batch 18) on Arm64 #32

name: Test All Packages (Batch 18) on Arm64
on:
workflow_dispatch:
workflow_call:
jobs:
test-qdrant:
uses: ./.github/workflows/test-qdrant.yml
test-libjpeg:
uses: ./.github/workflows/test-libjpeg.yml
test-signalfx-agent:
uses: ./.github/workflows/test-signalfx-agent.yml
test-libevent:
uses: ./.github/workflows/test-libevent.yml
test-smcpp:
uses: ./.github/workflows/test-smcpp.yml
test-pilon:
uses: ./.github/workflows/test-pilon.yml
test-dronecli:
uses: ./.github/workflows/test-DroneCli.yml
test-nmon:
uses: ./.github/workflows/test-nmon.yml
test-sensu:
uses: ./.github/workflows/test-sensu.yml
test-milvus:
uses: ./.github/workflows/test-milvus.yml
test-nextjs:
uses: ./.github/workflows/test-nextjs.yml
test-figlet:
uses: ./.github/workflows/test-figlet.yml
test-nemo:
uses: ./.github/workflows/test-nemo.yml
test-nfs:
uses: ./.github/workflows/test-nfs.yml
test-ruby:
uses: ./.github/workflows/test-ruby.yml
test-neo4j:
uses: ./.github/workflows/test-neo4j.yml
test-kvm:
uses: ./.github/workflows/test-kvm.yml
test-gerrit:
uses: ./.github/workflows/test-gerrit.yml
test-grafana:
uses: ./.github/workflows/test-grafana.yml
test-kunpeng_acceleration_engine:
uses: ./.github/workflows/test-Kunpeng_Acceleration_Engine.yml
test-deepstreamhub:
uses: ./.github/workflows/test-deepstreamHub.yml
test-snappy-java:
uses: ./.github/workflows/test-snappy-java.yml
test-itp:
uses: ./.github/workflows/test-itp.yml
test-bazel:
uses: ./.github/workflows/test-bazel.yml
test-ssdb:
uses: ./.github/workflows/test-ssdb.yml
test-vvdec:
uses: ./.github/workflows/test-vvdec.yml
test-brotli:
uses: ./.github/workflows/test-brotli.yml
test-libgav1:
uses: ./.github/workflows/test-libgav1.yml
test-trivy:
uses: ./.github/workflows/test-trivy.yml
test-spinnaker:
uses: ./.github/workflows/test-spinnaker.yml
test-gcc:
uses: ./.github/workflows/test-gcc.yml
test-etcd:
uses: ./.github/workflows/test-etcd.yml
test-sas-kernel:
uses: ./.github/workflows/test-SAS-Kernel.yml
test-ramalama:
uses: ./.github/workflows/test-ramalama.yml
test-pmdk:
uses: ./.github/workflows/test-pmdk.yml
test-cadvisor:
uses: ./.github/workflows/test-cadvisor.yml
test-bytebase:
uses: ./.github/workflows/test-bytebase.yml
test-mojo:
uses: ./.github/workflows/test-mojo.yml
test-kubeflow:
uses: ./.github/workflows/test-kubeflow.yml
test-krb5:
uses: ./.github/workflows/test-krb5.yml
test-openhpc:
uses: ./.github/workflows/test-openHPC.yml
test-dot-net:
uses: ./.github/workflows/test-dot-net.yml
test-deeptools:
uses: ./.github/workflows/test-deeptools.yml
test-nmap:
uses: ./.github/workflows/test-nmap.yml
test-lammps:
uses: ./.github/workflows/test-lammps.yml
test-xml2:
uses: ./.github/workflows/test-xml2.yml
test-gnutls:
uses: ./.github/workflows/test-gnutls.yml
test-vue:
uses: ./.github/workflows/test-vue.yml
summary:
needs:
[
test-qdrant,
test-libjpeg,
test-signalfx-agent,
test-libevent,
test-smcpp,
test-pilon,
test-dronecli,
test-nmon,
test-sensu,
test-milvus,
test-nextjs,
test-figlet,
test-nemo,
test-nfs,
test-ruby,
test-neo4j,
test-kvm,
test-gerrit,
test-grafana,
test-kunpeng_acceleration_engine,
test-deepstreamhub,
test-snappy-java,
test-itp,
test-bazel,
test-ssdb,
test-vvdec,
test-brotli,
test-libgav1,
test-trivy,
test-spinnaker,
test-gcc,
test-etcd,
test-sas-kernel,
test-ramalama,
test-pmdk,
test-cadvisor,
test-bytebase,
test-mojo,
test-kubeflow,
test-krb5,
test-openhpc,
test-dot-net,
test-deeptools,
test-nmap,
test-lammps,
test-xml2,
test-gnutls,
test-vue
]
runs-on: ubuntu-24.04-arm
if: always()
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Download all test results
uses: actions/download-artifact@v4
with:
path: test-results
- name: Create summary
shell: bash
run: |
echo "# 📊 Package Test Summary (Batch 18)" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "## Test Results" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
TOTAL_PACKAGES=0
PASSED_PACKAGES=0
FAILED_PACKAGES=0
for result_dir in test-results/*/; do
if [ -d "$result_dir" ]; then
TOTAL_PACKAGES=$((TOTAL_PACKAGES + 1))
for json_file in "$result_dir"*.json; do
if [ -f "$json_file" ]; then
PKG_NAME=$(jq -r '.package.name' "$json_file")
STATUS=$(jq -r '.run.status' "$json_file")
TESTS_PASSED=$(jq -r '.tests.passed' "$json_file")
TESTS_FAILED=$(jq -r '.tests.failed' "$json_file")
VERSION=$(jq -r '.package.version' "$json_file")
VERSION=$(echo "$VERSION" | sed 's/[",]//g' | tr -d '\\' | sed 's/\x1b\[[0-9;]*m//g')
if [ "$STATUS" = "success" ]; then
PASSED_PACKAGES=$((PASSED_PACKAGES + 1))
echo "✅ **$PKG_NAME** (v$VERSION): $TESTS_PASSED tests passed" >> $GITHUB_STEP_SUMMARY
else
FAILED_PACKAGES=$((FAILED_PACKAGES + 1))
echo "❌ **$PKG_NAME** (v$VERSION): $TESTS_FAILED tests failed" >> $GITHUB_STEP_SUMMARY
fi
fi
done
fi
done
echo "" >> $GITHUB_STEP_SUMMARY
echo "## Overall Summary (Batch 18)" >> $GITHUB_STEP_SUMMARY
echo "- **Total Packages Tested:** $TOTAL_PACKAGES" >> $GITHUB_STEP_SUMMARY
echo "- **Passed:** $PASSED_PACKAGES ✅" >> $GITHUB_STEP_SUMMARY
echo "- **Failed:** $FAILED_PACKAGES ❌" >> $GITHUB_STEP_SUMMARY
- name: Commit test results to repository
shell: bash
run: |
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
mkdir -p data/test-results
echo "📂 Copying results from artifacts to data directory..."
# Find all JSON files in the test-results directory (from artifacts)
find test-results -name "*.json" -exec cp {} data/test-results/ \;
git add data/test-results/*.json
if ! git diff --staged --quiet; then
git commit -m "Update test results for ${{ github.workflow }} [skip ci]"
PUSH_SUCCESS=false
# Pull with rebase and push, retry up to 20 times
for i in {1..20}; do
if git pull --rebase origin ${{ github.ref_name }}; then
if git push; then
echo "Successfully pushed batch test results"
PUSH_SUCCESS=true
break
fi
else
echo "Rebase failed, resolving conflicts..."
# In case of conflict, we keep our newly generated files
git checkout --ours data/test-results/*.json
git add data/test-results/*.json
git rebase --continue || true
fi
echo "Retry attempt $i of 20..."
sleep $(( (i % 5 + 1) * 2 + (RANDOM % 3) ))
done
if [ "$PUSH_SUCCESS" = false ]; then
echo "❌ Error: Failed to push batch results after 20 attempts."
exit 1
fi
else
echo "No changes to commit"
fi