Update base image with noble base and update all libraries + jellyfin ffmpeg to latest and Handbrake to 1.10.2 #65
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |