name: On pull request on: pull_request: paths-ignore: - "docs/**" - ".github/*.yml" - ".github/DISCUSSION_TEMPLATE/**" - ".github/ISSUE_TEMPLATE/**" env: DEFAULT_PYTHON: 3.11 jobs: web_lint: name: Web - Lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 with: persist-credentials: false - uses: actions/setup-node@master with: node-version: 16.x - run: npm install working-directory: ./web - name: Lint run: npm run lint working-directory: ./web web_test: name: Web - Test runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 with: persist-credentials: false - uses: actions/setup-node@master with: node-version: 20.x - run: npm install working-directory: ./web - name: Build web run: npm run build working-directory: ./web # - name: Test # run: npm run test # working-directory: ./web python_checks: runs-on: ubuntu-latest name: Python Checks steps: - name: Check out the repository uses: actions/checkout@v5 with: persist-credentials: false - name: Set up Python ${{ env.DEFAULT_PYTHON }} uses: actions/setup-python@v5.4.0 with: python-version: ${{ env.DEFAULT_PYTHON }} - name: Install requirements run: | python3 -m pip install -U pip python3 -m pip install -r docker/main/requirements-dev.txt - name: Check formatting run: | ruff format --check --diff frigate migrations docker *.py - name: Check lint run: | ruff check frigate migrations docker *.py python_tests: runs-on: ubuntu-latest name: Python Tests steps: - name: Check out code uses: actions/checkout@v5 with: persist-credentials: false - uses: actions/setup-node@master with: node-version: 20.x - name: Install devcontainer cli run: npm install --global @devcontainers/cli - name: Build devcontainer env: DOCKER_BUILDKIT: "1" run: devcontainer build --workspace-folder . - name: Start devcontainer run: devcontainer up --workspace-folder . - name: Run mypy in devcontainer run: devcontainer exec --workspace-folder . bash -lc "python3 -u -m mypy --config-file frigate/mypy.ini frigate" - name: Run unit tests in devcontainer run: devcontainer exec --workspace-folder . bash -lc "python3 -u -m unittest"