Community Supported Boards Framework (#7114)

* Make main frigate build non rpi specific and build rpi using base image

* Add boards to sidebar

* Fix docker build

* Fix docs build

* Update pr branch for testing

* remove target from rpi build

* Remove manual build

* Add push build for rpi

* fix typos, improve wording

* Add arm build for rpi

* Cleanup and add default github ref name

* Cleanup docker build file system

* Setup to use docker bake

* Add ci/cd for bake

* Fix path

* Fix devcontainer

* Set targets

* Fix build

* Fix syntax

* Add wheels target

* Move dev container to trt

* Update key and fix rpi local

* Move requirements files and set intermediate targets

* Add back --load

* Update docs for community board development

* Update installation docs to reflect different builds available

* Update docs with official and community supported headers

* Update codeowners docs

* Update docs

* Assemble main and standard builds

* Change order of pushes

* Remove community board after successful build

* Fix rpi bake file names
This commit is contained in:
Nicolas Mowen
2023-07-23 15:45:29 -06:00
committed by GitHub
parent d0413e3ea8
commit dc44a6c3b4
82 changed files with 385 additions and 101 deletions

View File

@@ -44,10 +44,19 @@ jobs:
run: make version
- name: Create short sha
run: echo "SHORT_SHA=${GITHUB_SHA::7}" >> $GITHUB_ENV
- name: Build and push
- uses: docker/metadata-action@v4
id: metadata
with:
images: ghcr.io/${{ steps.lowercaseRepo.outputs.lowercase }}:${{ github.ref_name }}-${{ env.SHORT_SHA }}
# avoid overwriting the latest tag because metadata-action does not add a suffix to it
flavor: latest=false,suffix=-${{ matrix.platform }}
# The majority of users running arm64 are rpi users, so the rpi
# build should be the primary arm64 image
- name: Build and push standard build
uses: docker/build-push-action@v4
with:
context: .
file: docker/main/Dockerfile
push: true
platforms: linux/amd64,linux/arm64
target: frigate
@@ -55,13 +64,28 @@ jobs:
ghcr.io/${{ steps.lowercaseRepo.outputs.lowercase }}:${{ github.ref_name }}-${{ env.SHORT_SHA }}
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Build and push TensorRT
uses: docker/build-push-action@v4
- name: Build and push RPi build
uses: docker/bake-action@v3
with:
context: .
push: true
platforms: linux/amd64
target: frigate-tensorrt
tags: |
ghcr.io/${{ steps.lowercaseRepo.outputs.lowercase }}:${{ github.ref_name }}-${{ env.SHORT_SHA }}-tensorrt
cache-from: type=gha
targets: rpi
files: docker/rpi/rpi.hcl
set: |
rpi.tags=ghcr.io/${{ steps.lowercaseRepo.outputs.lowercase }}:${{ github.ref_name }}-${{ env.SHORT_SHA }}-rpi
*.cache-from=type=gha
- name: Build and push TensorRT
uses: docker/bake-action@v3
with:
push: true
targets: tensorrt
files: docker/tensorrt/trt.hcl
set: |
tensorrt.tags=ghcr.io/${{ steps.lowercaseRepo.outputs.lowercase }}:${{ github.ref_name }}-${{ env.SHORT_SHA }}-tensorrt
*.cache-from=type=gha
- name: Assemble and push default build
uses: int128/docker-manifest-create-action@v1
with:
tags: ghcr.io/${{ steps.lowercaseRepo.outputs.lowercase }}:${{ github.ref_name }}-${{ env.SHORT_SHA }}
suffixes: |
-amd64
-rpi

View File

@@ -71,7 +71,7 @@ jobs:
- name: Install requirements
run: |
python3 -m pip install -U pip
python3 -m pip install -r requirements-dev.txt
python3 -m pip install -r docker/main/requirements-dev.txt
- name: Check black
run: |
black --check --diff frigate migrations docker *.py