fa860c5272
* 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
89 lignes
3.2 KiB
YAML
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 |