Alien-libui

 view release on metacpan or  search on metacpan

.github/workflows/ci.yml  view on Meta::CPAN

        toolchain: ['gcc', 'clang', 'msvc']
        exclude:
          #~ - platform: { name: 'macos' }
            #~ toolchain: 'gcc'
          - platform: { name: 'ubuntu' }
            toolchain: 'msvc'
          - platform: { name: 'ubuntu-arm' }
            toolchain: 'msvc'
          - platform: { name: 'macos' }
            toolchain: 'msvc'

  results:
    name: Summary
    if: always()
    needs: [vm, direct]
    runs-on: ubuntu-latest
    steps:
      - name: Download all result artifacts
        uses: actions/download-artifact@v4
        with:
          pattern: result-artifact-*
          path: results/
          merge-multiple: true

      - name: Generate Job Summary from Artifacts
        run: |
          mkdir -p status
          # --- Setup for Markdown and JSON output ---
          SUMMARY_MD="status/status.md"
          STATUS_JSON="status/status.json"
          echo "## Build and Test Summary" > $SUMMARY_MD
          echo "| OS | Arch | Compiler | Result |" >> $SUMMARY_MD
          echo "|:---|:---|:---|:---|" >> $SUMMARY_MD
          echo "{" > $STATUS_JSON
          is_first_json_entry=true
          if [ -d "results" ] && [ -n "$(ls -A results)" ]; then
            find results -type f -name "*.result" | sort | while IFS= read -r file; do
              result=$(cat "$file")
              filename=$(basename "$file" .result)
              ICON=$([[ $result == 'success' ]] && echo '✅' || echo '❌')
              IFS='-' read -ra parts <<< "$filename"
              platform="${parts[0]}"
              arch="${parts[1]}"
              compiler="${parts[2]}"
              echo "| **$platform** | \`$arch\` | \`$compiler\` | $ICON $result |" >> $SUMMARY_MD
              if [ "$is_first_json_entry" = false ]; then
                echo "," >> $STATUS_JSON
              fi
              # The key is the unique job identifier, e.g., "freebsd-x86_64-gcc"
              # The value is "passing" or "failing" for Shields.io color coding
              SHIELD_STATUS=$([[ $result == 'success' ]] && echo 'passing' || echo 'failing')
              echo "\"$filename\": \"$SHIELD_STATUS\"" >> $STATUS_JSON
              is_first_json_entry=false
            done
          else
            echo "| All build jobs | | | No result data found. ❌ |" >> $SUMMARY_MD
          fi
          echo "}" >> $STATUS_JSON
          cat $SUMMARY_MD >> $GITHUB_STEP_SUMMARY
      - name: Upload Status Artifact for Publishing
        uses: actions/upload-artifact@v4
        with:
          name: status-files
          path: status/
  publish-status:
    name: Publish Status Page
    if: github.ref == 'refs/heads/main' # Only run on pushes to the main branch
    needs: [results]
    runs-on: ubuntu-latest
    permissions:
      contents: write # Important: Permission to write to the repo (for gh-pages branch)
    steps:
      - name: Download status files
        uses: actions/download-artifact@v4
        with:
          name: status-files
          path: ./status

      - name: Deploy to GitHub Pages
        uses: peaceiris/actions-gh-pages@v4
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./status
          publish_branch: gh-pages
          keep_files: true
          destination_dir: status
          user_name: 'github-actions[bot]'
          user_email: 'github-actions[bot]@users.noreply.github.com'
          commit_message: 'Update build status matrix'



( run in 1.995 second using v1.01-cache-2.11-cpan-b16cb0d3907 )