From fe91929cbf7ab1efbcd87b692b11f2ee5536d4e6 Mon Sep 17 00:00:00 2001 From: Jason Dove Date: Sat, 31 Dec 2022 12:59:06 -0600 Subject: [PATCH] add github workflow --- .github/workflows/docker.yml | 88 ++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 .github/workflows/docker.yml diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..8797bb4 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,88 @@ +name: Build & Publish to Docker Hub +on: + workflow_dispatch: + push: + branches: + - main +jobs: + build_and_push: + name: Build & Publish + runs-on: ubuntu-latest + if: contains(github.event.head_commit.message, '[no build]') == false + strategy: + matrix: + include: + - name: base + path: '' + suffix: '' + qemu: false + - name: nvidia + path: 'nvidia.' + suffix: '-nvidia' + qemu: false + - name: vaapi + path: 'vaapi.' + suffix: '-vaapi' + qemu: false + - name: arm32v7 + path: 'arm32v7.' + suffix: '-arm' + qemu: true + - name: arm64 + path: 'arm64.' + suffix: '-arm64' + qemu: true + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + if: ${{ matrix.qemu == true }} + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + id: docker-buildx + + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.docker_hub_username }} + password: ${{ secrets.docker_hub_access_token }} + + - name: Build and push + uses: docker/build-push-action@v3 + with: + builder: ${{ steps.docker-buildx.outputs.name }} + context: . + file: ./docker/${{ matrix.path }}Dockerfile + push: true + tags: | + jasongdove/ersatztv-ffmpeg:5.1.2${{ matrix.suffix }} + if: ${{ matrix.name != 'arm64' && matrix.name != 'arm32v7' }} + + - name: Build and push + uses: docker/build-push-action@v3 + with: + builder: ${{ steps.docker-buildx.outputs.name }} + context: . + file: ./docker/${{ matrix.path }}Dockerfile + push: true + platforms: 'linux/arm64' + tags: | + jasongdove/ersatztv-ffmpeg:5.1.2${{ matrix.suffix }} + if: ${{ matrix.name == 'arm64' }} + + - name: Build and push + uses: docker/build-push-action@v3 + with: + builder: ${{ steps.docker-buildx.outputs.name }} + context: . + file: ./docker/${{ matrix.path }}Dockerfile + push: true + platforms: 'linux/arm/v7' + tags: | + jasongdove/ersatztv-ffmpeg:5.1.2${{ matrix.suffix }} + if: ${{ matrix.name == 'arm32v7' }}