build(deps): bump pydantic from 2.7.0 to 2.8.2 #686
This file contains 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
name: CI | |
on: | |
push: | |
branches: | |
- master | |
- '[0-9].[0-9]+' # matches to backport branches, e.g. 3.6 | |
tags: [ 'v*' ] | |
pull_request: | |
branches: | |
- master | |
- '[0-9].[0-9]+' | |
jobs: | |
lint: | |
name: Linter | |
runs-on: ubuntu-latest | |
timeout-minutes: 5 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.10' | |
cache: 'pip' | |
cache-dependency-path: '**/requirements*.txt' | |
- name: Install dependencies | |
uses: py-actions/py-dependency-install@v4 | |
with: | |
path: requirements-dev.txt | |
- name: Install itself | |
run: | | |
pip install . | |
- name: Mypy | |
run: mypy | |
- name: Pre-Commit hooks | |
uses: pre-commit/action@v3.0.1 | |
- name: Flake8 | |
run: flake8 | |
- name: Prepare twine checker | |
run: | | |
pip install -U build twine wheel | |
python -m build | |
- name: Run twine checker | |
run: | | |
twine check dist/* | |
yarn_build: | |
permissions: | |
contents: read # to fetch code (actions/checkout) | |
name: Build JS with Yarn | |
runs-on: ubuntu-latest | |
timeout-minutes: 5 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install yarn | |
run: sudo apt install yarn -y | |
- name: Get yarn cache dir | |
run: echo "yarn_cache=$(yarn cache dir)" >> "$GITHUB_ENV" | |
- name: Cache node modules | |
uses: actions/cache@v4 | |
with: | |
key: node-${{ hashFiles('admin-js/package.json') }}-${{ github.run_id }} | |
restore-keys: node-${{ hashFiles('admin-js/package.json') }} | |
path: | | |
${{ env.yarn_cache }} | |
admin-js/node_modules | |
- name: Yarn install | |
run: yarn install | |
working-directory: admin-js/ | |
- name: Cache output files | |
uses: actions/cache@v4 | |
id: cache_admin_js | |
with: | |
key: yarn-${{ hashFiles('admin-js/src/*') }}-${{ hashFiles('admin-js/yarn.lock') }} | |
path: | | |
aiohttp_admin/static/admin.js | |
aiohttp_admin/static/*.map | |
- name: Yarn build | |
if: steps.cache_admin_js.outputs.cache-hit != 'true' | |
run: yarn build | |
working-directory: admin-js/ | |
test: | |
name: Test | |
needs: yarn_build | |
strategy: | |
matrix: | |
pyver: ['3.9', '3.10', '3.11', '3.12'] | |
include: | |
- pyver: pypy-3.9 | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Python ${{ matrix.pyver }} | |
uses: actions/setup-python@v5 | |
with: | |
allow-prereleases: true | |
python-version: ${{ matrix.pyver }} | |
cache: 'pip' | |
cache-dependency-path: '**/requirements*.txt' | |
- name: Restore cached JS files | |
uses: actions/cache/restore@v4 | |
with: | |
key: yarn-${{ hashFiles('admin-js/src/*') }} | |
fail-on-cache-miss: true | |
path: | | |
aiohttp_admin/static/admin.js | |
aiohttp_admin/static/*.map | |
- name: Install dependencies | |
uses: py-actions/py-dependency-install@v4 | |
with: | |
path: requirements.txt | |
- name: Run unittests | |
env: | |
COLOR: 'yes' | |
run: | | |
pytest tests | |
python -m coverage xml | |
- name: Upload coverage | |
uses: codecov/codecov-action@v4 | |
with: | |
fail_ci_if_error: true | |
files: ./coverage.xml | |
flags: unit | |
token: ${{ secrets.CODECOV_TOKEN }} | |
test-integration: | |
name: Integration Test | |
needs: yarn_build | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install yarn | |
run: sudo apt install yarn -y | |
- name: Get yarn cache dir | |
run: echo "yarn_cache=$(yarn cache dir)" >> "$GITHUB_ENV" | |
- name: Cache node modules | |
uses: actions/cache@v4 | |
with: | |
key: node-${{ hashFiles('admin-js/package.json') }}-${{ github.run_id }} | |
restore-keys: node-${{ hashFiles('admin-js/package.json') }} | |
path: | | |
${{ env.yarn_cache }} | |
admin-js/node_modules | |
- name: Yarn install | |
run: yarn install | |
working-directory: admin-js/ | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.12 | |
cache: 'pip' | |
cache-dependency-path: '**/requirements*.txt' | |
- name: Restore cached JS files | |
uses: actions/cache/restore@v4 | |
with: | |
key: yarn-${{ hashFiles('admin-js/src/*') }} | |
fail-on-cache-miss: true | |
path: | | |
aiohttp_admin/static/admin.js | |
aiohttp_admin/static/*.map | |
- name: Install dependencies | |
uses: py-actions/py-dependency-install@v4 | |
with: | |
path: requirements.txt | |
- name: Run tests | |
run: yarn test --coverage | |
working-directory: admin-js/ | |
- name: Upload JS coverage | |
uses: codecov/codecov-action@v4 | |
with: | |
fail_ci_if_error: true | |
directory: admin-js/coverage/ | |
flags: js, integration | |
token: ${{ secrets.CODECOV_TOKEN }} | |
- name: Generate Python coverage | |
run: python -m coverage xml | |
- name: Upload Python coverage | |
uses: codecov/codecov-action@v4 | |
with: | |
fail_ci_if_error: true | |
files: ./coverage.xml | |
flags: integration | |
token: ${{ secrets.CODECOV_TOKEN }} | |
check: # This job does nothing and is only used for the branch protection | |
if: always() | |
needs: [lint, test, test-integration] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Decide whether the needed jobs succeeded or failed | |
uses: re-actors/alls-green@release/v1 | |
with: | |
jobs: ${{ toJSON(needs) }} | |
deploy: | |
name: Deploy | |
environment: release | |
runs-on: ubuntu-latest | |
needs: [check] | |
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.11 | |
- name: Install yarn | |
run: sudo apt install yarn -y | |
- name: Yarn install | |
run: yarn install | |
working-directory: admin-js/ | |
- name: Yarn build | |
run: yarn build | |
working-directory: admin-js/ | |
- name: Install dependencies | |
run: | |
python -m pip install -U pip wheel setuptools build twine | |
- name: Build dists | |
run: | | |
python -m build | |
- name: Make Release | |
uses: aio-libs/create-release@v1.6.6 | |
with: | |
changes_file: CHANGES.rst | |
name: aiohttp-admin | |
version_file: aiohttp_admin/__init__.py | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
pypi_token: ${{ secrets.PYPI_API_TOKEN }} | |
dist_dir: dist | |
fix_issue_regex: "`#(\\d+) <https://github.com/aio-libs/aiohttp-admin/issues/\\1>`" | |
fix_issue_repl: "(#\\1)" |