name: Build v5 on: push: branches: [ v5 ] pull_request: branches: [ v5 ] workflow_dispatch: jobs: pre-check: runs-on: ubuntu-latest outputs: sharedDefinitions: ${{ steps.filter.outputs.sharedDefinitions }} 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/**' sharedDefinitions: - 'gradle/**' 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' || needs.pre-check.outputs.sharedDefinitions == 'true' || needs.pre-check.outputs.processer == 'true' || needs.pre-check.outputs.converter == 'true' || needs.pre-check.outputs.coordinator == 'true' || needs.pre-check.outputs.ui == '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' || needs.pre-check.outputs.sharedDefinitions == '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' || github.event_name == 'workflow_dispatch' }} secrets: inherit