| name: Tree Analyze |
| |
| on: |
| pull_request: |
| branches: [master] |
| merge_group: |
| branches: [master] |
| |
| jobs: |
| Tree_analyze: |
| permissions: |
| contents: read |
| runs-on: ubuntu-latest |
| timeout-minutes: 130 |
| |
| steps: |
| # Note: we must check out the tree for the composite action to be available |
| - name: Checkout code |
| if: env.ACT != 'true' |
| uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 |
| with: |
| fetch-depth: 0 |
| ref: ${{ github.event.pull_request.head.sha || github.sha }} |
| |
| - name: Checkout code (act local) |
| if: env.ACT |
| uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 |
| |
| - name: Check Engine Changes |
| id: check_engine |
| run: | |
| # 1. Determine local base tracking SHA |
| if [ "${{ github.event_name }}" = "pull_request" ]; then |
| BASE_REF="${{ github.event.pull_request.base.sha }}" |
| elif [ "${{ github.event_name }}" = "merge_group" ]; then |
| BASE_REF="${{ github.event.merge_group.base_sha }}" |
| else |
| BASE_REF="origin/master" |
| fi |
| |
| echo "Comparing against base SHA: $BASE_REF" |
| |
| # 2. Get the changed files using the helper script |
| CHANGED_FILES=$(.github/scripts/git_files_changed.sh "$BASE_REF") |
| echo "Changed files in this branch:" |
| echo "$CHANGED_FILES" |
| |
| # 3. Check if any file matches engine pattern using the helper script: |
| if [ "$(echo "$CHANGED_FILES" | .github/scripts/did_engine_change.sh)" = "true" ]; then |
| echo "Engine file changed - forced to wait for Linux linux_host_engine" |
| echo "changed=true" >> "$GITHUB_OUTPUT" |
| else |
| echo "changed=false" >> "$GITHUB_OUTPUT" |
| fi |
| |
| - name: Wait for test check-in |
| if: steps.check_engine.outputs.changed == 'true' && env.ACT != 'true' |
| uses: lewagon/wait-on-check-action@9312864dfbc9fd208e9c0417843430751c042800 |
| with: |
| ref: ${{ github.event.pull_request.head.sha || github.sha }} |
| check-name: 'Linux linux_host_engine' |
| repo-token: ${{ secrets.GITHUB_TOKEN }} |
| wait-interval: 30 # seconds |
| checks-discovery-timeout: 3600 # Wait up to 1 hour for LUCI to register the check |
| allowed-conclusions: success,neutral |
| verbose: false |
| |
| - name: Redirect engine.version |
| if: steps.check_engine.outputs.changed == 'true' && github.event_name == 'pull_request' |
| run: echo "FLUTTER_REALM=flutter_archives_v2" >> $GITHUB_ENV |
| |
| - uses: ./.github/actions/composite-flutter-setup |
| |
| - name: Run Analyze |
| run: | |
| SHARD=analyze LUCI_CI=true dart --enable-asserts dev/bots/test.dart |