Fix "offset might not exist" false-positives when offset is a expression #13275
Workflow file for this run
This file contains hidden or 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
# 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.1.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" | |
uses: "ramsey/composer-install@v3" | |
with: | |
working-directory: "issue-bot" | |
- name: "Cache downloads" | |
uses: actions/cache@v4 | |
with: | |
path: ./issue-bot/tmp | |
key: "issue-bot-download-v7-${{ github.run_id }}" | |
restore-keys: | | |
issue-bot-download-v7- | |
- 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" | |
- uses: "ramsey/composer-install@v3" | |
with: | |
composer-options: "--no-dev" | |
- name: "Install issue-bot dependencies" | |
uses: "ramsey/composer-install@v3" | |
with: | |
working-directory: "issue-bot" | |
- uses: Wandalen/wretry.action@v3.8.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" | |
uses: "ramsey/composer-install@v3" | |
with: | |
working-directory: "issue-bot" | |
- 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: | | |
set +e | |
./console.php evaluate >> $GITHUB_STEP_SUMMARY | |
exit_code="$?" | |
if [[ "$exit_code" == "2" ]]; then | |
echo "::notice file=.github/workflows/issue-bot.yml,line=3 ::Issue bot detected open issues which are affected by this pull request - see https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" | |
exit 0 | |
fi | |
exit $exit_code | |
- name: "Evaluate results - push" | |
working-directory: "issue-bot" | |
if: "github.repository_owner == 'phpstan' && github.ref == 'refs/heads/2.1.x'" | |
env: | |
GITHUB_PAT: ${{ secrets.PHPSTAN_BOT_TOKEN }} | |
PHPSTAN_SRC_COMMIT_BEFORE: ${{ github.event.before }} | |
PHPSTAN_SRC_COMMIT_AFTER: ${{ github.event.after }} | |
run: | | |
set +e | |
./console.php evaluate --post-comments >> $GITHUB_STEP_SUMMARY | |
exit_code="$?" | |
# its fine when issue-bot found affected issues | |
if [[ "$exit_code" == "2" ]]; then | |
exit 0 | |
fi | |
exit $exit_code |