From ef1a52efd9af4c55a99b10dfc46c3b9433875770 Mon Sep 17 00:00:00 2001 From: Chris Bono Date: Fri, 21 Jan 2022 11:31:06 -0600 Subject: [PATCH] Replace Bamboo SCDF samples build w/ GitHub actions (#159) Add GitHub actions based CI pipeline Resolves #155 --- .github/actions/build-sample-app/action.yml | 76 +++++ .../artifactory-publish/action.yml | 45 +++ .../build-sample-app/docker-push/action.yml | 73 +++++ .github/workflows/ci-pr.yml | 23 +- .github/workflows/ci-publish.yml | 41 --- .github/workflows/ci.yml | 308 ++++++++++++++++-- .../streams/standalone-stream-sample/pom.xml | 6 + .../usage-cost-logger/pom.xml | 6 +- .../usage-cost-processor/pom.xml | 6 +- .../usage-detail-sender/pom.xml | 6 +- scenario-task/pom.xml | 2 +- 11 files changed, 501 insertions(+), 91 deletions(-) create mode 100644 .github/actions/build-sample-app/action.yml create mode 100644 .github/actions/build-sample-app/artifactory-publish/action.yml create mode 100644 .github/actions/build-sample-app/docker-push/action.yml delete mode 100644 .github/workflows/ci-publish.yml diff --git a/.github/actions/build-sample-app/action.yml b/.github/actions/build-sample-app/action.yml new file mode 100644 index 0000000..7ecafd5 --- /dev/null +++ b/.github/actions/build-sample-app/action.yml @@ -0,0 +1,76 @@ +name: 'Build Sample App' +description: 'Builds a sample app and optionally publishes to Artifactory and pushes to a Docker registry' +inputs: + app-dir: + description: 'relative path to the app directory' + required: true + mvn-build-commands: + description: 'commands passed to \"mvnw" to build the app' + required: false + default: '-B clean verify' + artifactory-publish: + description: 'whether or not to publish to artifactory' + required: false + default: 'false' + jf-artifactory-spring: + description: 'encoded JFrog server id configuration' + required: false + jf-mvn-build-commands: + description: 'commands passed to \"jfrog rt mvn\" to publish the app' + required: false + default: '-B clean install -DskipTests' + docker-push: + description: 'whether or not to push docker image to docker hub' + required: false + default: 'false' + docker-registry: + description: 'docker registry' + required: false + docker-username: + description: 'docker username' + required: false + docker-password: + description: 'docker password' + required: false + docker-images: + description: 'csv of docker images to push' + required: false + docker-images-override: + description: 'csv of docker image tags to use when pushing (parallel array to docker-images)' + required: false +runs: + using: "composite" + steps: + - uses: actions/checkout@v2 + + - uses: jvalkeal/setup-maven@v1 + with: + maven-version: 3.8.4 + + - uses: actions/setup-java@v2 + with: + distribution: adopt + java-version: 8 + cache: maven + + - name: Maven build + shell: bash + run: ./mvnw ${{ inputs.mvn-build-commands }} + working-directory: ${{ inputs.app-dir }} + + - uses: ./.github/actions/build-sample-app/artifactory-publish + if: ${{ inputs.artifactory-publish == 'true' }} + with: + app-dir: ${{ inputs.app-dir }} + jf-artifactory-spring: ${{ inputs.jf-artifactory-spring }} + jf-mvn-build-commands: ${{ inputs.jf-mvn-build-commands }} + + - uses: ./.github/actions/build-sample-app/docker-push + if: ${{ inputs.docker-push == 'true' }} + with: + app-dir: ${{ inputs.app-dir }} + docker-registry: ${{ inputs.docker-registry }} + docker-username: ${{ inputs.docker-username }} + docker-password: ${{ inputs.docker-password }} + docker-images: ${{ inputs.docker-images }} + docker-images-override: ${{ inputs.docker-images-override }} diff --git a/.github/actions/build-sample-app/artifactory-publish/action.yml b/.github/actions/build-sample-app/artifactory-publish/action.yml new file mode 100644 index 0000000..70eb4f4 --- /dev/null +++ b/.github/actions/build-sample-app/artifactory-publish/action.yml @@ -0,0 +1,45 @@ +name: 'Sample App Publish' +description: 'Publishes a sample app to Artifactory' +inputs: + app-dir: + description: 'relative path to the app directory' + required: true + jf-artifactory-spring: + description: 'encoded JFrog server id configuration' + required: true + jf-mvn-build-commands: + description: 'commands passed to \"jfrog rt mvn\" to publish the app' + required: false + default: '-B clean install -DskipTests' +runs: + using: "composite" + steps: + + - name: Setup JFrog CLI + uses: jfrog/setup-jfrog-cli@v1 + with: + version: 1.46.4 + env: + JF_ARTIFACTORY_SPRING: ${{ inputs.jf-artifactory-spring }} + + - name: Configure JFrog Cli + shell: bash + run: | + jfrog rt mvnc \ + --server-id-resolve=repo.spring.io \ + --server-id-deploy=repo.spring.io \ + --repo-resolve-releases=libs-milestone \ + --repo-resolve-snapshots=libs-snapshot \ + --repo-deploy-releases=release \ + --repo-deploy-snapshots=snapshot + echo JFROG_CLI_BUILD_NAME=spring-cloud-dataflow-samples >> $GITHUB_ENV + echo JFROG_CLI_BUILD_NUMBER=$GITHUB_RUN_NUMBER >> $GITHUB_ENV + working-directory: ${{ inputs.app-dir }} + + - name: Publish to Artifactory + shell: bash + run: | + jfrog rt mvn ${{ inputs.jf-mvn-build-commands }} + jfrog rt build-publish + working-directory: ${{ inputs.app-dir }} + diff --git a/.github/actions/build-sample-app/docker-push/action.yml b/.github/actions/build-sample-app/docker-push/action.yml new file mode 100644 index 0000000..fbb1722 --- /dev/null +++ b/.github/actions/build-sample-app/docker-push/action.yml @@ -0,0 +1,73 @@ +name: 'Sample App Push' +description: 'Pushes a containerized sample app to Docker' +inputs: + app-dir: + description: 'relative path to the app directory' + required: true + docker-registry: + description: 'docker registry' + required: false + docker-username: + description: 'docker username' + required: true + docker-password: + description: 'docker password' + required: true + docker-images: + description: 'csv of docker images to push' + required: true + docker-images-override: + description: 'csv of docker image tags to use when pushing (parallel array to docker-images)' + required: false +runs: + using: "composite" + steps: + + - name: Login Dockerhub + uses: docker/login-action@v1 + with: + registry: ${{ inputs.docker-registry }} + username: ${{ inputs.docker-username }} + password: ${{ inputs.docker-password }} + + - name: Push images to Dockerhub + env: + DOCKER_REGISTRY: ${{ inputs.docker-registry }} + DOCKER_IMAGES: ${{ inputs.docker-images }} + DOCKER_IMAGES_OVERRIDE: ${{ inputs.docker-images-override }} + working-directory: ${{ inputs.app-dir }} + shell: bash + run: | + # read the images into arrays + read -r -a images <<< "$DOCKER_IMAGES" + read -r -a imagesOverride <<< "$DOCKER_IMAGES_OVERRIDE" + + # validate lengths if override specified + numImages=${#images[@]} + numImagesOverride=${#imagesOverride[@]} + if [[ $numImagesOverride -gt 0 && $numImages -ne $numImagesOverride ]]; then + echo "when 'docker-images-override' is specified it must be the same length as 'docker-images'" + exit 1 + fi + # determine the target images name based on registry and override + for idx in "${!images[@]}" + do + # use override if specified + if [[ $numImagesOverride -gt 0 ]]; then + image="${imagesOverride[idx]}" + else + image="${images[idx]}" + fi + # pre-pend registry if specified + if [[ "$DOCKER_REGISTRY" != "" ]]; then + image="$DOCKER_REGISTRY/$image" + fi + + # tag the original image if it has changed (override and/or registry) + originalImage="${images[idx]}" + if [[ "$image" != "$originalImage" ]]; then + docker tag ${originalImage} ${image} + fi + docker push ${image} + + done diff --git a/.github/workflows/ci-pr.yml b/.github/workflows/ci-pr.yml index 1f7e859..7c775b8 100644 --- a/.github/workflows/ci-pr.yml +++ b/.github/workflows/ci-pr.yml @@ -5,18 +5,11 @@ on: jobs: build: - runs-on: ubuntu-latest - name: CI PR Build - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-java@v2 - with: - distribution: adopt - java-version: 8 - cache: maven - - name: Build kafka-samples - run: ./mvnw -B package - working-directory: kafka-samples - - name: Build multio-samples/ticktock - run: ./mvnw -B package - working-directory: multio-samples/ticktock + name: Call Build Workflow + uses: spring-cloud/spring-cloud-dataflow-samples/.github/workflows/ci.yml@main + with: + maven-build-only: true + secrets: + JF_ARTIFACTORY_SPRING: ${{ secrets.JF_ARTIFACTORY_SPRING }} + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_TOKEN: ${{ secrets.DOCKER_TOKEN }} diff --git a/.github/workflows/ci-publish.yml b/.github/workflows/ci-publish.yml deleted file mode 100644 index eb49140..0000000 --- a/.github/workflows/ci-publish.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: CI Publish - -on: - workflow_call: - secrets: - jfArtifactorySpring: - required: true - -jobs: - publish: - runs-on: ubuntu-latest - name: CI Publish - steps: - - uses: actions/checkout@v2 - - uses: jvalkeal/setup-maven@v1 - with: - maven-version: 3.8.4 - - uses: actions/setup-java@v2 - with: - distribution: adopt - java-version: 8 - - uses: jfrog/setup-jfrog-cli@v1 - with: - version: 1.46.4 - env: - JF_ARTIFACTORY_SPRING: ${{ secrets.jfArtifactorySpring }} - - name: Configure JFrog Cli - run: | - jfrog rt mvnc \ - --server-id-resolve=repo.spring.io \ - --server-id-deploy=repo.spring.io \ - --repo-resolve-releases=libs-milestone \ - --repo-resolve-snapshots=libs-snapshot \ - --repo-deploy-releases=release \ - --repo-deploy-snapshots=snapshot - echo JFROG_CLI_BUILD_NAME=spring-shell-main >> $GITHUB_ENV - echo JFROG_CLI_BUILD_NUMBER=$GITHUB_RUN_NUMBER >> $GITHUB_ENV - - name: Build and Publish - run: | - jfrog rt mvn -B clean install -DskipTests - jfrog rt build-publish diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 461e1ea..6492004 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,38 +1,296 @@ name: CI on: - workflow_dispatch: + + # Called when code gets pushed to the main branch push: -# branches: -# - 'main' -# paths: -# - 'scenario-task' + 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: - build: + + kafka-samples: runs-on: ubuntu-latest - strategy: - fail-fast: false - name: CI Build steps: - uses: actions/checkout@v2 - - uses: actions/setup-java@v2 + - uses: ./.github/actions/build-sample-app with: - distribution: adopt - java-version: 8 - cache: maven - - name: Build kafka-samples - run: ./mvnw -B package - working-directory: kafka-samples - - name: Build multio-samples/ticktock - run: ./mvnw -B package - working-directory: multio-samples/ticktock + 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 }} -# publish: -# needs: [build] -# name: Call Publish Snapshot -# uses: spring-cloud/spring-cloud-dataflow-samples/.github/workflows/ci-publish.yml@main -# secrets: -# jfArtifactorySpring: ${{ secrets.JF_ARTIFACTORY_SPRING }} + 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 jib:dockerBuild -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 jib:dockerBuild' + 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:1.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 jib:dockerBuild -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:1.2.0-SNAPSHOT + springcloudstream/multi-io-sample-http-region-ingest:1.2.0-SNAPSHOT + springcloudstream/multi-io-sample-http-clicks-and-region-ingest:1.2.0-SNAPSHOT + springcloudstream/multi-io-sample-user-clicks-per-region-processor:1.2.0-SNAPSHOT + springcloudstream/multi-io-sample-log-user-clicks-per-region:1.2.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 jib:dockerBuild' + 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:1.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 jib:dockerBuild' + 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:0.0.1-SNAPSHOT + springcloudstream/usage-cost-processor-kafka:0.0.1-SNAPSHOT + springcloudstream/usage-cost-logger-kafka:0.0.1-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 jib:dockerBuild' + 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:0.0.1-SNAPSHOT + springcloudstream/usage-cost-processor-rabbit:0.0.1-SNAPSHOT + springcloudstream/usage-cost-logger-rabbit:0.0.1-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 -Dspring-boot.build-image.imageName=springcloudtask/billsetuptask:0.0.1-SNAPSHOT' + 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:0.0.1-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 jib:dockerBuild' + 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:0.0.1-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 jib:dockerBuild' + 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:0.0.1-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 jib:dockerBuild' + 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:0.0.1-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 jib:dockerBuild' + 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:0.0.1-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 docker:build' + 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:0.0.4-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 -Dspring-boot.build-image.imageName=springcloudtask/scenario-task:0.0.1-SNAPSHOT' + 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:0.0.1-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 -Dspring-boot.build-image.imageName=springcloudtask/timestamp-task:1.0.0' + 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:1.0.0 + + 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 -Dspring-boot.build-image.imageName=springcloudtask/timestamp-batch-task:1.0.0' + 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:1.0.0 diff --git a/dataflow-website/stream-developer-guides/streams/standalone-stream-sample/pom.xml b/dataflow-website/stream-developer-guides/streams/standalone-stream-sample/pom.xml index 670830b..5d16f74 100644 --- a/dataflow-website/stream-developer-guides/streams/standalone-stream-sample/pom.xml +++ b/dataflow-website/stream-developer-guides/streams/standalone-stream-sample/pom.xml @@ -68,6 +68,9 @@ true + + kafka + org.springframework.cloud @@ -77,6 +80,9 @@ rabbit + + rabbit + org.springframework.cloud diff --git a/dataflow-website/stream-developer-guides/streams/standalone-stream-sample/usage-cost-logger/pom.xml b/dataflow-website/stream-developer-guides/streams/standalone-stream-sample/usage-cost-logger/pom.xml index 5666e0b..a05c31d 100644 --- a/dataflow-website/stream-developer-guides/streams/standalone-stream-sample/usage-cost-logger/pom.xml +++ b/dataflow-website/stream-developer-guides/streams/standalone-stream-sample/usage-cost-logger/pom.xml @@ -9,9 +9,9 @@ .. - usage-cost-logger - usage-cost-logger - Demo project for Spring Boot + usage-cost-logger-${binder} + usage-cost-logger-${binder} + Demo project for Spring Boot (${binder}) diff --git a/dataflow-website/stream-developer-guides/streams/standalone-stream-sample/usage-cost-processor/pom.xml b/dataflow-website/stream-developer-guides/streams/standalone-stream-sample/usage-cost-processor/pom.xml index 08c5aa0..8f4eb4a 100644 --- a/dataflow-website/stream-developer-guides/streams/standalone-stream-sample/usage-cost-processor/pom.xml +++ b/dataflow-website/stream-developer-guides/streams/standalone-stream-sample/usage-cost-processor/pom.xml @@ -8,9 +8,9 @@ 0.0.1-SNAPSHOT .. - usage-cost-processor - usage-cost-processor - Demo project for Spring Boot + usage-cost-processor-${binder} + usage-cost-processor-${binder} + Demo project for Spring Boot (${binder}) diff --git a/dataflow-website/stream-developer-guides/streams/standalone-stream-sample/usage-detail-sender/pom.xml b/dataflow-website/stream-developer-guides/streams/standalone-stream-sample/usage-detail-sender/pom.xml index e2291eb..ac9f375 100644 --- a/dataflow-website/stream-developer-guides/streams/standalone-stream-sample/usage-detail-sender/pom.xml +++ b/dataflow-website/stream-developer-guides/streams/standalone-stream-sample/usage-detail-sender/pom.xml @@ -8,9 +8,9 @@ 0.0.1-SNAPSHOT .. - usage-detail-sender - usage-detail-sender - Demo project for Spring Boot + usage-detail-sender-${binder} + usage-detail-sender-${binder} + Demo project for Spring Boot (${binder}) diff --git a/scenario-task/pom.xml b/scenario-task/pom.xml index e44a425..56f53e2 100644 --- a/scenario-task/pom.xml +++ b/scenario-task/pom.xml @@ -17,7 +17,7 @@ 8 Hoxton.SR9 - 1.15.0 + 1.15.3