MediaProcessing/.github/workflows/build-v5.yml
2026-01-18 19:52:11 +01:00

105 lines
2.8 KiB
YAML

name: Build v5
on:
push:
branches: [ v5 ]
pull_request:
branches: [ v5 ]
workflow_dispatch:
jobs:
pre-check:
runs-on: ubuntu-latest
outputs:
shared: ${{ steps.filter.outputs.shared }}
processer: ${{ steps.filter.outputs.processer }}
converter: ${{ steps.filter.outputs.converter }}
coordinator: ${{ steps.filter.outputs.coordinator }}
ui: ${{ steps.filter.outputs.ui }}
py-metadata: ${{ steps.filter.outputs.metadata }}
py-watcher: ${{ steps.filter.outputs.watcher }}
dockerTag: ${{ steps.tag.outputs.tag }}
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.sha }}
base: ${{ github.event.before }}
- name: Detect changes
id: filter
uses: dorny/paths-filter@v3
with:
filters: |
shared:
- 'shared/**'
processer:
- 'apps/processer/**'
converter:
- 'apps/converter/**'
coordinator:
- 'apps/coordinator/**'
ui:
- 'apps/ui/**'
metadata:
- 'apps/py-metadata/**'
watcher:
- 'apps/py-watcher/**'
- name: Generate docker tag
id: tag
run: echo "tag=$(date -u +'%Y.%m.%d')-$(uuidgen | cut -c 1-8)" >> $GITHUB_OUTPUT
build-shared:
needs: pre-check
if: ${{ needs.pre-check.outputs.shared == 'true' || github.event_name == 'workflow_dispatch' }}
uses: ./.github/workflows/build-shared.yml
with:
dockerTag: ${{ needs.pre-check.outputs.dockerTag }}
build-java:
needs: [pre-check, build-shared]
strategy:
matrix:
include:
- app: processer
enabled: true
- app: converter
enabled: true
- app: coordinator
enabled: true
- app: ui
enabled: false
uses: ./.github/workflows/build-java-app.yml
with:
app: ${{ matrix.app }}
dockerTag: ${{ needs.pre-check.outputs.dockerTag }}
enabled: ${{ matrix.enabled }}
shouldBuild: ${{ needs.pre-check.outputs[matrix.app] == 'true'
|| needs.pre-check.outputs.shared == 'true'
|| github.event_name == 'workflow_dispatch' }}
secrets: inherit
build-python:
needs: [pre-check]
strategy:
matrix:
include:
- app: py-metadata
enabled: true
- app: py-watcher
enabled: true
uses: ./.github/workflows/build-python-app.yml
with:
app: ${{ matrix.app }}
dockerTag: ${{ needs.pre-check.outputs.dockerTag }}
enabled: ${{ matrix.enabled }}
shouldBuild: ${{ needs.pre-check.outputs[matrix.app] == 'true'
|| needs.pre-check.outputs.shared == 'true'
|| github.event_name == 'workflow_dispatch' }}
secrets: inherit