Reorganize build into 11 parallel jobs for faster execution #3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build | |
| on: | |
| push: | |
| branches: [ main, master ] | |
| jobs: | |
| build-01-overview: | |
| name: "Module 01: Spring Boot Overview (6 projects)" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 25 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '25' | |
| distribution: 'temurin' | |
| cache: 'maven' | |
| - name: Build all projects in module | |
| run: | | |
| set -e | |
| echo "Building Module 01: Spring Boot Overview" | |
| find 01-spring-boot-overview -name pom.xml -not -path "*/target/*" | sort | while read pom; do | |
| echo "Building $(dirname $pom)" | |
| mvn clean compile -B -q -f "$pom" || { | |
| echo "Failed to compile $pom" | |
| exit 1 | |
| } | |
| done | |
| echo "Module 01 completed successfully" | |
| build-02-spring-core: | |
| name: "Module 02: Spring Core (9 projects)" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 25 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '25' | |
| distribution: 'temurin' | |
| cache: 'maven' | |
| - name: Build all projects in module | |
| run: | | |
| set -e | |
| echo "Building Module 02: Spring Core" | |
| find 02-spring-boot-spring-core -name pom.xml -not -path "*/target/*" | sort | while read pom; do | |
| echo "Building $(dirname $pom)" | |
| mvn clean compile -B -q -f "$pom" || { | |
| echo "Failed to compile $pom" | |
| exit 1 | |
| } | |
| done | |
| echo "Module 02 completed successfully" | |
| build-03-hibernate-jpa-crud: | |
| name: "Module 03: Hibernate JPA CRUD (8 projects)" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 25 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '25' | |
| distribution: 'temurin' | |
| cache: 'maven' | |
| - name: Build all projects in module | |
| run: | | |
| set -e | |
| echo "Building Module 03: Hibernate JPA CRUD" | |
| find 03-spring-boot-hibernate-jpa-crud -name pom.xml -not -path "*/target/*" | sort | while read pom; do | |
| echo "Building $(dirname $pom)" | |
| mvn clean compile -B -q -f "$pom" || { | |
| echo "Failed to compile $pom" | |
| exit 1 | |
| } | |
| done | |
| echo "Module 03 completed successfully" | |
| build-04-rest-crud: | |
| name: "Module 04: REST CRUD (20 projects)" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 25 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '25' | |
| distribution: 'temurin' | |
| cache: 'maven' | |
| - name: Build all projects in module | |
| run: | | |
| set -e | |
| echo "Building Module 04: REST CRUD" | |
| find 04-spring-boot-rest-crud -name pom.xml -not -path "*/target/*" | sort | while read pom; do | |
| echo "Building $(dirname $pom)" | |
| mvn clean compile -B -q -f "$pom" || { | |
| echo "Failed to compile $pom" | |
| exit 1 | |
| } | |
| done | |
| echo "Module 04 completed successfully" | |
| build-05-rest-security: | |
| name: "Module 05: REST Security (8 projects)" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 25 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '25' | |
| distribution: 'temurin' | |
| cache: 'maven' | |
| - name: Build all projects in module | |
| run: | | |
| set -e | |
| echo "Building Module 05: REST Security" | |
| find 05-spring-boot-rest-security -name pom.xml -not -path "*/target/*" | sort | while read pom; do | |
| echo "Building $(dirname $pom)" | |
| mvn clean compile -B -q -f "$pom" || { | |
| echo "Failed to compile $pom" | |
| exit 1 | |
| } | |
| done | |
| echo "Module 05 completed successfully" | |
| build-06-spring-mvc: | |
| name: "Module 06: Spring MVC (20 projects)" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 25 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '25' | |
| distribution: 'temurin' | |
| cache: 'maven' | |
| - name: Build all projects in module | |
| run: | | |
| set -e | |
| echo "Building Module 06: Spring MVC" | |
| find 06-spring-boot-spring-mvc -name pom.xml -not -path "*/target/*" | sort | while read pom; do | |
| echo "Building $(dirname $pom)" | |
| mvn clean compile -B -q -f "$pom" || { | |
| echo "Failed to compile $pom" | |
| exit 1 | |
| } | |
| done | |
| echo "Module 06 completed successfully" | |
| build-07-mvc-crud: | |
| name: "Module 07: MVC CRUD (7 projects)" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 25 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '25' | |
| distribution: 'temurin' | |
| cache: 'maven' | |
| - name: Build all projects in module | |
| run: | | |
| set -e | |
| echo "Building Module 07: MVC CRUD" | |
| find 07-spring-boot-spring-mvc-crud -name pom.xml -not -path "*/target/*" | sort | while read pom; do | |
| echo "Building $(dirname $pom)" | |
| mvn clean compile -B -q -f "$pom" || { | |
| echo "Failed to compile $pom" | |
| exit 1 | |
| } | |
| done | |
| echo "Module 07 completed successfully" | |
| build-08-mvc-security: | |
| name: "Module 08: MVC Security (13 projects)" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 25 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '25' | |
| distribution: 'temurin' | |
| cache: 'maven' | |
| - name: Build all projects in module | |
| run: | | |
| set -e | |
| echo "Building Module 08: MVC Security" | |
| find 08-spring-boot-spring-mvc-security -name pom.xml -not -path "*/target/*" | sort | while read pom; do | |
| echo "Building $(dirname $pom)" | |
| mvn clean compile -B -q -f "$pom" || { | |
| echo "Failed to compile $pom" | |
| exit 1 | |
| } | |
| done | |
| echo "Module 08 completed successfully" | |
| build-09-jpa-advanced-mappings: | |
| name: "Module 09: JPA Advanced Mappings (23 projects)" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 25 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '25' | |
| distribution: 'temurin' | |
| cache: 'maven' | |
| - name: Build all projects in module | |
| run: | | |
| set -e | |
| echo "Building Module 09: JPA Advanced Mappings" | |
| find 09-spring-boot-jpa-advanced-mappings -name pom.xml -not -path "*/target/*" | sort | while read pom; do | |
| echo "Building $(dirname $pom)" | |
| mvn clean compile -B -q -f "$pom" || { | |
| echo "Failed to compile $pom" | |
| exit 1 | |
| } | |
| done | |
| echo "Module 09 completed successfully" | |
| build-10-aop: | |
| name: "Module 10: AOP (24 projects)" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 25 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '25' | |
| distribution: 'temurin' | |
| cache: 'maven' | |
| - name: Build all projects in module | |
| run: | | |
| set -e | |
| echo "Building Module 10: AOP" | |
| find 10-spring-boot-aop -name pom.xml -not -path "*/target/*" | sort | while read pom; do | |
| echo "Building $(dirname $pom)" | |
| mvn clean compile -B -q -f "$pom" || { | |
| echo "Failed to compile $pom" | |
| exit 1 | |
| } | |
| done | |
| echo "Module 10 completed successfully" | |
| build-11-whats-new: | |
| name: "Module 11: What's New in Spring Boot 4 (7 projects)" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 25 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '25' | |
| distribution: 'temurin' | |
| cache: 'maven' | |
| - name: Build all projects in module | |
| run: | | |
| set -e | |
| echo "Building Module 11: What's New in Spring Boot 4" | |
| find 11-whats-new-in-spring-boot-4 -name pom.xml -not -path "*/target/*" | sort | while read pom; do | |
| echo "Building $(dirname $pom)" | |
| mvn clean compile -B -q -f "$pom" || { | |
| echo "Failed to compile $pom" | |
| exit 1 | |
| } | |
| done | |
| echo "Module 11 completed successfully" |