Fichiers
rocm-systems/.github/workflows/rocprofiler-compute-cdash.yml
T
jamessiddeley-amd fa860c5272 [rocprof-compute] Fixed CDash compute code coverage upload (#863)
* Test CDash upload fixes

* Test CDash upload fixes + rename

* fix run-ci.py script

* fix run-ci.py script

* fix run-ci.py script

* fix run-ci.py script

* fixed workflow

* renamed coverage file

* fixed run-ci.py script

* edited workflow file

* edited script desc

* Update Coverage.xml
2025-09-05 11:55:08 -04:00

89 lignes
3.2 KiB
YAML

name: rocprofiler-compute CDash Coverage Upload
on:
push:
branches: [ develop ]
paths:
- 'projects/rocprofiler-compute/coverage/Coverage.xml'
workflow_dispatch:
inputs:
coverage_file:
description: 'Path to coverage XML file'
required: false
default: 'projects/rocprofiler-compute/coverage/Coverage.xml'
concurrency:
group: rocprofiler-compute-cdash-${{ github.ref }}
cancel-in-progress: true
jobs:
upload-coverage:
runs-on: ubuntu-latest
name: Upload Coverage to CDash
steps:
- name: Checkout
uses: actions/checkout@v4
with:
sparse-checkout: projects/rocprofiler-compute
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.8'
- name: Check Coverage File Exists
working-directory: projects/rocprofiler-compute
run: |
COVERAGE_FILE="${{ github.event.inputs.coverage_file || 'coverage/Coverage.xml' }}"
if [[ "$COVERAGE_FILE" == projects/rocprofiler-compute/* ]]; then
COVERAGE_FILE="${COVERAGE_FILE#projects/rocprofiler-compute/}"
fi
if [ ! -f "$COVERAGE_FILE" ]; then
echo "ERROR: Coverage file not found at $COVERAGE_FILE!"
echo "Please run manual coverage generation"
echo "Use: cd projects/rocprofiler-compute && ./utils/update_coverage.sh"
exit 1
fi
COVERAGE_INFO=$(python3 -c "
import xml.etree.ElementTree as ET
try:
tree = ET.parse('$COVERAGE_FILE')
root = tree.getroot()
line_rate = float(root.get('line-rate', 0)) * 100
print(f'{line_rate:.1f}%')
except Exception as e:
print(f'Error parsing coverage: {e}')
exit(1)
")
echo "Line Coverage: $COVERAGE_INFO"
echo "COVERAGE_INFO=$COVERAGE_INFO" >> $GITHUB_ENV
echo "COVERAGE_FILE=$COVERAGE_FILE" >> $GITHUB_ENV
- name: Upload to CDash
working-directory: projects/rocprofiler-compute
run: |
GIT_SHA_SHORT=$(git rev-parse --short HEAD)
BRANCH_NAME=${GITHUB_REF#refs/heads/}
python3 utils/run-ci.py \
--coverage-file "${{ env.COVERAGE_FILE }}" \
--build-name "${BRANCH_NAME}-${GIT_SHA_SHORT}-$(date +%Y%m%d)" \
--mode "Continuous" \
--site "Monorepo-Upload" \
--project-name "rocprofiler-compute" \
--source-dir "." \
--binary-dir "build"
- name: Summary
run: |
echo "## CDash Upload Complete!" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "- **Branch**: ${{ github.ref_name }}" >> $GITHUB_STEP_SUMMARY
echo "- **Line Coverage**: ${{ env.COVERAGE_INFO }}" >> $GITHUB_STEP_SUMMARY
echo "- **Commit**: $(git rev-parse --short HEAD)" >> $GITHUB_STEP_SUMMARY
echo "- **CDash Project**: rocprofiler-compute" >> $GITHUB_STEP_SUMMARY
echo "- **Coverage File**: ${{ env.COVERAGE_FILE }}" >> $GITHUB_STEP_SUMMARY