Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into custom_cache_directory
- Loading branch information
Showing
57 changed files
with
1,299 additions
and
632 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
mypy == 0.920 | ||
|
||
# A bunch of packages for type information | ||
mypy-extensions >= 0.4.3 | ||
tomli >= 0.10.2 | ||
types-typed-ast >= 1.4.2 | ||
types-dataclasses >= 0.1.3 | ||
typing-extensions > 3.10.0.1 | ||
click >= 8.0.0 | ||
platformdirs >= 2.1.0 | ||
|
||
# And because build isolation is disabled, we'll need to pull this too | ||
setuptools-scm[toml] >= 6.3.1 | ||
wheel |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,150 @@ | ||
name: diff-shades | ||
|
||
on: | ||
push: | ||
branches: [main] | ||
paths-ignore: ["docs/**", "tests/**", "**.md", "**.rst"] | ||
|
||
pull_request: | ||
paths-ignore: ["docs/**", "tests/**", "**.md", "**.rst"] | ||
|
||
workflow_dispatch: | ||
inputs: | ||
baseline: | ||
description: > | ||
The baseline revision. Pro-tip, use `.pypi` to use the latest version | ||
on PyPI or `.XXX` to use a PR. | ||
required: true | ||
default: main | ||
baseline-args: | ||
description: "Custom Black arguments (eg. -l 79)" | ||
required: false | ||
target: | ||
description: > | ||
The target revision to compare against the baseline. Same tip applies here. | ||
required: true | ||
target-args: | ||
description: "Custom Black arguments (eg. -S)" | ||
required: false | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
analysis: | ||
name: analysis / linux | ||
runs-on: ubuntu-latest | ||
env: | ||
# Clang is less picky with the C code it's given than gcc (and may | ||
# generate faster binaries too). | ||
CC: clang-12 | ||
|
||
steps: | ||
- name: Checkout this repository (full clone) | ||
uses: actions/checkout@v2 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- uses: actions/setup-python@v2 | ||
|
||
- name: Install diff-shades and support dependencies | ||
run: | | ||
python -m pip install pip --upgrade | ||
python -m pip install https://github.com/ichard26/diff-shades/archive/stable.zip | ||
python -m pip install click packaging urllib3 | ||
python -m pip install -r .github/mypyc-requirements.txt | ||
# After checking out old revisions, this might not exist so we'll use a copy. | ||
cat scripts/diff_shades_gha_helper.py > helper.py | ||
git config user.name "diff-shades-gha" | ||
git config user.email "diff-shades-gha@example.com" | ||
- name: Calculate run configuration & metadata | ||
id: config | ||
env: | ||
GITHUB_TOKEN: ${{ github.token }} | ||
run: > | ||
python helper.py config ${{ github.event_name }} | ||
${{ github.event.inputs.baseline }} ${{ github.event.inputs.target }} | ||
--baseline-args "${{ github.event.inputs.baseline-args }}" | ||
- name: Attempt to use cached baseline analysis | ||
id: baseline-cache | ||
uses: actions/cache@v2.1.7 | ||
with: | ||
path: ${{ steps.config.outputs.baseline-analysis }} | ||
key: ${{ steps.config.outputs.baseline-cache-key }} | ||
|
||
- name: Build and install baseline revision | ||
if: steps.baseline-cache.outputs.cache-hit != 'true' | ||
env: | ||
GITHUB_TOKEN: ${{ github.token }} | ||
run: > | ||
${{ steps.config.outputs.baseline-setup-cmd }} | ||
&& python setup.py --use-mypyc bdist_wheel | ||
&& python -m pip install dist/*.whl && rm build dist -r | ||
- name: Analyze baseline revision | ||
if: steps.baseline-cache.outputs.cache-hit != 'true' | ||
run: > | ||
diff-shades analyze -v --work-dir projects-cache/ | ||
${{ steps.config.outputs.baseline-analysis }} -- ${{ github.event.inputs.baseline-args }} | ||
- name: Build and install target revision | ||
env: | ||
GITHUB_TOKEN: ${{ github.token }} | ||
run: > | ||
${{ steps.config.outputs.target-setup-cmd }} | ||
&& python setup.py --use-mypyc bdist_wheel | ||
&& python -m pip install dist/*.whl | ||
- name: Analyze target revision | ||
run: > | ||
diff-shades analyze -v --work-dir projects-cache/ | ||
${{ steps.config.outputs.target-analysis }} --repeat-projects-from | ||
${{ steps.config.outputs.baseline-analysis }} -- ${{ github.event.inputs.target-args }} | ||
- name: Generate HTML diff report | ||
run: > | ||
diff-shades --dump-html diff.html compare --diff --quiet | ||
${{ steps.config.outputs.baseline-analysis }} ${{ steps.config.outputs.target-analysis }} | ||
- name: Upload diff report | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: diff.html | ||
path: diff.html | ||
|
||
- name: Upload baseline analysis | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: ${{ steps.config.outputs.baseline-analysis }} | ||
path: ${{ steps.config.outputs.baseline-analysis }} | ||
|
||
- name: Upload target analysis | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: ${{ steps.config.outputs.target-analysis }} | ||
path: ${{ steps.config.outputs.target-analysis }} | ||
|
||
- name: Generate summary file (PR only) | ||
if: github.event_name == 'pull_request' | ||
run: > | ||
python helper.py comment-body | ||
${{ steps.config.outputs.baseline-analysis }} ${{ steps.config.outputs.target-analysis }} | ||
${{ steps.config.outputs.baseline-sha }} ${{ steps.config.outputs.target-sha }} | ||
${{ github.event.pull_request.number }} | ||
- name: Upload summary file (PR only) | ||
if: github.event_name == 'pull_request' | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: .pr-comment.json | ||
path: .pr-comment.json | ||
|
||
# This is last so the diff-shades-comment workflow can still work even if we | ||
# end up detecting failed files and failing the run. | ||
- name: Check for failed files in both analyses | ||
run: > | ||
diff-shades show-failed --check --show-log ${{ steps.config.outputs.baseline-analysis }}; | ||
diff-shades show-failed --check --show-log ${{ steps.config.outputs.target-analysis }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
name: diff-shades-comment | ||
|
||
on: | ||
workflow_run: | ||
workflows: [diff-shades] | ||
types: [completed] | ||
|
||
permissions: | ||
pull-requests: write | ||
|
||
jobs: | ||
comment: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- uses: actions/setup-python@v2 | ||
|
||
- name: Install support dependencies | ||
run: | | ||
python -m pip install pip --upgrade | ||
python -m pip install click packaging urllib3 | ||
- name: Get details from initial workflow run | ||
id: metadata | ||
env: | ||
GITHUB_TOKEN: ${{ github.token }} | ||
run: > | ||
python scripts/diff_shades_gha_helper.py comment-details | ||
${{github.event.workflow_run.id }} | ||
- name: Try to find pre-existing PR comment | ||
if: steps.metadata.outputs.needs-comment == 'true' | ||
id: find-comment | ||
uses: peter-evans/find-comment@d2dae40ed151c634e4189471272b57e76ec19ba8 | ||
with: | ||
issue-number: ${{ steps.metadata.outputs.pr-number }} | ||
comment-author: "github-actions[bot]" | ||
body-includes: "diff-shades" | ||
|
||
- name: Create or update PR comment | ||
if: steps.metadata.outputs.needs-comment == 'true' | ||
uses: peter-evans/create-or-update-comment@a35cf36e5301d70b76f316e867e7788a55a31dae | ||
with: | ||
comment-id: ${{ steps.find-comment.outputs.comment-id }} | ||
issue-number: ${{ steps.metadata.outputs.pr-number }} | ||
body: ${{ steps.metadata.outputs.comment-body }} | ||
edit-mode: replace |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.