Test All Packages (Batch 16) on Arm64 #32
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Test All Packages (Batch 16) on Arm64 | |
| on: | |
| workflow_dispatch: | |
| workflow_call: | |
| jobs: | |
| test-tesseract: | |
| uses: ./.github/workflows/test-tesseract.yml | |
| test-salmon: | |
| uses: ./.github/workflows/test-salmon.yml | |
| test-opensearch-dashboard: | |
| uses: ./.github/workflows/test-opensearch-dashboard.yml | |
| test-packetbeat: | |
| uses: ./.github/workflows/test-packetbeat.yml | |
| test-openvvc: | |
| uses: ./.github/workflows/test-openvvc.yml | |
| test-liferay: | |
| uses: ./.github/workflows/test-liferay.yml | |
| test-elastic-crawler: | |
| uses: ./.github/workflows/test-elastic-crawler.yml | |
| test-typescript: | |
| uses: ./.github/workflows/test-typescript.yml | |
| test-roaringbitmap: | |
| uses: ./.github/workflows/test-RoaringBitmap.yml | |
| test-falco: | |
| uses: ./.github/workflows/test-falco.yml | |
| test-haskell-nix: | |
| uses: ./.github/workflows/test-haskell-nix.yml | |
| test-flannel: | |
| uses: ./.github/workflows/test-flannel.yml | |
| test-redis: | |
| uses: ./.github/workflows/test-redis.yml | |
| test-docker: | |
| uses: ./.github/workflows/test-docker.yml | |
| test-openshift: | |
| uses: ./.github/workflows/test-openshift.yml | |
| test-rundeck: | |
| uses: ./.github/workflows/test-rundeck.yml | |
| test-kubewarden-policy-server: | |
| uses: ./.github/workflows/test-kubewarden-policy-server.yml | |
| test-memtester: | |
| uses: ./.github/workflows/test-memtester.yml | |
| test-lxcfs: | |
| uses: ./.github/workflows/test-lxcfs.yml | |
| test-npm: | |
| uses: ./.github/workflows/test-npm.yml | |
| test-terraform: | |
| uses: ./.github/workflows/test-terraform.yml | |
| test-postman: | |
| uses: ./.github/workflows/test-postman.yml | |
| test-iotop: | |
| uses: ./.github/workflows/test-iotop.yml | |
| test-openscenegraph: | |
| uses: ./.github/workflows/test-openscenegraph.yml | |
| test-pandas: | |
| uses: ./.github/workflows/test-pandas.yml | |
| test-geoserver: | |
| uses: ./.github/workflows/test-geoserver.yml | |
| test-kata: | |
| uses: ./.github/workflows/test-kata.yml | |
| test-netcdf: | |
| uses: ./.github/workflows/test-netcdf.yml | |
| test-cjson: | |
| uses: ./.github/workflows/test-cjson.yml | |
| test-domo-node-sdk: | |
| uses: ./.github/workflows/test-domo-node-sdk.yml | |
| test-swig: | |
| uses: ./.github/workflows/test-swig.yml | |
| test-tcl: | |
| uses: ./.github/workflows/test-tcl.yml | |
| test-zstandard: | |
| uses: ./.github/workflows/test-zstandard.yml | |
| test-functionbeat: | |
| uses: ./.github/workflows/test-functionbeat.yml | |
| test-cilium: | |
| uses: ./.github/workflows/test-cilium.yml | |
| test-eclipse_temurin: | |
| uses: ./.github/workflows/test-eclipse_temurin.yml | |
| test-vvenc: | |
| uses: ./.github/workflows/test-VVenC.yml | |
| test-elasticapmserver: | |
| uses: ./.github/workflows/test-elasticapmserver.yml | |
| test-dapr: | |
| uses: ./.github/workflows/test-dapr.yml | |
| test-openssh: | |
| uses: ./.github/workflows/test-openssh.yml | |
| test-gperftools: | |
| uses: ./.github/workflows/test-gperftools.yml | |
| test-haystack: | |
| uses: ./.github/workflows/test-haystack.yml | |
| summary: | |
| needs: | |
| [ | |
| test-tesseract, | |
| test-salmon, | |
| test-opensearch-dashboard, | |
| test-packetbeat, | |
| test-openvvc, | |
| test-liferay, | |
| test-elastic-crawler, | |
| test-typescript, | |
| test-roaringbitmap, | |
| test-falco, | |
| test-haskell-nix, | |
| test-flannel, | |
| test-redis, | |
| test-docker, | |
| test-openshift, | |
| test-rundeck, | |
| test-kubewarden-policy-server, | |
| test-memtester, | |
| test-lxcfs, | |
| test-npm, | |
| test-terraform, | |
| test-postman, | |
| test-iotop, | |
| test-openscenegraph, | |
| test-pandas, | |
| test-geoserver, | |
| test-kata, | |
| test-netcdf, | |
| test-cjson, | |
| test-domo-node-sdk, | |
| test-swig, | |
| test-tcl, | |
| test-zstandard, | |
| test-functionbeat, | |
| test-cilium, | |
| test-eclipse_temurin, | |
| test-vvenc, | |
| test-elasticapmserver, | |
| test-dapr, | |
| test-openssh, | |
| test-gperftools, | |
| test-haystack | |
| ] | |
| 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 16)" >> $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 16)" >> $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 | |