# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: Build and Deploy Extensions

on:
  workflow_dispatch:
  push:
    branches:
      - dev
      - 'rel/**'
jobs:
  build-and-push-to-docker:
    runs-on: ubuntu-latest
    steps:
      - name: Set Branch env variable
        run: |
          echo "GITHUB_BRANCH=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
          echo ${{ env.GITHUB_BRANCH }}
      - name: Checkout incubator-streampipes project
        uses: actions/checkout@v2
        with:
          repository: 'apache/incubator-streampipes'
          path: 'incubator-streampipes'
          ref: ${{ env.GITHUB_BRANCH }}
      - name: Set up JDK 1.8
        uses: actions/setup-java@v1
        with:
          java-version: 1.8
      - name: Build and install incubator-streampipes with Maven
        working-directory: ./incubator-streampipes
        run: mvn clean install javadoc:aggregate
      - name: Checkout
        uses: actions/checkout@v1
      - name: Build Extensions with Maven
        working-directory: ./
        run: mvn clean package javadoc:aggregate
      - name: Set env variables for Docker builds
        run: |
          echo "DOCKER_CLI_EXPERIMENTAL=enabled" >> $GITHUB_ENV
          echo "MVN_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV
          echo "DOCKERHUB_APACHE_REPO=apachestreampipes" >> $GITHUB_ENV
          echo "BASE_IMG_JRE_DEFAULT=adoptopenjdk/openjdk8-openj9:alpine" >> $GITHUB_ENV
          echo "BASE_IMG_JRE_ARM32V7=arm32v7/openjdk:11-jre-slim" >> $GITHUB_ENV
          echo "BASE_IMG_JRE_ARM64V8=arm64v8/openjdk:11-jre-slim" >> $GITHUB_ENV
      - name: Install qemu-user-static for multi-arch builds
        run: |
          sudo apt-get update
          sudo apt-get install qemu-user-static
      - name: Login to Docker Hub
        run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login -u ${{ secrets.DOCKERHUB_USER }} --password-stdin
      - name: Enable Docker experimental feature for multi-arch builds
        run: |
          echo '{"experimental": true}' | sudo tee /etc/docker/daemon.json
          sudo service docker restart
      - name: Build and Push Docker Image connect-adapters
        working-directory: ./streampipes-connect-adapters
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/connect-adapters:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/connect-adapters:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/connect-adapters:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/connect-adapters:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
      - name: Build and Push Docker Image connect-adapters-iiot
        working-directory: ./streampipes-connect-adapters-iiot
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/connect-adapters-iiot:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/connect-adapters-iiot:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/connect-adapters-iiot:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/connect-adapters-iiot:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
      - name: Build and Push Docker Image extensions-all-jvm
        working-directory: ./streampipes-extensions-all-jvm
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/extensions-all-jvm:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/extensions-all-jvm:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/extensions-all-jvm:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/extensions-all-jvm:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
      - name: Build and Push Docker Image pipeline-elements-all-flink
        working-directory: ./streampipes-pipeline-elements-all-flink
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/pipeline-elements-all-flink:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/pipeline-elements-all-flink:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/pipeline-elements-all-flink:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/pipeline-elements-all-flink:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
      - name: Build and Push Docker Image pipeline-elements-all-jvm
        working-directory: ./streampipes-pipeline-elements-all-jvm
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/pipeline-elements-all-jvm:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/pipeline-elements-all-jvm:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/pipeline-elements-all-jvm:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/pipeline-elements-all-jvm:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
      - name: Build and Push Docker Image processors-aggregation-flink
        working-directory: ./streampipes-processors-aggregation-flink
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-aggregation-flink:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-aggregation-flink:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-aggregation-flink:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-aggregation-flink:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
      - name: Build and Push Docker Image processors-enricher-flink
        working-directory: ./streampipes-processors-enricher-flink
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-enricher-flink:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-enricher-flink:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-enricher-flink:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-enricher-flink:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
      - name: Build and Push Docker Image processors-enricher-jvm
        working-directory: ./streampipes-processors-enricher-jvm
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-enricher-jvm:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-enricher-jvm:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-enricher-jvm:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-enricher-jvm:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
      - name: Build and Push Docker Image processors-filters-jvm
        working-directory: ./streampipes-processors-filters-jvm
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-filters-jvm:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-filters-jvm:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-filters-jvm:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-filters-jvm:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
      - name: Build and Push Docker Image processors-geo-jvm
        working-directory: ./streampipes-processors-geo-jvm
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-geo-jvm:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-geo-jvm:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-geo-jvm:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-geo-jvm:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
      - name: Build and Push Docker Image processors-image-processing-jvm
        working-directory: ./streampipes-processors-image-processing-jvm
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-image-processing-jvm:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-image-processing-jvm:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-image-processing-jvm:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-image-processing-jvm:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
      - name: Build and Push Docker Image processors-pattern-detection-flink
        working-directory: ./streampipes-processors-pattern-detection-flink
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-pattern-detection-flink:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-pattern-detection-flink:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-pattern-detection-flink:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-pattern-detection-flink:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
      - name: Build and Push Docker Image processors-filters-siddhi
        working-directory: ./streampipes-processors-filters-siddhi
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-filters-siddhi:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-filters-siddhi:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-filters-siddhi:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-filters-siddhi:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
      - name: Build and Push Docker Image processors-statistics-flink
        working-directory: ./streampipes-processors-statistics-flink
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-statistics-flink:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-statistics-flink:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-statistics-flink:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-statistics-flink:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
      - name: Build and Push Docker Image processors-geo-flink
        working-directory: ./streampipes-processors-geo-flink
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-geo-flink:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-geo-flink:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-geo-flink:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-geo-flink:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
      - name: Build and Push Docker Image processors-transformation-flink
        working-directory: ./streampipes-processors-transformation-flink
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-transformation-flink:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-transformation-flink:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-transformation-flink:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-transformation-flink:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
      - name: Build and Push Docker Image processors-transformation-jvm
        working-directory: ./streampipes-processors-transformation-jvm
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-transformation-jvm:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-transformation-jvm:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-transformation-jvm:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-transformation-jvm:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
#      - name: Build and Push Docker Image processors-text-mining-flink
#      working-directory: ./streampipes-processors-text-mining-flink
#      env:
#        IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-text-mining-flink:${{ env.MVN_VERSION }}
#        IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-text-mining-flink:amd64-${{ env.MVN_VERSION }}
#        IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-text-mining-flink:arm32v7-${{ env.MVN_VERSION }}
#        IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-text-mining-flink:arm64v8-${{ env.MVN_VERSION }}
#      run: |
#        cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
#        docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
#        docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
#        docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
#        docker push $IMG_NAME_DEFAULT
#        docker push $IMG_NAME_AMD64
#        docker push $IMG_NAME_ARM32V7
#        docker push $IMG_NAME_ARM64V8
#        docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
#        docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
#        docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
#        docker manifest push $IMG_NAME_DEFAULT
      - name: Build and Push Docker Image processors-text-mining-jvm
        working-directory: ./streampipes-processors-text-mining-jvm
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-text-mining-jvm:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-text-mining-jvm:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-text-mining-jvm:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/processors-text-mining-jvm:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
      - name: Build and Push Docker Image sinks-brokers-jvm
        working-directory: ./streampipes-sinks-brokers-jvm
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/sinks-brokers-jvm:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/sinks-brokers-jvm:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/sinks-brokers-jvm:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/sinks-brokers-jvm:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
      - name: Build and Push Docker Image sinks-databases-flink
        working-directory: ./streampipes-sinks-databases-flink
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/sinks-databases-flink:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/sinks-databases-flink:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/sinks-databases-flink:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/sinks-databases-flink:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
      - name: Build and Push Docker Image sinks-databases-jvm
        working-directory: ./streampipes-sinks-databases-jvm
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/sinks-databases-jvm:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/sinks-databases-jvm:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/sinks-databases-jvm:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/sinks-databases-jvm:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
      - name: Build and Push Docker Image sinks-notifications-jvm
        working-directory: ./streampipes-sinks-notifications-jvm
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/sinks-notifications-jvm:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/sinks-notifications-jvm:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/sinks-notifications-jvm:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/sinks-notifications-jvm:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
      - name: Build and Push Docker Image sinks-internal-jvm
        working-directory: ./streampipes-sinks-internal-jvm
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/sinks-internal-jvm:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/sinks-internal-jvm:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/sinks-internal-jvm:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/sinks-internal-jvm:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
      - name: Build and Push Docker Image sources-vehicle-simulator
        working-directory: ./streampipes-sources-vehicle-simulator
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/sources-vehicle-simulator:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/sources-vehicle-simulator:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/sources-vehicle-simulator:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/sources-vehicle-simulator:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
      - name: Build and Push Docker Image sources-watertank-simulator
        working-directory: ./streampipes-sources-watertank-simulator
        env:
          IMG_NAME_DEFAULT: ${{ env.DOCKERHUB_APACHE_REPO }}/sources-watertank-simulator:${{ env.MVN_VERSION }}
          IMG_NAME_AMD64: ${{ env.DOCKERHUB_APACHE_REPO }}/sources-watertank-simulator:amd64-${{ env.MVN_VERSION }}
          IMG_NAME_ARM32V7: ${{ env.DOCKERHUB_APACHE_REPO }}/sources-watertank-simulator:arm32v7-${{ env.MVN_VERSION }}
          IMG_NAME_ARM64V8: ${{ env.DOCKERHUB_APACHE_REPO }}/sources-watertank-simulator:arm64v8-${{ env.MVN_VERSION }}
        run: |
          cp /usr/bin/{qemu-arm-static,qemu-aarch64-static} .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_DEFAULT -t $IMG_NAME_DEFAULT -t $IMG_NAME_AMD64 -f Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM32V7 -t $IMG_NAME_ARM32V7 -f arm.Dockerfile .
          docker build --pull --build-arg BASE_IMAGE=$BASE_IMG_JRE_ARM64V8 -t $IMG_NAME_ARM64V8 -f aarch64.Dockerfile .
          docker push $IMG_NAME_DEFAULT
          docker push $IMG_NAME_AMD64
          docker push $IMG_NAME_ARM32V7
          docker push $IMG_NAME_ARM64V8
          docker manifest create $IMG_NAME_DEFAULT $IMG_NAME_AMD64 $IMG_NAME_ARM32V7 $IMG_NAME_ARM64V8
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM32V7 --os linux --arch arm
          docker manifest annotate $IMG_NAME_DEFAULT $IMG_NAME_ARM64V8 --os linux --arch arm64
          docker manifest push $IMG_NAME_DEFAULT
