Bump @mui/material from 6.4.3 to 6.4.4 in /frontend (#1290) #1438
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: Code quality tests | |
env: | |
ALL_PYTHON_VERSIONS: "['3.13']" | |
ALL_NODE_VERSIONS: "['20']" | |
CACHE_VERSION: 1 | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
permissions: | |
# Gives the action the necessary permissions for publishing new | |
# comments in pull requests. | |
pull-requests: write | |
# Gives the action the necessary permissions for pushing data to the | |
# python-coverage-comment-action branch, and for editing existing | |
# comments (to avoid publishing multiple comments in the same PR) | |
contents: write | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
info: | |
runs-on: ubuntu-latest | |
name: Collect information & changes data | |
outputs: | |
run_pipeline: ${{ steps.changes.outputs.core }} | |
run_pipeline_frontend: ${{ steps.changes.outputs.frontend }} | |
run_pipeline_docker: ${{ steps.changes.outputs.docker }} | |
python_versions: ${{ steps.info.outputs.python_versions }} | |
python_cache_key: ${{ steps.generate_python_cache_key.outputs.key }} | |
node_versions: ${{ steps.info.outputs.node_versions }} | |
steps: | |
- name: Checkout code | |
uses: actions/[email protected] | |
- name: Filter for core changes | |
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 | |
id: changes | |
with: | |
filters: | | |
core: | |
- pypmanager/**/*.py | |
- tests/**/*.py | |
- pypmanager/**/*.yaml | |
- pyproject.toml | |
- .github/workflows/ci.yml | |
frontend: | |
- frontend/**/* | |
- .github/workflows/ci.yml | |
docker: | |
- Dockerfile | |
- .github/workflows/ci.yml | |
- name: Generate partial Python venv restore key | |
id: generate_python_cache_key | |
run: >- | |
echo "key=venv-${{ env.CACHE_VERSION }}-${{ | |
hashFiles('pyproject.toml') }}" >> $GITHUB_OUTPUT | |
- name: Collect additional information | |
id: info | |
run: | | |
echo "python_versions: ${ALL_PYTHON_VERSIONS}" | |
echo "python_versions=${ALL_PYTHON_VERSIONS}" >> $GITHUB_OUTPUT | |
echo "node_versions: ${ALL_NODE_VERSIONS}" | |
echo "node_versions=${ALL_NODE_VERSIONS}" >> $GITHUB_OUTPUT | |
backend-create-environment: | |
name: "Backend: setup environment" | |
runs-on: ubuntu-latest | |
needs: info | |
timeout-minutes: 5 | |
if: needs.info.outputs.run_pipeline == 'true' | |
strategy: | |
matrix: | |
python-version: ${{ fromJSON(needs.info.outputs.python_versions) }} | |
steps: | |
- name: Checkout code | |
uses: actions/[email protected] | |
- name: Set up Python ${{ matrix.python-version }} | |
id: python | |
uses: actions/[email protected] | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Restore base Python virtual environment | |
id: cache-venv | |
uses: actions/[email protected] | |
with: | |
path: .venv | |
lookup-only: true | |
key: >- | |
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{ | |
needs.info.outputs.python_cache_key }} | |
- name: Install requirements | |
if: steps.cache-venv.outputs.cache-hit != 'true' | |
run: | | |
pip install uv | |
uv venv | |
source .venv/bin/activate | |
uv pip install -e .'[test]' | |
backend-linter: | |
name: "Backend: run code linters" | |
needs: | |
- info | |
- backend-create-environment | |
runs-on: ubuntu-latest | |
timeout-minutes: 5 | |
strategy: | |
matrix: | |
python-version: ${{ fromJSON(needs.info.outputs.python_versions) }} | |
if: needs.info.outputs.run_pipeline == 'true' | |
steps: | |
- name: Checkout code | |
uses: actions/[email protected] | |
with: | |
fetch-depth: "2" | |
- name: Set up Python ${{ matrix.python-version }} | |
id: python | |
uses: actions/[email protected] | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Restore full Python ${{ steps.python.outputs.python-version }} virtual environment | |
id: cache-venv | |
uses: actions/cache/[email protected] | |
with: | |
path: .venv | |
fail-on-cache-miss: true | |
key: >- | |
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{ | |
needs.info.outputs.python_cache_key }} | |
- name: Run ruff (fully) | |
run: | | |
source .venv/bin/activate | |
pre-commit run --hook-stage manual ruff --all-files --show-diff-on-failure | |
env: | |
RUFF_OUTPUT_FORMAT: github | |
- name: Run ruff-format | |
run: | | |
source .venv/bin/activate | |
pre-commit run --hook-stage manual ruff-format --all-files --show-diff-on-failure | |
env: | |
RUFF_OUTPUT_FORMAT: github | |
- name: Run mypy | |
run: | | |
source .venv/bin/activate | |
mypy pypmanager | |
backend-pytest: | |
name: "Backend: run test suite" | |
continue-on-error: true | |
needs: | |
- info | |
- backend-create-environment | |
runs-on: ubuntu-latest | |
timeout-minutes: 5 | |
strategy: | |
matrix: | |
python-version: ${{ fromJSON(needs.info.outputs.python_versions) }} | |
if: needs.info.outputs.run_pipeline == 'true' | |
steps: | |
- name: Checkout code | |
uses: actions/[email protected] | |
- name: Set up Python ${{ matrix.python-version }} | |
id: python | |
uses: actions/[email protected] | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Restore full Python ${{ steps.python.outputs.python-version }} virtual environment | |
id: cache-venv | |
uses: actions/cache/[email protected] | |
with: | |
path: .venv | |
fail-on-cache-miss: true | |
key: >- | |
${{ runner.os }}-${{ steps.python.outputs.python-version }}-${{ | |
needs.info.outputs.python_cache_key }} | |
- name: Run tests | |
run: | | |
source .venv/bin/activate | |
# Required to make backend tests run | |
# We don't need the content of the file to contain the javascript | |
# import | |
cp frontend/templates/index_template.html frontend/templates/index.html | |
pytest tests --timeout=30 --cov pypmanager --cov-report term-missing --cov-branch --cov-report xml --cov-report term | |
- name: Coveralls | |
uses: coverallsapp/github-action@648a8eb78e6d50909eff900e4ec85cab4524a45b # v2.3.6 | |
with: | |
flag-name: run-${{ join(matrix.*, '-') }} | |
parallel: true | |
finish: | |
name: "Backend: post result to coveralls" | |
needs: backend-pytest | |
if: ${{ always() }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Coveralls Finished | |
uses: coverallsapp/github-action@648a8eb78e6d50909eff900e4ec85cab4524a45b # v2.3.6 | |
with: | |
parallel-finished: true | |
carryforward: "run-1,run-2" | |
frontend-linter: | |
name: "Frontend: run code linters" | |
continue-on-error: true | |
needs: | |
- info | |
runs-on: ubuntu-latest | |
timeout-minutes: 5 | |
strategy: | |
matrix: | |
node-version: ${{ fromJSON(needs.info.outputs.node_versions) }} | |
if: needs.info.outputs.run_pipeline_frontend == 'true' | |
steps: | |
- name: Checkout code | |
uses: actions/[email protected] | |
- name: Set up Node ${{ matrix.node-version }} | |
uses: actions/[email protected] | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Install requirements | |
run: | | |
# Enable corepack to allow using another version of yarn | |
corepack enable | |
cd frontend | |
yarn | |
- run: | | |
cd frontend | |
yarn cicd-lint | |
name: Run Eslint | |
- run: | | |
cd frontend | |
yarn cicd-typecheck | |
name: Run type hint checks | |
qa-playwright: | |
name: "Frontend: run Playwright" | |
needs: | |
- info | |
runs-on: ubuntu-latest | |
timeout-minutes: 5 | |
strategy: | |
matrix: | |
node-version: ${{ fromJSON(needs.info.outputs.node_versions) }} | |
if: needs.info.outputs.run_pipeline_frontend == 'true' | |
steps: | |
- name: Checkout code | |
uses: actions/[email protected] | |
- name: Set up Node ${{ matrix.node-version }} | |
uses: actions/[email protected] | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Install requirements | |
run: | | |
# Enable corepack to allow using another version of yarn | |
corepack enable | |
cd frontend | |
yarn | |
- run: | | |
./script/playwright-setup.sh | |
./script/playwright-run.sh | |
name: Run Playwright tests | |
id: playwrightTests | |
- uses: actions/[email protected] | |
if: always() | |
with: | |
path: frontend/test-results/ | |
retention-days: 1 | |
compression-level: 1 | |
qa-docker: | |
name: "Docker: try building image" | |
continue-on-error: true | |
needs: | |
- info | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
if: needs.info.outputs.run_pipeline_docker == 'true' | |
strategy: | |
matrix: | |
platform: | |
- linux/amd64 | |
- linux/arm64 | |
# Disabled for now, building Pandas is too slow | |
# - linux/arm/v7 | |
steps: | |
- name: Checkout code | |
uses: actions/[email protected] | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@53851d14592bedcffcf25ea515637cff71ef929a | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@6524bf65af31da8d45b59e8c27de4bd072b392f5 | |
- name: Build docker image | |
id: docker_build | |
run: | | |
docker buildx build --platform ${{ matrix.platform }} -t removeme . | |
env: | |
CI: true |