name: On pull request on: pull_request env: DEFAULT_PYTHON: 3.9 jobs: build_devcontainer: runs-on: ubuntu-latest name: Build Devcontainer steps: - uses: actions/checkout@v3 - uses: actions/setup-node@master with: node-version: 16.x - name: Install devcontainer cli run: npm install --global @devcontainers/cli - name: Ensure devcontainer builds run: devcontainer build --workspace-folder . env: DOCKER_BUILDKIT: "1" - name: Start devcontainer run: devcontainer up --workspace-folder . - name: Run devcontainer commands run: devcontainer run-user-commands --workspace-folder . web_lint: name: Web - Lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - 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@v3 - uses: actions/setup-node@master with: node-version: 16.x - run: npm install 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@v3 - name: Set up Python ${{ env.DEFAULT_PYTHON }} uses: actions/setup-python@v4.3.0 with: python-version: ${{ env.DEFAULT_PYTHON }} - name: Install requirements run: | pip install pip pip install -r requirements-dev.txt - name: Lint run: | python3 -m black frigate --check python_tests: runs-on: ubuntu-latest name: Python Tests steps: - name: Check out code uses: actions/checkout@v3 - uses: actions/setup-node@master with: node-version: 16.x - run: npm install working-directory: ./web - name: Build web run: npm run build working-directory: ./web - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Build run: make - name: Run mypy run: docker run --rm --entrypoint=python3 frigate:latest -u -m mypy --config-file frigate/mypy.ini frigate - name: Run tests run: docker run --rm --entrypoint=python3 frigate:latest -u -m unittest