on:
push:
branches: [main]
- paths-ignore: ["docs/**", "tests/**", "*.md"]
+ paths-ignore: ["docs/**", "tests/**", "**.md", "**.rst"]
pull_request:
- paths-ignore: ["docs/**", "tests/**", "*.md"]
+ paths-ignore: ["docs/**", "tests/**", "**.md", "**.rst"]
workflow_dispatch:
inputs:
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
+ uses: actions/checkout@v3
with:
fetch-depth: 0
- - uses: actions/setup-python@v2
+ - uses: actions/setup-python@v3
- 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"
path: ${{ steps.config.outputs.baseline-analysis }}
key: ${{ steps.config.outputs.baseline-cache-key }}
- - name: Install baseline revision
+ - 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 -m pip install .
+ 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'
diff-shades analyze -v --work-dir projects-cache/
${{ steps.config.outputs.baseline-analysis }} -- ${{ github.event.inputs.baseline-args }}
- - name: Install target revision
+ - name: Build and install target revision
env:
GITHUB_TOKEN: ${{ github.token }}
- run: ${{ steps.config.outputs.target-setup-cmd }} && python -m pip install .
+ 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: >
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-body.md
- path: .pr-comment-body.md
+ 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.