Skip to content

Update base image with noble base and update all libraries + jellyfin ffmpeg to latest and Handbrake to 1.10.2 #65

Update base image with noble base and update all libraries + jellyfin ffmpeg to latest and Handbrake to 1.10.2

Update base image with noble base and update all libraries + jellyfin ffmpeg to latest and Handbrake to 1.10.2 #65

Workflow file for this run

name: Build Docker Images
on:
pull_request:
branches: ["**"]
jobs:
setup-env-vars:
runs-on: ubuntu-latest
outputs:
VERSION: ${{ steps.set-variable.outputs.VERSION }}
DATE: ${{ steps.set-variable.outputs.DATE }}
ARCHS: ${{ steps.set-variable.outputs.ARCHS }}
BUILD_BASE: ${{ steps.set-variable.outputs.BUILD_BASE }}
PUSH_IMAGES: ${{ steps.set-variable.outputs.PUSH_IMAGES }}
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Set environment variables
id: set-variable
run: |
VERSION=$(sed 's/.*"version": "\(.*\)".*/\1/;t;d' ./package.json)
DATE=$(date +"%Y_%m_%dT%H_%M_%Sz")
ARCHS=all-arch
BUILD_BASE=true
PUSH_IMAGES=false
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
echo "DATE=$DATE" >> $GITHUB_OUTPUT
echo "ARCHS=$ARCHS" >> $GITHUB_OUTPUT
echo "BUILD_BASE=$BUILD_BASE" >> $GITHUB_OUTPUT
echo "PUSH_IMAGES=$PUSH_IMAGES" >> $GITHUB_OUTPUT
echo VERSION=$VERSION
echo DATE=$DATE
echo ARCHS=$ARCHS
echo BUILD_BASE=$BUILD_BASE
echo PUSH_IMAGES=$PUSH_IMAGES
git log -5
shell: bash
docker_linux_image_base:
if: needs.setup-env-vars.outputs.BUILD_BASE == 'true'
needs: [setup-env-vars]
runs-on: ubuntu-latest
name: Build Docker base image
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Display runner resources
run: |
echo "CPU Cores: $(nproc)"
echo "RAM:"
free -h
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
image: tonistiigi/binfmt:qemu-v7.0.0-28
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
# - name: Login to Docker Hub
# uses: docker/login-action@v3
# with:
# registry: docker.io
# username: ${{ secrets.DOCKER_HUB_USERNAME }}
# password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Build base image
working-directory: ./docker-build
run: |
make build-base-${{needs.setup-env-vars.outputs.ARCHS}} DATE=${{needs.setup-env-vars.outputs.DATE}} BUILD_BASE=${{needs.setup-env-vars.outputs.BUILD_BASE}} PUSH_IMAGES=${{needs.setup-env-vars.outputs.PUSH_IMAGES}} PDIR=../ USE_PROD_PACKAGES=true
- name: Push base image
if: ${{ needs.setup-env-vars.outputs.ARCHS == 'x64' && needs.setup-env-vars.outputs.PUSH_IMAGES == 'true' }}
working-directory: ./docker-build
run: |
make push-base DATE=${{needs.setup-env-vars.outputs.DATE}} BUILD_BASE=${{needs.setup-env-vars.outputs.BUILD_BASE}} PUSH_IMAGES=${{needs.setup-env-vars.outputs.PUSH_IMAGES}} PDIR=../ USE_PROD_PACKAGES=true
docker_linux_image_final:
# if BUILD_BASE is false, workflow will still run without building the base image
if: ${{ !cancelled() }}
needs: [
setup-env-vars,
# BUILD_BASE
docker_linux_image_base,
]
runs-on: ubuntu-latest
strategy:
matrix:
component: [node, be]
name: Build Docker final images
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
image: tonistiigi/binfmt:qemu-v7.0.0-28
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
registry: docker.io
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Build ${{ matrix.component }} image
working-directory: ./docker-build
run: |
make build-${{ matrix.component }}-${{needs.setup-env-vars.outputs.ARCHS}} TAG=dev DATE=${{needs.setup-env-vars.outputs.DATE}} BUILD_BASE=${{needs.setup-env-vars.outputs.BUILD_BASE}} PUSH_IMAGES=${{needs.setup-env-vars.outputs.PUSH_IMAGES}} PDIR=../ USE_PROD_PACKAGES=true