diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..5a3b9747 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,79 @@ +name: CI - Multi Compose Builder + +on: + workflow_dispatch: + inputs: + compose_file: + description: 'Choose docker-compose file' + required: true + default: 'docker-compose.yml' + type: choice + options: + - docker-compose.yml + - docker-compose-partitions.yml + - dockercompose.kafka.yml + + push: + branches: [main, master, patch-1] + pull_request: + branches: [main, master, patch-1] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '17' + + - name: Configure Maven Central Mirror + run: | + mkdir -p ~/.m2 + cat > ~/.m2/settings.xml < + + + central + + + central + https://repo.maven.apache.org/maven2 + true + false + + + + + + central + + + EOF + + - name: 🧹 Auto-fix malformed pom.xml files + run: | + find . -name "pom.xml" | while read file; do + awk 'BEGIN{fixed=0} NR==1 && $0 !~ /^<\?xml/{fixed=1; next} {if(!fixed || $0 ~ /^<\?xml/){print}}' "$file" > "$file.fixed" && mv "$file.fixed" "$file" + done + + - name: Force remove SNAPSHOT of springfox-swagger2 + run: | + mvn dependency:purge-local-repository \ + -DmanualInclude="io.springfox:springfox-swagger2" + + - name: Build Spring Boot apps + run: mvn clean package -DskipTests --no-transfer-progress + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Build & Run Docker Compose + run: | + COMPOSE_FILE="${{ github.event.inputs.compose_file || 'docker-compose.yml' }}" + docker-compose -f "$COMPOSE_FILE" up --build -d diff --git a/store-common/store-api/pom.xml b/store-common/store-api/pom.xml index 9a3dcd84..43237975 100644 --- a/store-common/store-api/pom.xml +++ b/store-common/store-api/pom.xml @@ -1,44 +1,83 @@ - - - 4.0.0 - - - com.siriusxi.ms.store - store-build-chassis - 1.0-SNAPSHOT - ../../store-base/store-build-chassis/pom.xml - - - store-api - 1.0-SNAPSHOT - Store APIs - Project that define all Springy Store DTOs and REST APIs contracts - jar - - - - 2.3.0.M4 - - - - - - org.springframework.boot - spring-boot-dependencies - ${spring.boot.dependencies.version} - import - pom - - - - - - - - io.springfox - springfox-swagger2 - - - \ No newline at end of file +name: CI - Multi Compose Builder + +on: + workflow_dispatch: + inputs: + compose_file: + description: 'Choose docker-compose file' + required: true + default: 'docker-compose.yml' + type: choice + options: + - docker-compose.yml + - docker-compose-partitions.yml + - dockercompose.kafka.yml + + push: + branches: [main, master, patch-1] + pull_request: + branches: [main, master, patch-1] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '17' + + - name: Configure Maven Central Mirror + run: | + mkdir -p ~/.m2 + cat > ~/.m2/settings.xml < + + + central + + + central + https://repo.maven.apache.org/maven2 + true + false + + + + + + central + + + EOF + + - name: Force remove invalid SNAPSHOT of springfox-swagger2 + run: | + mvn dependency:purge-local-repository \ + -DmanualInclude="io.springfox:springfox-swagger2" + + - name: Fix Springfox version in pom.xml + run: | + find . -name "pom.xml" -exec sed -i 's/3.0.0-SNAPSHOT<\/version>/3.0.0<\/version>/g' {} \; + + - name: Ensure Java 17 compatibility in compiler plugin + run: | + find . -name "pom.xml" -exec sed -i 's/15<\/source>/17<\/source>/g' {} \; + find . -name "pom.xml" -exec sed -i 's/15<\/target>/17<\/target>/g' {} \; + find . -name "pom.xml" -exec sed -i '/--enable-preview/d' {} \; + + - name: Build Spring Boot apps + run: mvn clean package -DskipTests --no-transfer-progress + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Build & Run Docker Compose + run: | + COMPOSE_FILE="${{ github.event.inputs.compose_file || 'docker-compose.yml' }}" + docker-compose -f "$COMPOSE_FILE" up --build -d