Replace Bamboo SCDF samples build w/ GitHub actions (#159)
Add GitHub actions based CI pipeline Resolves #155
This commit is contained in:
23
.github/workflows/ci-pr.yml
vendored
23
.github/workflows/ci-pr.yml
vendored
@@ -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 }}
|
||||
|
||||
41
.github/workflows/ci-publish.yml
vendored
41
.github/workflows/ci-publish.yml
vendored
@@ -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
|
||||
308
.github/workflows/ci.yml
vendored
308
.github/workflows/ci.yml
vendored
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user