Skip to content

buildx

buildx #312

Workflow file for this run

name: buildx
on:
workflow_dispatch:
push:
branches:
- 'master'
pull_request:
schedule:
- cron: "0 21 * * 5"
env:
DOCKERHUB_USER: wiserain
IMAGE_NAME: wiserain/tvheadend
BASE_IMAGE: ghcr.io/wiserain/tvhbase
jobs:
build-tvhbase:
runs-on: ubuntu-22.04
if: github.actor == github.event.repository.owner.login
strategy:
matrix:
branch: [latest, ubuntu]
steps:
-
name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ matrix.branch }}
-
name: Set up QEMU
uses: docker/setup-qemu-action@v3
-
name: Set up Buildx
uses: docker/setup-buildx-action@v3
-
name: Login to ghcr.io
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
-
name: Build and push
if: matrix.branch != 'ubuntu'
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
${{ env.BASE_IMAGE }}:${{ matrix.branch }}
-
name: Build and push (ubuntu)
if: matrix.branch == 'ubuntu'
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
platforms: linux/amd64
push: true
tags: |
${{ env.BASE_IMAGE }}:${{ matrix.branch }}
-
name: Send Notification
uses: sarisia/actions-status-discord@v1
if: failure()
with:
webhook: ${{ secrets.DISCORD_WEBHOOK }}
status: ${{ job.status }}
description: |
${{ env.BASE_IMAGE }}:${{ matrix.branch }}
build-tvheadend:
needs:
- build-tvhbase
runs-on: ubuntu-22.04
if: github.actor == github.event.repository.owner.login
strategy:
matrix:
branch: [latest, stable, ubuntu]
steps:
-
name: Checkout
uses: actions/checkout@v4
-
name: Set up QEMU
uses: docker/setup-qemu-action@v3
-
name: Set up Buildx
uses: docker/setup-buildx-action@v3
-
name: Login to docker.io
uses: docker/login-action@v3
with:
username: ${{ env.DOCKERHUB_USER }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Login to ghcr.io
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
-
name: Load Variables
run: |
CID=$(docker run -d ${{ env.BASE_IMAGE }}:${{ matrix.branch }})
BUILD=$(docker exec $CID tvheadend -v | awk -F'[_ ]' '{print $NF}' | awk -F'[_~]' '{print $1}')
docker rm -f $CID
echo "TVH_BUILD=$BUILD" >> $GITHUB_ENV
-
name: Build and push
if: matrix.branch != 'ubuntu'
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
${{ env.IMAGE_NAME }}:${{ matrix.branch }}
${{ env.IMAGE_NAME }}:${{ matrix.branch }}-${{ env.TVH_BUILD }}
ghcr.io/${{ env.IMAGE_NAME }}:${{ matrix.branch }}
ghcr.io/${{ env.IMAGE_NAME }}:${{ matrix.branch }}-${{ env.TVH_BUILD }}
build-args: |
BASE_IMAGE=${{ env.BASE_IMAGE }}:${{ matrix.branch }}
-
name: Build and push (ubuntu)
if: matrix.branch == 'ubuntu'
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile.ubuntu
platforms: linux/amd64
push: true
tags: |
${{ env.IMAGE_NAME }}:${{ matrix.branch }}
${{ env.IMAGE_NAME }}:${{ matrix.branch }}-${{ env.TVH_BUILD }}
ghcr.io/${{ env.IMAGE_NAME }}:${{ matrix.branch }}
ghcr.io/${{ env.IMAGE_NAME }}:${{ matrix.branch }}-${{ env.TVH_BUILD }}
build-args: |
BASE_IMAGE=${{ env.BASE_IMAGE }}:${{ matrix.branch }}
-
name: Send Notification
uses: sarisia/actions-status-discord@v1
if: always()
with:
webhook: ${{ secrets.DISCORD_WEBHOOK }}
status: ${{ job.status }}
description: |
${{ env.IMAGE_NAME }}:${{ matrix.branch }}
${{ env.IMAGE_NAME }}:${{ matrix.branch }}-${{ env.TVH_BUILD }}
ghcr.io/${{ env.IMAGE_NAME }}:${{ matrix.branch }}
ghcr.io/${{ env.IMAGE_NAME }}:${{ matrix.branch }}-${{ env.TVH_BUILD }}