mirror of
https://github.com/encounter/adk-python.git
synced 2026-07-09 18:19:28 -07:00
Merge https://github.com/google/adk-python/pull/4426 ## Summary Upgrade GitHub Actions to their latest versions to ensure compatibility with Node 24, as Node 20 will reach end-of-life in April 2026. ## Changes | Action | Old Version(s) | New Version | Release | Files | |--------|---------------|-------------|---------|-------| | `actions/checkout` | [`v4`](https://github.com/actions/checkout/releases/tag/v4) | [`v6`](https://github.com/actions/checkout/releases/tag/v6) | [Release](https://github.com/actions/checkout/releases/tag/v6) | mypy-new-errors.yml, mypy.yml | | `actions/setup-python` | [`v5`](https://github.com/actions/setup-python/releases/tag/v5) | [`v6`](https://github.com/actions/setup-python/releases/tag/v6) | [Release](https://github.com/actions/setup-python/releases/tag/v6) | mypy-new-errors.yml, mypy.yml | ## Context Per [GitHub's announcement](https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/), Node 20 is being deprecated and runners will begin using Node 24 by default starting March 4th, 2026. ### Why this matters - **Node 20 EOL**: April 2026 - **Node 24 default**: March 4th, 2026 - **Action**: Update to latest action versions that support Node 24 ### Security Note Actions that were previously pinned to commit SHAs remain pinned to SHAs (updated to the latest release SHA) to maintain the security benefits of immutable references. ### Testing These changes only affect CI/CD workflow configurations and should not impact application functionality. The workflows should be tested by running them on a branch before merging. COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/4426 from salmanmkc:upgrade-github-actions-node24 a574f92c72502ae60531163da60f7820e01380f3 PiperOrigin-RevId: 868281419
75 lines
2.3 KiB
YAML
75 lines
2.3 KiB
YAML
name: Mypy New Error Check
|
|
|
|
on:
|
|
push:
|
|
branches: [ main ]
|
|
pull_request:
|
|
branches: [ main ]
|
|
|
|
|
|
jobs:
|
|
mypy-diff:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
python-version: ['3.10', '3.11', '3.12', '3.13',]
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v6
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v6
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
|
|
- name: Install uv
|
|
uses: astral-sh/setup-uv@v7
|
|
|
|
- name: Generate Baseline (Main)
|
|
run: |
|
|
# Switch to main branch to generate baseline
|
|
git checkout origin/main
|
|
|
|
git checkout ${{ github.sha }} -- pyproject.toml
|
|
|
|
# Install dependencies for main
|
|
uv venv .venv
|
|
source .venv/bin/activate
|
|
uv sync --all-extras
|
|
|
|
# Run mypy, filter for errors only, remove line numbers (file:123: -> file::), and sort
|
|
# We ignore exit code (|| true) because we expect errors on main
|
|
uv run mypy . | grep "error:" | sed 's/:\([0-9]\+\):/::/g' | sort > main_errors.txt || true
|
|
|
|
echo "Found $(wc -l < main_errors.txt) errors on main."
|
|
|
|
- name: Check PR Branch
|
|
run: |
|
|
# Switch back to the PR commit
|
|
git checkout ${{ github.sha }}
|
|
|
|
# Re-sync dependencies in case the PR changed them
|
|
source .venv/bin/activate
|
|
uv sync --all-extras
|
|
|
|
# Run mypy on PR code, apply same processing
|
|
uv run mypy . | grep "error:" | sed 's/:\([0-9]\+\):/::/g' | sort > pr_errors.txt || true
|
|
|
|
echo "Found $(wc -l < pr_errors.txt) errors on PR branch."
|
|
|
|
- name: Compare and Fail on New Errors
|
|
run: |
|
|
# 'comm -13' suppresses unique lines in file1 (main) and common lines,
|
|
# leaving only lines unique to file2 (PR) -> The new errors.
|
|
comm -13 main_errors.txt pr_errors.txt > new_errors.txt
|
|
|
|
if [ -s new_errors.txt ]; then
|
|
echo "::error::The following NEW mypy errors were introduced:"
|
|
cat new_errors.txt
|
|
exit 1
|
|
else
|
|
echo "Great job! No new mypy errors introduced."
|
|
fi
|