mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
Use tools/print_test_stats.py in GHA (#57647)
Summary: Judging from https://github.com/pytorch/pytorch/issues/57584, it seems like the test-reports artifact was originally intended to be downloaded to `$PWD/test-reports` instead of just directly into `$PWD`. To minimize confusion, this PR changes it to download into `test/test-reports`, which should match where the files came from in the `test` step anyway. TODOs: - [x] change the extract path for test-reports - [x] install Python dependencies - [x] call `tools/print_test_stats.py` - [x] use deep clone to allow `git` commands - [x] correctly set `CIRCLE_*` environment variables - [x] set Scribe credentials - [x] set AWS credentials Pull Request resolved: https://github.com/pytorch/pytorch/pull/57647 Test Plan: CI. Reviewed By: seemethere Differential Revision: D28325833 Pulled By: samestep fbshipit-source-id: cc322bad76747f59b764a1a0a863153bb26095e7
This commit is contained in:
committed by
Facebook GitHub Bot
parent
bf053a1296
commit
e1cbc43f50
21
.github/scripts/parse_ref.py
vendored
Executable file
21
.github/scripts/parse_ref.py
vendored
Executable file
@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import re
|
||||
|
||||
|
||||
def main() -> None:
|
||||
ref = os.environ['GITHUB_REF']
|
||||
m = re.match(r'^refs/(\w+)/(.*)$', ref)
|
||||
if m:
|
||||
category, stripped = m.groups()
|
||||
if category == 'heads':
|
||||
print(f'::set-output name=branch::{stripped}')
|
||||
elif category == 'pull':
|
||||
print(f'::set-output name=branch::pull/{stripped.split("/")[0]}')
|
||||
elif category == 'tags':
|
||||
print(f'::set-output name=tag::{stripped}')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
29
.github/templates/linux_ci_workflow.yml.in
vendored
29
.github/templates/linux_ci_workflow.yml.in
vendored
@ -200,16 +200,41 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout PyTorch
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
# deep clone, to allow tools/print_test_stats.py to use Git commands
|
||||
fetch-depth: 0
|
||||
- uses: actions/download-artifact@v2
|
||||
name: Download PyTorch Test Reports
|
||||
with:
|
||||
name: test-reports
|
||||
path: test/test-reports
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.9
|
||||
- name: Install dependencies
|
||||
# boto3 version copied from .circleci/docker/common/install_conda.sh
|
||||
run: |
|
||||
pip install junitparser rich
|
||||
pip install -r requirements.txt
|
||||
pip install boto3==1.16.34 junitparser rich
|
||||
- name: Output Test Results (Click Me)
|
||||
run: |
|
||||
python tools/render_junit.py .
|
||||
python tools/render_junit.py test
|
||||
- name: Parse ref
|
||||
id: parse-ref
|
||||
run: .github/scripts/parse_ref.py
|
||||
- name: Display and upload test statistics (Click Me)
|
||||
# temporary hack: set CIRCLE_* vars, until we update
|
||||
# tools/print_test_stats.py to natively support GitHub Actions
|
||||
env:
|
||||
SCRIBE_GRAPHQL_ACCESS_TOKEN: ${{ secrets.SCRIBE_GRAPHQL_ACCESS_TOKEN }}
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_S3_UPDATE_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_S3_UPDATE_SECRET_ACCESS_KEY }}
|
||||
CIRCLE_BRANCH: ${{ steps.parse-ref.outputs.branch }}
|
||||
CIRCLE_JOB: !{{ build_environment }}
|
||||
CIRCLE_PR_NUMBER: ${{ github.event.pull_request.number }}
|
||||
CIRCLE_SHA1: ${{ github.event.pull_request.head.sha || github.sha }}
|
||||
CIRCLE_TAG: ${{ steps.parse-ref.outputs.tag }}
|
||||
CIRCLE_WORKFLOW_ID: ${{ github.run_id }} # dunno if this corresponds
|
||||
run: |
|
||||
export PYTHONPATH=$PWD
|
||||
python tools/print_test_stats.py --upload-to-s3 --compare-with-s3 test
|
||||
|
@ -201,16 +201,41 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout PyTorch
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
# deep clone, to allow tools/print_test_stats.py to use Git commands
|
||||
fetch-depth: 0
|
||||
- uses: actions/download-artifact@v2
|
||||
name: Download PyTorch Test Reports
|
||||
with:
|
||||
name: test-reports
|
||||
path: test/test-reports
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.9
|
||||
- name: Install dependencies
|
||||
# boto3 version copied from .circleci/docker/common/install_conda.sh
|
||||
run: |
|
||||
pip install junitparser rich
|
||||
pip install -r requirements.txt
|
||||
pip install boto3==1.16.34 junitparser rich
|
||||
- name: Output Test Results (Click Me)
|
||||
run: |
|
||||
python tools/render_junit.py .
|
||||
python tools/render_junit.py test
|
||||
- name: Parse ref
|
||||
id: parse-ref
|
||||
run: .github/scripts/parse_ref.py
|
||||
- name: Display and upload test statistics (Click Me)
|
||||
# temporary hack: set CIRCLE_* vars, until we update
|
||||
# tools/print_test_stats.py to natively support GitHub Actions
|
||||
env:
|
||||
SCRIBE_GRAPHQL_ACCESS_TOKEN: ${{ secrets.SCRIBE_GRAPHQL_ACCESS_TOKEN }}
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_S3_UPDATE_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_S3_UPDATE_SECRET_ACCESS_KEY }}
|
||||
CIRCLE_BRANCH: ${{ steps.parse-ref.outputs.branch }}
|
||||
CIRCLE_JOB: pytorch-linux-xenial-cuda10.2-cudnn7-py3.6-gcc7
|
||||
CIRCLE_PR_NUMBER: ${{ github.event.pull_request.number }}
|
||||
CIRCLE_SHA1: ${{ github.event.pull_request.head.sha || github.sha }}
|
||||
CIRCLE_TAG: ${{ steps.parse-ref.outputs.tag }}
|
||||
CIRCLE_WORKFLOW_ID: ${{ github.run_id }} # dunno if this corresponds
|
||||
run: |
|
||||
export PYTHONPATH=$PWD
|
||||
python tools/print_test_stats.py --upload-to-s3 --compare-with-s3 test
|
||||
|
@ -201,16 +201,41 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout PyTorch
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
# deep clone, to allow tools/print_test_stats.py to use Git commands
|
||||
fetch-depth: 0
|
||||
- uses: actions/download-artifact@v2
|
||||
name: Download PyTorch Test Reports
|
||||
with:
|
||||
name: test-reports
|
||||
path: test/test-reports
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.9
|
||||
- name: Install dependencies
|
||||
# boto3 version copied from .circleci/docker/common/install_conda.sh
|
||||
run: |
|
||||
pip install junitparser rich
|
||||
pip install -r requirements.txt
|
||||
pip install boto3==1.16.34 junitparser rich
|
||||
- name: Output Test Results (Click Me)
|
||||
run: |
|
||||
python tools/render_junit.py .
|
||||
python tools/render_junit.py test
|
||||
- name: Parse ref
|
||||
id: parse-ref
|
||||
run: .github/scripts/parse_ref.py
|
||||
- name: Display and upload test statistics (Click Me)
|
||||
# temporary hack: set CIRCLE_* vars, until we update
|
||||
# tools/print_test_stats.py to natively support GitHub Actions
|
||||
env:
|
||||
SCRIBE_GRAPHQL_ACCESS_TOKEN: ${{ secrets.SCRIBE_GRAPHQL_ACCESS_TOKEN }}
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_S3_UPDATE_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_S3_UPDATE_SECRET_ACCESS_KEY }}
|
||||
CIRCLE_BRANCH: ${{ steps.parse-ref.outputs.branch }}
|
||||
CIRCLE_JOB: pytorch-linux-xenial-py3.6-gcc5.4
|
||||
CIRCLE_PR_NUMBER: ${{ github.event.pull_request.number }}
|
||||
CIRCLE_SHA1: ${{ github.event.pull_request.head.sha || github.sha }}
|
||||
CIRCLE_TAG: ${{ steps.parse-ref.outputs.tag }}
|
||||
CIRCLE_WORKFLOW_ID: ${{ github.run_id }} # dunno if this corresponds
|
||||
run: |
|
||||
export PYTHONPATH=$PWD
|
||||
python tools/print_test_stats.py --upload-to-s3 --compare-with-s3 test
|
||||
|
@ -37,6 +37,7 @@ strict_equality = True
|
||||
|
||||
files =
|
||||
.github/scripts/generate_binary_build_matrix.py,
|
||||
.github/scripts/parse_ref.py,
|
||||
benchmarks/instruction_counts,
|
||||
tools/actions_local_runner.py,
|
||||
tools/autograd/*.py,
|
||||
|
Reference in New Issue
Block a user