Skip to content

Implement @pure-unless-callable-impure #9106

Implement @pure-unless-callable-impure

Implement @pure-unless-callable-impure #9106

Workflow file for this run

# https://help.github.com/en/categories/automating-your-workflow-with-github-actions
name: "Issue bot"
on:
workflow_dispatch:
pull_request:
paths-ignore:
- 'compiler/**'
- 'apigen/**'
- 'changelog-generator/**'
push:
branches:
- "2.0.x"
paths-ignore:
- 'compiler/**'
- 'apigen/**'
- 'changelog-generator/**'
concurrency:
group: run-issue-bot-${{ github.head_ref || github.run_id }} # will be canceled on subsequent pushes in pull requests but not branches
cancel-in-progress: true
jobs:
download:
name: "Download data"
runs-on: "ubuntu-latest"
outputs:
matrix: ${{ steps.download-data.outputs.matrix }}
steps:
- name: "Checkout"
uses: actions/checkout@v4
- name: "Install PHP"
uses: "shivammathur/setup-php@v2"
with:
coverage: "none"
php-version: "8.3"
- name: "Install Issue Bot dependencies"
working-directory: "issue-bot"
run: "composer install --no-interaction --no-progress"
- name: "Cache downloads"
uses: actions/cache@v4
with:
path: ./issue-bot/tmp
key: "issue-bot-download-v6-${{ github.run_id }}"
restore-keys: |
issue-bot-download-v6-
- name: "Download data"
working-directory: "issue-bot"
id: download-data
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
run: echo "matrix=$(./console.php download)" >> $GITHUB_OUTPUT
- uses: actions/upload-artifact@v4
with:
name: playground-cache
path: issue-bot/tmp/playgroundCache.tmp
- uses: actions/upload-artifact@v4
with:
name: issue-cache
path: issue-bot/tmp/issueCache.tmp
analyse:
name: "Analyse"
needs: download
runs-on: "ubuntu-latest"
strategy:
fail-fast: false
matrix: ${{ fromJSON(needs.download.outputs.matrix) }}
steps:
- name: "Checkout"
uses: actions/checkout@v4
- name: "Install PHP"
uses: "shivammathur/setup-php@v2"
with:
coverage: "none"
php-version: "8.3"
- name: "Install dependencies"
run: "composer install --no-interaction --no-progress --no-dev"
- name: "Install Issue Bot dependencies"
working-directory: "issue-bot"
run: "composer install --no-interaction --no-progress"
- uses: Wandalen/wretry.action@v3.7.0
with:
action: actions/download-artifact@v4
with: |
name: playground-cache
path: issue-bot/tmp
attempt_limit: 5
attempt_delay: 1000
- name: "Run PHPStan"
working-directory: "issue-bot"
timeout-minutes: 5
run: ./console.php run ${{ matrix.phpVersion }} ${{ matrix.playgroundExamples }}
- uses: actions/upload-artifact@v4
with:
name: results-${{ matrix.phpVersion }}-${{ matrix.chunkNumber }}
path: issue-bot/tmp/results-${{ matrix.phpVersion }}-*.tmp
evaluate:
name: "Evaluate results"
needs: analyse
runs-on: "ubuntu-latest"
steps:
- name: "Checkout"
uses: actions/checkout@v4
- name: "Install PHP"
uses: "shivammathur/setup-php@v2"
with:
coverage: "none"
php-version: "8.3"
- name: "Install Issue Bot dependencies"
working-directory: "issue-bot"
run: "composer install --no-interaction --no-progress"
- uses: actions/download-artifact@v4
with:
name: playground-cache
path: issue-bot/tmp
- uses: actions/download-artifact@v4
with:
name: issue-cache
path: issue-bot/tmp
- uses: actions/download-artifact@v4
with:
pattern: results-*
merge-multiple: true
path: issue-bot/tmp
- name: "List tmp"
run: "ls -lA issue-bot/tmp"
- name: "Evaluate results - pull request"
working-directory: "issue-bot"
if: github.event_name == 'pull_request'
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
run: ./console.php evaluate >> $GITHUB_STEP_SUMMARY
- name: "Evaluate results - push"
working-directory: "issue-bot"
if: "github.repository_owner == 'phpstan' && github.ref == 'refs/heads/2.0.x'"
env:
GITHUB_PAT: ${{ secrets.PHPSTAN_BOT_TOKEN }}
PHPSTAN_SRC_COMMIT_BEFORE: ${{ github.event.before }}
PHPSTAN_SRC_COMMIT_AFTER: ${{ github.event.after }}
run: ./console.php evaluate --post-comments >> $GITHUB_STEP_SUMMARY