build(deps): bump the react-admin group across 1 directory with 17 updates #1082
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
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/[email protected] | |
- 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: Disable man-db to speed up apt | |
run: | | |
echo 'set man-db/auto-update false' | sudo debconf-communicate >/dev/null | |
sudo dpkg-reconfigure man-db | |
- 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 | |
id: cache_node_modules | |
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 | |
admin-js/yarn.lock | |
- name: Yarn install | |
if: steps.cache_node_modules.outputs.cache-hit != 'true' | |
run: yarn install --production | |
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/admin.js.map | |
- name: Yarn build | |
if: steps.cache_admin_js.outputs.cache-hit != 'true' | |
run: yarn build --minify false | |
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/admin.js.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@v5 | |
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: Disable man-db to speed up apt | |
run: | | |
echo 'set man-db/auto-update false' | sudo debconf-communicate >/dev/null | |
sudo dpkg-reconfigure man-db | |
- 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/admin.js.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@v5 | |
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@v5 | |
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: Disable man-db to speed up apt | |
run: | | |
echo 'set man-db/auto-update false' | sudo debconf-communicate >/dev/null | |
sudo dpkg-reconfigure man-db | |
- name: Install yarn | |
run: sudo apt install yarn -y | |
- name: Yarn install | |
run: yarn install --production | |
working-directory: admin-js/ | |
- name: Yarn build | |
run: yarn build --production | |
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/[email protected] | |
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)" |