split up in multiple (parallel) build modules

This commit is contained in:
Tom Hombergs
2020-07-25 20:13:18 +10:00
parent eefdfd2655
commit f5357af028
5 changed files with 103 additions and 58 deletions

View File

@@ -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

View File

@@ -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

0
patterns/gradlew vendored Normal file → Executable file
View File

View File

@@ -6,7 +6,7 @@ plugins {
group = 'io.reflectoring'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '13'
sourceCompatibility = '11'
repositories {
mavenCentral()

View File

@@ -5,7 +5,7 @@ plugins {
group = 'io.reflectoring'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '13'
sourceCompatibility = '11'
repositories {
mavenCentral()