X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/d90297c77bab6e22831b05ffc099bfc709cc7785..d1aee5f7fa136b1f0a7d8dfc318af81009074070:/.vim/bundle/black/.github/workflows/diff_shades.yml diff --git a/.vim/bundle/black/.github/workflows/diff_shades.yml b/.vim/bundle/black/.github/workflows/diff_shades.yml new file mode 100644 index 0000000..97db907 --- /dev/null +++ b/.vim/bundle/black/.github/workflows/diff_shades.yml @@ -0,0 +1,155 @@ +name: diff-shades + +on: + push: + branches: [main] + paths: ["src/**", "pyproject.toml", ".github/workflows/*"] + + pull_request: + paths: ["src/**", "pyproject.toml", ".github/workflows/*"] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: true + +jobs: + configure: + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.set-config.outputs.matrix }} + + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v4 + with: + python-version: "*" + + - name: Install diff-shades and support dependencies + run: | + python -m pip install 'click==8.1.3' packaging urllib3 + python -m pip install https://github.com/ichard26/diff-shades/archive/stable.zip + + - name: Calculate run configuration & metadata + id: set-config + env: + GITHUB_TOKEN: ${{ github.token }} + run: > + python scripts/diff_shades_gha_helper.py config ${{ github.event_name }} ${{ matrix.mode }} + + analysis: + name: analysis / ${{ matrix.mode }} + needs: configure + runs-on: ubuntu-latest + env: + HATCH_BUILD_HOOKS_ENABLE: "1" + # Clang is less picky with the C code it's given than gcc (and may + # generate faster binaries too). + CC: clang-14 + strategy: + fail-fast: false + matrix: + include: ${{ fromJson(needs.configure.outputs.matrix )}} + + steps: + - name: Checkout this repository (full clone) + uses: actions/checkout@v4 + with: + # The baseline revision could be rather old so a full clone is ideal. + fetch-depth: 0 + + - uses: actions/setup-python@v4 + with: + python-version: "*" + + - name: Install diff-shades and support dependencies + run: | + python -m pip install https://github.com/ichard26/diff-shades/archive/stable.zip + python -m pip install 'click==8.1.3' packaging urllib3 + # 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: Attempt to use cached baseline analysis + id: baseline-cache + uses: actions/cache@v3 + with: + path: ${{ matrix.baseline-analysis }} + key: ${{ matrix.baseline-cache-key }} + + - name: Build and install baseline revision + if: steps.baseline-cache.outputs.cache-hit != 'true' + env: + GITHUB_TOKEN: ${{ github.token }} + run: > + ${{ matrix.baseline-setup-cmd }} + && python -m pip install . + + - name: Analyze baseline revision + if: steps.baseline-cache.outputs.cache-hit != 'true' + run: > + diff-shades analyze -v --work-dir projects-cache/ + ${{ matrix.baseline-analysis }} ${{ matrix.force-flag }} + + - name: Build and install target revision + env: + GITHUB_TOKEN: ${{ github.token }} + run: > + ${{ matrix.target-setup-cmd }} + && python -m pip install . + + - name: Analyze target revision + run: > + diff-shades analyze -v --work-dir projects-cache/ + ${{ matrix.target-analysis }} --repeat-projects-from + ${{ matrix.baseline-analysis }} ${{ matrix.force-flag }} + + - name: Generate HTML diff report + run: > + diff-shades --dump-html diff.html compare --diff + ${{ matrix.baseline-analysis }} ${{ matrix.target-analysis }} + + - name: Upload diff report + uses: actions/upload-artifact@v3 + with: + name: ${{ matrix.mode }}-diff.html + path: diff.html + + - name: Upload baseline analysis + uses: actions/upload-artifact@v3 + with: + name: ${{ matrix.baseline-analysis }} + path: ${{ matrix.baseline-analysis }} + + - name: Upload target analysis + uses: actions/upload-artifact@v3 + with: + name: ${{ matrix.target-analysis }} + path: ${{ matrix.target-analysis }} + + - name: Generate summary file (PR only) + if: github.event_name == 'pull_request' && matrix.mode == 'preview-changes' + run: > + python helper.py comment-body + ${{ matrix.baseline-analysis }} ${{ matrix.target-analysis }} + ${{ matrix.baseline-sha }} ${{ matrix.target-sha }} + ${{ github.event.pull_request.number }} + + - name: Upload summary file (PR only) + if: github.event_name == 'pull_request' && matrix.mode == 'preview-changes' + uses: actions/upload-artifact@v3 + with: + name: .pr-comment.json + path: .pr-comment.json + + - name: Verify zero changes (PR only) + if: matrix.mode == 'assert-no-changes' + run: > + diff-shades compare --check ${{ matrix.baseline-analysis }} ${{ matrix.target-analysis }} + || (echo "Please verify you didn't change the stable code style unintentionally!" && exit 1) + + - name: Check for failed files for target revision + # Even if the previous step failed, we should still check for failed files. + if: always() + run: > + diff-shades show-failed --check --show-log ${{ matrix.target-analysis }}