From 2c0a0c1fe0e48a6fc09e6ff8da014ecfa32268e1 Mon Sep 17 00:00:00 2001 From: YS Date: Thu, 6 Jan 2022 13:30:42 +0300 Subject: [PATCH] run tests in the Dockerfile during the build phase --- .github/workflows/pull_request.yml | 37 +++++++++++++++++------------- Makefile | 14 ++++++++++- 2 files changed, 34 insertions(+), 17 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index b4a4e7201..131863e97 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -45,21 +45,26 @@ jobs: run: npm run test working-directory: ./web - pytest: + docker_tests_on_aarch64: runs-on: ubuntu-latest - strategy: - matrix: - python-version: ['3.8'] - steps: - - uses: actions/checkout@v1 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - python -m pip install tox tox-gh-actions - - name: Test with tox - run: tox -e unittests + - name: Check out code + uses: actions/checkout@v2 + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - name: Build and run tests + run: make run_tests PLATFORM="linux/arm64/v8" ARCH="aarch64" + + docker_tests_on_amd64: + runs-on: ubuntu-latest + steps: + - name: Check out code + uses: actions/checkout@v2 + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - name: Build and run tests + run: make run_tests PLATFORM="linux/amd64" ARCH="amd64" diff --git a/Makefile b/Makefile index fb1a1447f..73729b225 100644 --- a/Makefile +++ b/Makefile @@ -59,4 +59,16 @@ armv7_frigate: version web armv7_all: armv7_wheels armv7_ffmpeg armv7_frigate -.PHONY: web +run_tests: + # PLATFORM: linux/arm64/v8 linux/amd64 or linux/arm/v7 + # ARCH: aarch64 amd64 or armv7 + @cat docker/Dockerfile.base docker/Dockerfile.$(ARCH) > docker/Dockerfile.test + @sed -i "s/FROM frigate-web as web/#/g" docker/Dockerfile.test + @sed -i "s/COPY --from=web \/opt\/frigate\/build web\//#/g" docker/Dockerfile.test + @sed -i "s/FROM frigate-base/#/g" docker/Dockerfile.test + @echo "" >> docker/Dockerfile.test + @echo "RUN python3 -m unittest" >> docker/Dockerfile.test + @docker buildx build --platform=$(PLATFORM) --tag frigate-base --build-arg NGINX_VERSION=1.0.2 --build-arg FFMPEG_VERSION=1.0.0 --build-arg ARCH=$(ARCH) --build-arg WHEELS_VERSION=1.0.3 --file docker/Dockerfile.test . + @rm docker/Dockerfile.test + +.PHONY: web run_tests