Files
spring-cloud-dataflow-samples/.github/workflows/ci.yml
2022-06-06 13:49:27 +02:00

342 lines
15 KiB
YAML

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.0-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-SNAPSHOT
timestamp-task:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/build-sample-app
with:
app-dir: 'timestamp-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/timestamp-task:2.0.2
timestamp-batch:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/build-sample-app
with:
app-dir: 'timestamp-batch'
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/timestamp-batch-task:2.0.2