Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 15 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,12 +75,26 @@ jobs:

- name: Unit Testing
run: |
PYTHONPATH=$PWD pytest --cov=. --cov-report lcov tests
PYTHONPATH=$PWD pytest --cov=. --cov-report xml tests
env:
DATA: /data/scratch/cifar-10
NCCL_SHM_DISABLE: 1
LD_LIBRARY_PATH: /github/home/.tensornvme/lib:/usr/local/nvidia/lib:/usr/local/nvidia/lib64

- name: Collate artifact
env:
PR_NUMBER: ${{ github.event.number }}
run: |
mkdir report
echo $PR_NUMBER > ./report/pr_number
mv coverage.xml ./report

- name: Upload test coverage artifact
uses: actions/upload-artifact@v3
with:
name: report
path: report/

- name: Store Cache
run: |
# -p flag is required to preserve the file timestamp to avoid ninja rebuild
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Auto Workflow Comment
name: Report Precommit Failure

on:
workflow_run:
Expand All @@ -11,7 +11,7 @@ jobs:
# if the pre-commit check was not passed
report-precommit-failure:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.name }} == "pre-commit" && ${{ github.event.workflow_run.conclusion == 'failure' }}
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
steps:
- name: 'Download artifact'
uses: actions/github-script@v6
Expand Down
69 changes: 69 additions & 0 deletions .github/workflows/report_test_coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Report Test Coverage

on:
workflow_run:
workflows: [Build]
types:
- completed

jobs:
report-test-coverage:
runs-on: ubuntu-latest
steps:
- name: 'Download artifact'
uses: actions/github-script@v6
with:
script: |
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: context.payload.workflow_run.id,
});
let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => {
return artifact.name == "report"
})[0];
let download = await github.rest.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: 'zip',
});
let fs = require('fs');
fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/report.zip`, Buffer.from(download.data));

- name: 'Unzip artifact'
run: |
unzip report.zip

- name: Code Coverage Report
uses: irongut/CodeCoverageSummary@v1.3.0
with:
filename: coverage.xml
badge: true
fail_below_min: true
format: markdown
hide_branch_rate: false
hide_complexity: false
indicators: true
output: both
thresholds: '80 90'

- name: 'Comment on PR'
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
let fs = require('fs');
let issue_number = Number(fs.readFileSync('./pr_number'));
let owner = context.repo.owner;
let repo = context.repo.repo;
let run_id = context.payload.workflow_run.id;
let run_url = `https://github.com/${owner}/${repo}/actions/runs/${run_id}`
let body = fs.readFileSync('./code-coverage-results.md', {encoding:'utf8', flag:'r'})

await github.rest.issues.createComment({
owner: owner,
repo: repo,
issue_number: issue_number,
body: body
});
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -153,4 +153,5 @@ colossalai/version.py
.pyi

# ignore coverage test file
converage.lcov
coverage.lcov
coverage.xml