diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5e88435..5543c82 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,11 +3,25 @@ name: CI on: [push] jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + # The MODULE environment variable is evaluated in build-all.sh to run a subset + # of the builds. This way, multiple modules can be built in parallel. + module: + - module1 + - module2 + - module3 + - module4 + steps: + - name: "Checkout sources" uses: actions/checkout@v1 + - name: "Setup Java" uses: actions/setup-java@v1 env: @@ -18,5 +32,9 @@ jobs: AWS_REGION: ${{ secrets.AWSREGION }} with: java-version: 13 - - name: "Build all modules" - run: chmod 755 build-all.sh && ./build-all.sh + + - name: "Build module ${{ matrix.module }}" + with: + MODULE: ${{ matrix.module }} + run: | + chmod 755 build-all.sh && ./build-all.sh diff --git a/build-all.sh b/build-all.sh index 4b5a9c5..9695d0c 100755 --- a/build-all.sh +++ b/build-all.sh @@ -81,58 +81,85 @@ build_maven_module() { } } -build_maven_module "spring-boot/spring-boot-kafka" -build_maven_module "resilience4j/retry" -build_maven_module "solid/lsp" -run_gradle_task "spring-boot/thymeleaf-vue" "npmInstall" -build_gradle_module "spring-boot/thymeleaf-vue" -build_gradle_module "spring-boot/spring-boot-springdoc" -build_maven_module "spring-boot/dependency-injection" -build_maven_module "spring-boot/spring-boot-openapi" -build_maven_module "spring-boot/data-migration/liquibase" -build_gradle_module "spring-boot/boundaries" -build_gradle_module "spring-boot/argumentresolver" -build_gradle_module "spring-data/spring-data-jdbc-converter" -build_gradle_module "solid" -build_gradle_module "spring-boot/data-migration/flyway" -build_gradle_module "reactive" -build_gradle_module "junit/assumptions" -build_gradle_module "logging" -build_gradle_module "pact/pact-feign-consumer" -# currently disabled since the consumer build won't run -# build_gradle_module "pact/pact-message-consumer" -# build_gradle_module "pact/pact-message-producer" -build_gradle_module "pact/pact-spring-provider" -build_gradle_module "patterns" -build_gradle_module "spring-boot/conditionals" -build_gradle_module "spring-boot/configuration" -build_gradle_module "spring-boot/mocking" -build_gradle_module "spring-boot/modular" -build_gradle_module "spring-boot/paging" -build_gradle_module "spring-boot/rabbitmq-event-brokering" -build_gradle_module "spring-boot/spring-boot-logging" -build_gradle_module "spring-boot/spring-boot-testing" -build_gradle_module "spring-boot/starter" -build_gradle_module "spring-boot/startup" -build_gradle_module "spring-boot/static" -build_gradle_module "spring-boot/validation" -build_gradle_module "spring-boot/profiles" -build_gradle_module "spring-boot/password-encoding" -build_gradle_module "spring-boot/testcontainers" -build_gradle_module "spring-boot/hazelcast/hazelcast-embedded-cache" -build_gradle_module "spring-boot/hazelcast/hazelcast-client-server" -build_gradle_module "spring-boot/cache" -build_gradle_module "spring-cloud/feign-with-spring-data-rest" -build_gradle_module "spring-cloud/sleuth-downstream-service" -build_gradle_module "spring-cloud/sleuth-upstream-service" -build_gradle_module "spring-cloud/spring-cloud-contract-consumer" -build_gradle_module "spring-cloud/spring-cloud-contract-provider" -build_gradle_module "spring-data/spring-data-rest-associations" -build_gradle_module "spring-data/spring-data-rest-springfox" -build_gradle_module "tools/jacoco" -build_maven_module "aws/localstack" +if [[ "$MODULE" == "module1" ]] +then + build_maven_module "spring-boot/spring-boot-kafka" + build_gradle_module "spring-boot/thymeleaf-vue" + build_gradle_module "spring-boot/spring-boot-springdoc" + build_maven_module "spring-boot/dependency-injection" + build_maven_module "spring-boot/spring-boot-openapi" + build_maven_module "spring-boot/data-migration/liquibase" + build_gradle_module "spring-boot/boundaries" + build_gradle_module "spring-boot/argumentresolver" + build_gradle_module "spring-boot/data-migration/flyway" + run_gradle_task "spring-boot/thymeleaf-vue" "npmInstall" + build_gradle_module "spring-boot/conditionals" + build_gradle_module "spring-boot/configuration" -echo "" -echo "+++" -echo "+++ ALL MODULES SUCCESSFUL" -echo "+++" + echo "" + echo "+++" + echo "+++ MODULE 1 SUCCESSFUL" + echo "+++" +fi + +if [[ "$MODULE" == "module2" ]] +then + build_maven_module "resilience4j/retry" + build_maven_module "solid/lsp" + build_gradle_module "spring-data/spring-data-jdbc-converter" + build_gradle_module "solid" + build_gradle_module "reactive" + build_gradle_module "junit/assumptions" + build_gradle_module "logging" + build_gradle_module "pact/pact-feign-consumer" + + echo "" + echo "+++" + echo "+++ MODULE 2 SUCCESSFUL" + echo "+++" +fi + +if [[ "$MODULE" == "module3" ]] +then + build_gradle_module "pact/pact-spring-provider" + build_gradle_module "patterns" + build_gradle_module "spring-cloud/feign-with-spring-data-rest" + build_gradle_module "spring-cloud/sleuth-downstream-service" + build_gradle_module "spring-cloud/sleuth-upstream-service" + build_gradle_module "spring-cloud/spring-cloud-contract-consumer" + build_gradle_module "spring-cloud/spring-cloud-contract-provider" + build_gradle_module "spring-data/spring-data-rest-associations" + build_gradle_module "spring-data/spring-data-rest-springfox" + build_gradle_module "tools/jacoco" + build_maven_module "aws/localstack" + + echo "" + echo "+++" + echo "+++ MODULE 3 SUCCESSFUL" + echo "+++" +fi + +if [[ "$MODULE" == "module4" ]] +then + build_gradle_module "spring-boot/mocking" + build_gradle_module "spring-boot/modular" + build_gradle_module "spring-boot/paging" + build_gradle_module "spring-boot/rabbitmq-event-brokering" + build_gradle_module "spring-boot/spring-boot-logging" + build_gradle_module "spring-boot/spring-boot-testing" + build_gradle_module "spring-boot/starter" + build_gradle_module "spring-boot/startup" + build_gradle_module "spring-boot/static" + build_gradle_module "spring-boot/validation" + build_gradle_module "spring-boot/profiles" + build_gradle_module "spring-boot/password-encoding" + build_gradle_module "spring-boot/testcontainers" + build_gradle_module "spring-boot/hazelcast/hazelcast-embedded-cache" + build_gradle_module "spring-boot/hazelcast/hazelcast-client-server" + build_gradle_module "spring-boot/cache" + + echo "" + echo "+++" + echo "+++ MODULE 4 SUCCESSFUL" + echo "+++" +fi \ No newline at end of file diff --git a/patterns/gradlew b/patterns/gradlew old mode 100644 new mode 100755 diff --git a/spring-boot/starter/application/build.gradle b/spring-boot/starter/application/build.gradle index 8487066..9d8539d 100644 --- a/spring-boot/starter/application/build.gradle +++ b/spring-boot/starter/application/build.gradle @@ -6,7 +6,7 @@ plugins { group = 'io.reflectoring' version = '0.0.1-SNAPSHOT' -sourceCompatibility = '13' +sourceCompatibility = '11' repositories { mavenCentral() diff --git a/spring-boot/starter/event-starter/build.gradle b/spring-boot/starter/event-starter/build.gradle index d4f5833..a90e4cc 100644 --- a/spring-boot/starter/event-starter/build.gradle +++ b/spring-boot/starter/event-starter/build.gradle @@ -5,7 +5,7 @@ plugins { group = 'io.reflectoring' version = '0.0.1-SNAPSHOT' -sourceCompatibility = '13' +sourceCompatibility = '11' repositories { mavenCentral()