name: CI on: # Called when code gets pushed to the main branch push: branches: - main paths-ignore: - '.github/**' # Called by UI workflow_dispatch: # Called by the CI PR workflow (invokes main CI but skips publish and push) workflow_call: inputs: maven-build-only: type: boolean description: Skip Artifactory publish and Docker push for all apps required: false default: false secrets: JF_ARTIFACTORY_SPRING: description: 'encoded JFrog server id configuration' required: false DOCKER_USERNAME: description: 'docker username' required: false DOCKER_TOKEN: description: 'docker password' required: false jobs: kafka-samples: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-sample-app with: app-dir: 'kafka-samples' mvn-build-commands: '-B clean verify -Pspring' artifactory-publish: ${{ inputs.maven-build-only != true }} jf-artifactory-spring: ${{ secrets.JF_ARTIFACTORY_SPRING }} restaurant-stream-apps-customer: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-sample-app with: app-dir: 'restaurant-stream-apps/scdf-app-customer' mvn-build-commands: '-B clean install spring-boot:build-image' artifactory-publish: ${{ inputs.maven-build-only != true }} jf-artifactory-spring: ${{ secrets.JF_ARTIFACTORY_SPRING }} docker-push: ${{ inputs.maven-build-only != true }} docker-username: ${{ secrets.DOCKERHUB_USERNAME }} docker-password: ${{ secrets.DOCKERHUB_TOKEN }} docker-images: 'springcloudstream/scdf-app-customer:1.0.0-SNAPSHOT' restaurant-stream-apps-kitchen: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-sample-app with: app-dir: 'restaurant-stream-apps/scdf-app-kitchen' mvn-build-commands: '-B clean install spring-boot:build-image' artifactory-publish: ${{ inputs.maven-build-only != true }} jf-artifactory-spring: ${{ secrets.JF_ARTIFACTORY_SPRING }} docker-push: ${{ inputs.maven-build-only != true }} docker-username: ${{ secrets.DOCKERHUB_USERNAME }} docker-password: ${{ secrets.DOCKERHUB_TOKEN }} docker-images: 'springcloudstream/scdf-app-kitchen:1.0.0-SNAPSHOT' restaurant-stream-apps-waitron: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-sample-app with: app-dir: 'restaurant-stream-apps/scdf-app-waitron' mvn-build-commands: '-B clean install spring-boot:build-image' artifactory-publish: ${{ inputs.maven-build-only != true }} jf-artifactory-spring: ${{ secrets.JF_ARTIFACTORY_SPRING }} docker-push: ${{ inputs.maven-build-only != true }} docker-username: ${{ secrets.DOCKERHUB_USERNAME }} docker-password: ${{ secrets.DOCKERHUB_TOKEN }} docker-images: 'springcloudstream/scdf-app-waitron:1.0.0-SNAPSHOT' multi-io-ticktock: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-sample-app with: app-dir: 'multi-io-samples/ticktock' mvn-build-commands: '-B clean install -Dmaven.javadoc.skip=true spring-boot:build-image -pl multi-output-time-rabbit,multi-input-log-rabbit,multi-output-time-kafka,multi-input-log-kafka' multi-io-http-purchase-orders: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-sample-app with: app-dir: 'multi-io-samples/purchase-orders/http-purchase-orders' mvn-build-commands: '-B clean install spring-boot:build-image' docker-push: ${{ inputs.maven-build-only != true }} docker-username: ${{ secrets.DOCKERHUB_USERNAME }} docker-password: ${{ secrets.DOCKERHUB_TOKEN }} docker-images: >- springcloudstream/multi-io-sample-http-purchase-orders:2.0.0-SNAPSHOT user-clicks-per-region-12x: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-sample-app with: app-dir: 'multi-io-samples/kafka-streams/user-clicks-per-region-1.2.x' mvn-build-commands: '-B clean install spring-boot:build-image -pl http-click-ingest,http-region-ingest,http-clicks-and-region-ingest,user-clicks-per-region-processor,log-user-clicks-per-region' artifactory-publish: ${{ inputs.maven-build-only != true }} jf-artifactory-spring: ${{ secrets.JF_ARTIFACTORY_SPRING }} docker-push: ${{ inputs.maven-build-only != true }} docker-username: ${{ secrets.DOCKERHUB_USERNAME }} docker-password: ${{ secrets.DOCKERHUB_TOKEN }} docker-images: >- springcloudstream/multi-io-sample-http-click-ingest:2.0.0-SNAPSHOT springcloudstream/multi-io-sample-http-region-ingest:2.0.0-SNAPSHOT springcloudstream/multi-io-sample-http-clicks-and-region-ingest:2.0.0-SNAPSHOT springcloudstream/multi-io-sample-user-clicks-per-region-processor:2.0.0-SNAPSHOT springcloudstream/multi-io-sample-log-user-clicks-per-region:2.0.0-SNAPSHOT function-samples: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-sample-app with: app-dir: 'function-samples' mvn-build-commands: '-B clean verify -Pspring' artifactory-publish: ${{ inputs.maven-build-only != true }} jf-artifactory-spring: ${{ secrets.JF_ARTIFACTORY_SPRING }} function-samples-uppercase-processor: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-sample-app with: app-dir: 'function-samples/uppercase-processor' mvn-build-commands: '-B clean install spring-boot:build-image' artifactory-publish: ${{ inputs.maven-build-only != true }} jf-artifactory-spring: ${{ secrets.JF_ARTIFACTORY_SPRING }} docker-push: ${{ inputs.maven-build-only != true }} docker-username: ${{ secrets.DOCKERHUB_USERNAME }} docker-password: ${{ secrets.DOCKERHUB_TOKEN }} docker-images: >- springcloudstream/uppercase-processor:2.0.0-SNAPSHOT stream-dev-guides-standalone-stream-kafka: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-sample-app with: app-dir: 'dataflow-website/stream-developer-guides/streams/standalone-stream-sample' mvn-build-commands: '-B clean install spring-boot:build-image' artifactory-publish: ${{ inputs.maven-build-only != true }} jf-artifactory-spring: ${{ secrets.JF_ARTIFACTORY_SPRING }} docker-push: ${{ inputs.maven-build-only != true }} docker-username: ${{ secrets.DOCKERHUB_USERNAME }} docker-password: ${{ secrets.DOCKERHUB_TOKEN }} docker-images: >- springcloudstream/usage-detail-sender-kafka:2.0.0-SNAPSHOT springcloudstream/usage-cost-processor-kafka:2.0.0-SNAPSHOT springcloudstream/usage-cost-logger-kafka:2.0.0-SNAPSHOT stream-dev-guides-standalone-stream-rabbitmq: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-sample-app with: app-dir: 'dataflow-website/stream-developer-guides/streams/standalone-stream-sample' mvn-build-commands: '-B clean install -Prabbit spring-boot:build-image' artifactory-publish: ${{ inputs.maven-build-only != true }} jf-artifactory-spring: ${{ secrets.JF_ARTIFACTORY_SPRING }} jf-mvn-build-commands: '-B clean install -Prabbit -DskipTests' docker-push: ${{ inputs.maven-build-only != true }} docker-username: ${{ secrets.DOCKERHUB_USERNAME }} docker-password: ${{ secrets.DOCKERHUB_TOKEN }} docker-images: >- springcloudstream/usage-detail-sender-rabbit:2.0.0-SNAPSHOT springcloudstream/usage-cost-processor-rabbit:2.0.0-SNAPSHOT springcloudstream/usage-cost-logger-rabbit:2.0.0-SNAPSHOT batch-dev-guides-batchsamples: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-sample-app with: app-dir: 'dataflow-website/batch-developer-guides/batch/batchsamples' mvn-build-commands: '-B clean install spring-boot:build-image' artifactory-publish: ${{ inputs.maven-build-only != true }} jf-artifactory-spring: ${{ secrets.JF_ARTIFACTORY_SPRING }} docker-push: ${{ inputs.maven-build-only != true }} docker-username: ${{ secrets.DOCKERHUB_USERNAME }} docker-password: ${{ secrets.DOCKERHUB_TOKEN }} docker-images: >- springcloudtask/billsetuptask:2.0.0-SNAPSHOT stream-dev-guides-composed-http-transformer-kafka: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-sample-app with: app-dir: 'dataflow-website/stream-developer-guides/feature-guides/streams/function-composition/composed-http-transformer-kafka' mvn-build-commands: '-B clean install spring-boot:build-image' artifactory-publish: ${{ inputs.maven-build-only != true }} jf-artifactory-spring: ${{ secrets.JF_ARTIFACTORY_SPRING }} docker-push: ${{ inputs.maven-build-only != true }} docker-username: ${{ secrets.DOCKERHUB_USERNAME }} docker-password: ${{ secrets.DOCKERHUB_TOKEN }} docker-images: >- springcloudstream/composed-http-transformer-kafka:2.0.0-SNAPSHOT stream-dev-guides-composed-http-transformer-kotlin-kafka: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-sample-app with: app-dir: 'dataflow-website/stream-developer-guides/feature-guides/streams/function-composition/composed-http-transformer-kotlin-kafka' mvn-build-commands: '-B clean install spring-boot:build-image' artifactory-publish: ${{ inputs.maven-build-only != true }} jf-artifactory-spring: ${{ secrets.JF_ARTIFACTORY_SPRING }} docker-push: ${{ inputs.maven-build-only != true }} docker-username: ${{ secrets.DOCKERHUB_USERNAME }} docker-password: ${{ secrets.DOCKERHUB_TOKEN }} docker-images: >- springcloudstream/composed-http-transformer-kotlin-kafka:2.0.0-SNAPSHOT stream-dev-guides-composed-http-transformer-rabbitmq: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-sample-app with: app-dir: 'dataflow-website/stream-developer-guides/feature-guides/streams/function-composition/composed-http-transformer-rabbitmq' mvn-build-commands: '-B clean install spring-boot:build-image' artifactory-publish: ${{ inputs.maven-build-only != true }} jf-artifactory-spring: ${{ secrets.JF_ARTIFACTORY_SPRING }} docker-push: ${{ inputs.maven-build-only != true }} docker-username: ${{ secrets.DOCKERHUB_USERNAME }} docker-password: ${{ secrets.DOCKERHUB_TOKEN }} docker-images: >- springcloudstream/composed-http-transformer-rabbitmq:2.0.0-SNAPSHOT stream-dev-guides-composed-http-transformer-kotlin-rabbitmq: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-sample-app with: app-dir: 'dataflow-website/stream-developer-guides/feature-guides/streams/function-composition/composed-http-transformer-kotlin-rabbitmq' mvn-build-commands: '-B clean install spring-boot:build-image' artifactory-publish: ${{ inputs.maven-build-only != true }} jf-artifactory-spring: ${{ secrets.JF_ARTIFACTORY_SPRING }} docker-push: ${{ inputs.maven-build-only != true }} docker-username: ${{ secrets.DOCKERHUB_USERNAME }} docker-password: ${{ secrets.DOCKERHUB_TOKEN }} docker-images: >- springcloudstream/composed-http-transformer-kotlin-rabbitmq:2.0.0-SNAPSHOT task-demo-metrics-prometheus: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-sample-app with: app-dir: 'monitoring-samples/task-apps/task-demo-metrics-prometheus' mvn-build-commands: '-B clean install spring-boot:build-image' artifactory-publish: ${{ inputs.maven-build-only != true }} jf-artifactory-spring: ${{ secrets.JF_ARTIFACTORY_SPRING }} docker-push: ${{ inputs.maven-build-only != true }} docker-username: ${{ secrets.DOCKERHUB_USERNAME }} docker-password: ${{ secrets.DOCKERHUB_TOKEN }} docker-images: 'springcloudtask/task-demo-metrics-prometheus:2.0.1-SNAPSHOT' scenario-task: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-sample-app with: app-dir: 'scenario-task' mvn-build-commands: '-B clean install spring-boot:build-image' artifactory-publish: ${{ inputs.maven-build-only != true }} jf-artifactory-spring: ${{ secrets.JF_ARTIFACTORY_SPRING }} docker-push: ${{ inputs.maven-build-only != true }} docker-username: ${{ secrets.DOCKERHUB_USERNAME }} docker-password: ${{ secrets.DOCKERHUB_TOKEN }} docker-images: >- springcloudtask/scenario-task:2.0.0 scenario-task-3: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-sample-app with: app-dir: 'scenario-task-3' mvn-build-commands: '-B clean install spring-boot:build-image' java-version: '17' artifactory-publish: ${{ inputs.maven-build-only != true }} jf-artifactory-spring: ${{ secrets.JF_ARTIFACTORY_SPRING }} jf-mvn-build-commands: '-B clean install -DskipTests' docker-push: ${{ inputs.maven-build-only != true }} docker-username: ${{ secrets.DOCKERHUB_USERNAME }} docker-password: ${{ secrets.DOCKERHUB_TOKEN }} docker-images: >- springcloudtask/scenario-task:3.0.0 timestamp-task-30x: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-sample-app with: app-dir: 'timestamp-task-3.0.x' mvn-build-commands: '-B clean install spring-boot:build-image -Pnative' artifactory-publish: ${{ inputs.maven-build-only != true }} jf-artifactory-spring: ${{ secrets.JF_ARTIFACTORY_SPRING }} artifactory-repo-deploy-releases: 'libs-milestone-local' docker-push: ${{ inputs.maven-build-only != true }} docker-username: ${{ secrets.DOCKERHUB_USERNAME }} docker-password: ${{ secrets.DOCKERHUB_TOKEN }} java-version: '17' docker-images: 'springcloudtask/timestamp-task:3.0.0' timestamp-batch-30x: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-sample-app with: app-dir: 'timestamp-batch-3.0.x' mvn-build-commands: '-B clean install spring-boot:build-image -Pnative' artifactory-publish: ${{ inputs.maven-build-only != true }} jf-artifactory-spring: ${{ secrets.JF_ARTIFACTORY_SPRING }} artifactory-repo-deploy-releases: 'libs-milestone-local' docker-push: ${{ inputs.maven-build-only != true }} docker-username: ${{ secrets.DOCKERHUB_USERNAME }} docker-password: ${{ secrets.DOCKERHUB_TOKEN }} java-version: '17' docker-images: 'springcloudtask/timestamp-batch-task:3.0.0' timestamp-task-20x: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-sample-app with: app-dir: 'timestamp-task-2.0.x' mvn-build-commands: '-B clean install spring-boot:build-image' artifactory-publish: ${{ inputs.maven-build-only != true }} jf-artifactory-spring: ${{ secrets.JF_ARTIFACTORY_SPRING }} artifactory-repo-deploy-releases: 'libs-milestone-local' docker-push: ${{ inputs.maven-build-only != true }} docker-username: ${{ secrets.DOCKERHUB_USERNAME }} docker-password: ${{ secrets.DOCKERHUB_TOKEN }} java-version: '8' docker-images: 'springcloudtask/timestamp-task:2.0.2' timestamp-batch-20x: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: ./.github/actions/build-sample-app with: app-dir: 'timestamp-batch-2.0.x' mvn-build-commands: '-B clean install spring-boot:build-image' artifactory-publish: ${{ inputs.maven-build-only != true }} jf-artifactory-spring: ${{ secrets.JF_ARTIFACTORY_SPRING }} artifactory-repo-deploy-releases: 'libs-milestone-local' docker-push: ${{ inputs.maven-build-only != true }} docker-username: ${{ secrets.DOCKERHUB_USERNAME }} docker-password: ${{ secrets.DOCKERHUB_TOKEN }} java-version: '8' docker-images: 'springcloudtask/timestamp-batch-task:2.0.2' completed: runs-on: ubuntu-latest needs: - kafka-samples - restaurant-stream-apps-customer - restaurant-stream-apps-kitchen - restaurant-stream-apps-waitron - multi-io-ticktock - multi-io-http-purchase-orders - user-clicks-per-region-12x - function-samples - function-samples-uppercase-processor - stream-dev-guides-standalone-stream-kafka - stream-dev-guides-standalone-stream-rabbitmq - batch-dev-guides-batchsamples - stream-dev-guides-composed-http-transformer-kafka - stream-dev-guides-composed-http-transformer-kotlin-kafka - stream-dev-guides-composed-http-transformer-rabbitmq - stream-dev-guides-composed-http-transformer-kotlin-rabbitmq - task-demo-metrics-prometheus - scenario-task - scenario-task-3 - timestamp-task-30x - timestamp-batch-30x - timestamp-task-20x - timestamp-batch-20x steps: - name: 'Completed' shell: bash run: echo "::info ::completed"