diff --git a/.github/workflows/basyx_test.yml b/.github/workflows/basyx_test.yml index e1607af16..86e3281cb 100644 --- a/.github/workflows/basyx_test.yml +++ b/.github/workflows/basyx_test.yml @@ -36,6 +36,24 @@ jobs: distribution: 'adopt' cache: maven + - name: Build Submodel Repository + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelrepository.component" + + - name: Build AAS Repository + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasrepository.component" + + - name: Build AAS Registry Log Mem + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasregistry-service-release-log-mem" + + - name: Build Submodel Registry Log Mem + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelregistry-service-release-log-mem" + + - name: Build AAS Registry Log MongoDB + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasregistry-service-release-log-mongodb" + + - name: Build Submodel Registry Log MongoDB + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelregistry-service-release-log-mongodb" + - name: Start environment run: docker compose --project-directory ./ci up -d --wait @@ -45,6 +63,13 @@ jobs: - name: Test BaSyx Common run: mvn test -f "basyx.common/pom.xml" + - name: Fail if no Surefire/Failsafe reports found + run: | + if ! find . -type f \( -path "*/target/surefire-reports/*.xml" -o -path "*/target/failsafe-reports/*.xml" \) | grep -q .; then + echo "No Surefire or Failsafe test reports found. Failing CI."; + exit 1; + fi + - name: Stop environment if: always() run: docker compose --project-directory ./ci down @@ -61,6 +86,24 @@ jobs: java-version: '17' distribution: 'adopt' cache: maven + + - name: Build Submodel Repository + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelrepository.component" + + - name: Build AAS Repository + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasrepository.component" + + - name: Build AAS Registry Log Mem + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasregistry-service-release-log-mem" + + - name: Build Submodel Registry Log Mem + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelregistry-service-release-log-mem" + + - name: Build AAS Registry Log MongoDB + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasregistry-service-release-log-mongodb" + + - name: Build Submodel Registry Log MongoDB + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelregistry-service-release-log-mongodb" - name: Start environment run: docker compose --project-directory ./ci up -d --wait @@ -71,9 +114,23 @@ jobs: - name: Test AASX FileServer run: mvn test -f "basyx.aasxfileserver/pom.xml" -DskipITs + - name: Fail if no Surefire/Failsafe reports found + run: | + if ! find . -type f \( -path "*/target/surefire-reports/*.xml" -o -path "*/target/failsafe-reports/*.xml" \) | grep -q .; then + echo "No Surefire or Failsafe test reports found. Failing CI."; + exit 1; + fi + - name: Test AASX FileServer IT run: mvn verify -f "basyx.aasxfileserver/basyx.aasxfileserver.component" -Ddocker.namespace=test -DskipSurefire=true + - name: Fail if no Surefire/Failsafe reports found + run: | + if ! find . -type f \( -path "*/target/surefire-reports/*.xml" -o -path "*/target/failsafe-reports/*.xml" \) | grep -q .; then + echo "No Surefire or Failsafe test reports found. Failing CI."; + exit 1; + fi + - name: Stop environment if: always() run: docker compose --project-directory ./ci down @@ -90,6 +147,24 @@ jobs: java-version: '17' distribution: 'adopt' cache: maven + + - name: Build Submodel Repository + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelrepository.component" + + - name: Build AAS Repository + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasrepository.component" + + - name: Build AAS Registry Log Mem + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasregistry-service-release-log-mem" + + - name: Build Submodel Registry Log Mem + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelregistry-service-release-log-mem" + + - name: Build AAS Registry Log MongoDB + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasregistry-service-release-log-mongodb" + + - name: Build Submodel Registry Log MongoDB + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelregistry-service-release-log-mongodb" - name: Start environment run: docker compose --project-directory ./ci up -d --wait @@ -100,9 +175,23 @@ jobs: - name: Test AAS Environment run: mvn test -f "basyx.aasenvironment/pom.xml" -DskipITs + - name: Fail if no Surefire/Failsafe reports found + run: | + if ! find . -type f \( -path "*/target/surefire-reports/*.xml" -o -path "*/target/failsafe-reports/*.xml" \) | grep -q .; then + echo "No Surefire or Failsafe test reports found. Failing CI."; + exit 1; + fi + - name: Test AAS Environment IT run: mvn verify -f "basyx.aasenvironment/basyx.aasenvironment.component" -Ddocker.namespace=test -DskipSurefire=true + - name: Fail if no Surefire/Failsafe reports found + run: | + if ! find . -type f \( -path "*/target/surefire-reports/*.xml" -o -path "*/target/failsafe-reports/*.xml" \) | grep -q .; then + echo "No Surefire or Failsafe test reports found. Failing CI."; + exit 1; + fi + - name: Stop environment if: always() run: docker compose --project-directory ./ci down @@ -119,6 +208,24 @@ jobs: java-version: '17' distribution: 'adopt' cache: maven + + - name: Build Submodel Repository + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelrepository.component" + + - name: Build AAS Repository + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasrepository.component" + + - name: Build AAS Registry Log Mem + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasregistry-service-release-log-mem" + + - name: Build Submodel Registry Log Mem + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelregistry-service-release-log-mem" + + - name: Build AAS Registry Log MongoDB + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasregistry-service-release-log-mongodb" + + - name: Build Submodel Registry Log MongoDB + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelregistry-service-release-log-mongodb" - name: Start environment run: docker compose --project-directory ./ci up -d --wait @@ -129,9 +236,23 @@ jobs: - name: Test AAS Repository run: mvn test -f "basyx.aasrepository/pom.xml" -DskipITs + - name: Fail if no Surefire/Failsafe reports found + run: | + if ! find . -type f \( -path "*/target/surefire-reports/*.xml" -o -path "*/target/failsafe-reports/*.xml" \) | grep -q .; then + echo "No Surefire or Failsafe test reports found. Failing CI."; + exit 1; + fi + - name: Test AAS Repository IT run: mvn verify -f "basyx.aasrepository/basyx.aasrepository.component" -Ddocker.namespace=test -DskipSurefire=true + - name: Fail if no Surefire/Failsafe reports found + run: | + if ! find . -type f \( -path "*/target/surefire-reports/*.xml" -o -path "*/target/failsafe-reports/*.xml" \) | grep -q .; then + echo "No Surefire or Failsafe test reports found. Failing CI."; + exit 1; + fi + - name: Stop environment if: always() run: docker compose --project-directory ./ci down @@ -148,6 +269,24 @@ jobs: java-version: '17' distribution: 'adopt' cache: maven + + - name: Build Submodel Repository + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelrepository.component" + + - name: Build AAS Repository + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasrepository.component" + + - name: Build AAS Registry Log Mem + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasregistry-service-release-log-mem" + + - name: Build Submodel Registry Log Mem + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelregistry-service-release-log-mem" + + - name: Build AAS Registry Log MongoDB + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasregistry-service-release-log-mongodb" + + - name: Build Submodel Registry Log MongoDB + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelregistry-service-release-log-mongodb" - name: Start environment run: docker compose --project-directory ./ci up -d --wait @@ -158,6 +297,13 @@ jobs: - name: Test AAS Service run: mvn test -f "basyx.aasservice/pom.xml" + - name: Fail if no Surefire/Failsafe reports found + run: | + if ! find . -type f \( -path "*/target/surefire-reports/*.xml" -o -path "*/target/failsafe-reports/*.xml" \) | grep -q .; then + echo "No Surefire or Failsafe test reports found. Failing CI."; + exit 1; + fi + - name: Stop environment if: always() run: docker compose --project-directory ./ci down @@ -174,6 +320,24 @@ jobs: java-version: '17' distribution: 'adopt' cache: maven + + - name: Build Submodel Repository + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelrepository.component" + + - name: Build AAS Repository + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasrepository.component" + + - name: Build AAS Registry Log Mem + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasregistry-service-release-log-mem" + + - name: Build Submodel Registry Log Mem + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelregistry-service-release-log-mem" + + - name: Build AAS Registry Log MongoDB + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasregistry-service-release-log-mongodb" + + - name: Build Submodel Registry Log MongoDB + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelregistry-service-release-log-mongodb" - name: Start environment run: docker compose --project-directory ./ci up -d --wait @@ -184,9 +348,23 @@ jobs: - name: Test Submodel Repository run: mvn test -f "basyx.submodelrepository/pom.xml" -DskipITs + - name: Fail if no Surefire/Failsafe reports found + run: | + if ! find . -type f \( -path "*/target/surefire-reports/*.xml" -o -path "*/target/failsafe-reports/*.xml" \) | grep -q .; then + echo "No Surefire or Failsafe test reports found. Failing CI."; + exit 1; + fi + - name: Test Submodel Repository IT run: mvn verify -f "basyx.submodelrepository/basyx.submodelrepository.component" -Ddocker.namespace=test -DskipSurefire=true + - name: Fail if no Surefire/Failsafe reports found + run: | + if ! find . -type f \( -path "*/target/surefire-reports/*.xml" -o -path "*/target/failsafe-reports/*.xml" \) | grep -q .; then + echo "No Surefire or Failsafe test reports found. Failing CI."; + exit 1; + fi + - name: Stop environment if: always() run: docker compose --project-directory ./ci down @@ -203,6 +381,24 @@ jobs: java-version: '17' distribution: 'adopt' cache: maven + + - name: Build Submodel Repository + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelrepository.component" + + - name: Build AAS Repository + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasrepository.component" + + - name: Build AAS Registry Log Mem + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasregistry-service-release-log-mem" + + - name: Build Submodel Registry Log Mem + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelregistry-service-release-log-mem" + + - name: Build AAS Registry Log MongoDB + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasregistry-service-release-log-mongodb" + + - name: Build Submodel Registry Log MongoDB + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelregistry-service-release-log-mongodb" - name: Start environment run: docker compose --project-directory ./ci up -d --wait @@ -213,6 +409,13 @@ jobs: - name: Test Submodel Service run: mvn test -f "basyx.submodelservice/pom.xml" + - name: Fail if no Surefire/Failsafe reports found + run: | + if ! find . -type f \( -path "*/target/surefire-reports/*.xml" -o -path "*/target/failsafe-reports/*.xml" \) | grep -q .; then + echo "No Surefire or Failsafe test reports found. Failing CI."; + exit 1; + fi + - name: Stop environment if: always() run: docker compose --project-directory ./ci down @@ -229,6 +432,24 @@ jobs: java-version: '17' distribution: 'adopt' cache: maven + + - name: Build Submodel Repository + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelrepository.component" + + - name: Build AAS Repository + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasrepository.component" + + - name: Build AAS Registry Log Mem + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasregistry-service-release-log-mem" + + - name: Build Submodel Registry Log Mem + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelregistry-service-release-log-mem" + + - name: Build AAS Registry Log MongoDB + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasregistry-service-release-log-mongodb" + + - name: Build Submodel Registry Log MongoDB + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelregistry-service-release-log-mongodb" - name: Start environment run: docker compose --project-directory ./ci up -d --wait @@ -239,9 +460,23 @@ jobs: - name: Test Concept Description Repository run: mvn test -f "basyx.conceptdescriptionrepository/pom.xml" -DskipITs + - name: Fail if no Surefire/Failsafe reports found + run: | + if ! find . -type f \( -path "*/target/surefire-reports/*.xml" -o -path "*/target/failsafe-reports/*.xml" \) | grep -q .; then + echo "No Surefire or Failsafe test reports found. Failing CI."; + exit 1; + fi + - name: Test Concept Description Repository IT run: mvn verify -f "basyx.conceptdescriptionrepository/basyx.conceptdescriptionrepository.component" -Ddocker.namespace=test -DskipSurefire=true + - name: Fail if no Surefire/Failsafe reports found + run: | + if ! find . -type f \( -path "*/target/surefire-reports/*.xml" -o -path "*/target/failsafe-reports/*.xml" \) | grep -q .; then + echo "No Surefire or Failsafe test reports found. Failing CI."; + exit 1; + fi + - name: Stop environment if: always() run: docker compose --project-directory ./ci down @@ -258,6 +493,24 @@ jobs: java-version: '17' distribution: 'adopt' cache: maven + + - name: Build Submodel Repository + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelrepository.component" + + - name: Build AAS Repository + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasrepository.component" + + - name: Build AAS Registry Log Mem + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasregistry-service-release-log-mem" + + - name: Build Submodel Registry Log Mem + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelregistry-service-release-log-mem" + + - name: Build AAS Registry Log MongoDB + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasregistry-service-release-log-mongodb" + + - name: Build Submodel Registry Log MongoDB + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelregistry-service-release-log-mongodb" - name: Start environment run: docker compose --project-directory ./ci up -d --wait @@ -268,9 +521,23 @@ jobs: - name: Test Submodel Registry run: mvn test -f "basyx.submodelregistry/pom.xml" -DskipITs + - name: Fail if no Surefire/Failsafe reports found + run: | + if ! find . -type f \( -path "*/target/surefire-reports/*.xml" -o -path "*/target/failsafe-reports/*.xml" \) | grep -q .; then + echo "No Surefire or Failsafe test reports found. Failing CI."; + exit 1; + fi + - name: Test Submodel Registry IT run: mvn verify -f "basyx.submodelregistry" -Ddocker.namespace=test -DskipSurefire=true + - name: Fail if no Surefire/Failsafe reports found + run: | + if ! find . -type f \( -path "*/target/surefire-reports/*.xml" -o -path "*/target/failsafe-reports/*.xml" \) | grep -q .; then + echo "No Surefire or Failsafe test reports found. Failing CI."; + exit 1; + fi + - name: Stop environment if: always() run: docker compose --project-directory ./ci down @@ -287,6 +554,24 @@ jobs: java-version: '17' distribution: 'adopt' cache: maven + + - name: Build Submodel Repository + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelrepository.component" + + - name: Build AAS Repository + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasrepository.component" + + - name: Build AAS Registry Log Mem + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasregistry-service-release-log-mem" + + - name: Build Submodel Registry Log Mem + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelregistry-service-release-log-mem" + + - name: Build AAS Registry Log MongoDB + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasregistry-service-release-log-mongodb" + + - name: Build Submodel Registry Log MongoDB + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelregistry-service-release-log-mongodb" - name: Start environment run: docker compose --project-directory ./ci up -d --wait @@ -297,9 +582,23 @@ jobs: - name: Test AAS Registry run: mvn test -f "basyx.aasregistry/pom.xml" -DskipITs + - name: Fail if no Surefire/Failsafe reports found + run: | + if ! find . -type f \( -path "*/target/surefire-reports/*.xml" -o -path "*/target/failsafe-reports/*.xml" \) | grep -q .; then + echo "No Surefire or Failsafe test reports found. Failing CI."; + exit 1; + fi + - name: Test AAS Registry IT run: mvn verify -f "basyx.aasregistry" -Ddocker.namespace=test -DskipSurefire=true + - name: Fail if no Surefire/Failsafe reports found + run: | + if ! find . -type f \( -path "*/target/surefire-reports/*.xml" -o -path "*/target/failsafe-reports/*.xml" \) | grep -q .; then + echo "No Surefire or Failsafe test reports found. Failing CI."; + exit 1; + fi + - name: Stop environment if: always() run: docker compose --project-directory ./ci down @@ -316,6 +615,24 @@ jobs: java-version: '17' distribution: 'adopt' cache: maven + + - name: Build Submodel Repository + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelrepository.component" + + - name: Build AAS Repository + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasrepository.component" + + - name: Build AAS Registry Log Mem + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasregistry-service-release-log-mem" + + - name: Build Submodel Registry Log Mem + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelregistry-service-release-log-mem" + + - name: Build AAS Registry Log MongoDB + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.aasregistry-service-release-log-mongodb" + + - name: Build Submodel Registry Log MongoDB + run: mvn package -DskipTests -Ddocker.namespace=eclipsebasyx --pl "org.eclipse.digitaltwin.basyx:basyx.submodelregistry-service-release-log-mongodb" - name: Start environment run: docker compose --project-directory ./ci up -d --wait @@ -326,9 +643,23 @@ jobs: - name: Test AAS Discovery Service run: mvn test -f "basyx.aasdiscoveryservice/pom.xml" -DskipITs + - name: Fail if no Surefire/Failsafe reports found + run: | + if ! find . -type f \( -path "*/target/surefire-reports/*.xml" -o -path "*/target/failsafe-reports/*.xml" \) | grep -q .; then + echo "No Surefire or Failsafe test reports found. Failing CI."; + exit 1; + fi + - name: Test AAS Discovery Service IT run: mvn verify -f "basyx.aasdiscoveryservice/basyx.aasdiscoveryservice.component" -Ddocker.namespace=test -DskipSurefire=true + - name: Fail if no Surefire/Failsafe reports found + run: | + if ! find . -type f \( -path "*/target/surefire-reports/*.xml" -o -path "*/target/failsafe-reports/*.xml" \) | grep -q .; then + echo "No Surefire or Failsafe test reports found. Failing CI."; + exit 1; + fi + - name: Stop environment if: always() run: docker compose --project-directory ./ci down diff --git a/.github/workflows/docker_test.yml b/.github/workflows/docker_test.yml index d5f2bc8ac..3ed88800a 100644 --- a/.github/workflows/docker_test.yml +++ b/.github/workflows/docker_test.yml @@ -54,6 +54,33 @@ jobs: - name: Clean up run: exit 0 + build-test-aas-repository-mongodb: + runs-on: ubuntu-latest + name: AAS Repository MongoDB - Build and Start Docker Image + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'adopt' + cache: maven + + - name: Build BaSyx + run: | + mvn clean install ${MVN_ARGS_BUILD_BASYX_NO_TESTS} + + - name: Build AAS Repository Docker Image + run: | + mvn package -DskipTests -Ddocker.namespace=test --pl "org.eclipse.digitaltwin.basyx:basyx.aasrepository.component" + + - name: Test AAS Repository MongoDB Docker Image + run: chmod +x ./.github/workflows/scripts/build_start_docker_image_docker_compose.sh && ./.github/workflows/scripts/build_start_docker_image_docker_compose.sh ./ci/workflows/test-aas-repository-mongodb.yml test_aas_repository + + - name: Clean up + run: exit 0 + build-test-aas-environment: runs-on: ubuntu-latest name: AAS Environment - Build and Start Docker Image @@ -81,6 +108,33 @@ jobs: - name: Clean up run: exit 0 + build-test-aas-environment-mongodb: + runs-on: ubuntu-latest + name: AAS Environment MongoDB - Build and Start Docker Image + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'adopt' + cache: maven + + - name: Build BaSyx + run: | + mvn clean install ${MVN_ARGS_BUILD_BASYX_NO_TESTS} + + - name: Build AAS Environment Docker Image + run: | + mvn package -DskipTests -Ddocker.namespace=test --pl "org.eclipse.digitaltwin.basyx:basyx.aasenvironment.component" + + - name: Test AAS Environment MongoDB Docker Image + run: chmod +x ./.github/workflows/scripts/build_start_docker_image_docker_compose.sh && ./.github/workflows/scripts/build_start_docker_image_docker_compose.sh ./ci/workflows/test-aas-environment-mongodb.yml test_aas_environment + + - name: Clean up + run: exit 0 + build-test-concept-description-repository: runs-on: ubuntu-latest name: Concept Description Repository - Build and Start Docker Image @@ -108,6 +162,33 @@ jobs: - name: Clean up run: exit 0 + build-test-cd-repository-mongodb: + runs-on: ubuntu-latest + name: Concept Description Repository MongoDB - Build and Start Docker Image + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'adopt' + cache: maven + + - name: Build BaSyx + run: | + mvn clean install ${MVN_ARGS_BUILD_BASYX_NO_TESTS} + + - name: Build Concept Description Repository Docker Image + run: | + mvn package -DskipTests -Ddocker.namespace=test --pl "org.eclipse.digitaltwin.basyx:basyx.conceptdescriptionrepository.component" + + - name: Test Concept Description Repository MongoDB Docker Image + run: chmod +x ./.github/workflows/scripts/build_start_docker_image_docker_compose.sh && ./.github/workflows/scripts/build_start_docker_image_docker_compose.sh ./ci/workflows/test-cd-repository-mongodb.yml test_cd_repository + + - name: Clean up + run: exit 0 + build-test-aas-discovery: runs-on: ubuntu-latest name: AAS Discovery - Build and Start Docker Image @@ -135,6 +216,32 @@ jobs: - name: Clean up run: exit 0 + build-test-aas-discovery-mongodb: + runs-on: ubuntu-latest + name: AAS Discovery MongoDB - Build and Start Docker Image + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'adopt' + cache: maven + + - name: Build BaSyx + run: | + mvn clean install ${MVN_ARGS_BUILD_BASYX_NO_TESTS} + + - name: Build AAS Discovery Docker Image + run: | + mvn package -DskipTests -Ddocker.namespace=test --pl "org.eclipse.digitaltwin.basyx:basyx.aasdiscoveryservice.component" + + - name: Test AAS Discovery MongoDB Docker Image + run: chmod +x ./.github/workflows/scripts/build_start_docker_image_docker_compose.sh && ./.github/workflows/scripts/build_start_docker_image_docker_compose.sh ./ci/workflows/test-aas-discovery-mongodb.yml test_aas_discovery + + - name: Clean up + run: exit 0 build-test-aasx-fileserver: runs-on: ubuntu-latest name: AASX File Server - Build and Start Docker Image @@ -189,6 +296,33 @@ jobs: - name: Clean up run: exit 0 + build-test-submodel-repository-mongodb: + runs-on: ubuntu-latest + name: Submodel Repository MongoDB - Build and Start Docker Image + steps: + - uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'adopt' + cache: maven + + - name: Build BaSyx + run: | + mvn clean install ${MVN_ARGS_BUILD_BASYX_NO_TESTS} + + - name: Build Submodel Repository Docker Image + run: | + mvn package -DskipTests -Ddocker.namespace=test --pl "org.eclipse.digitaltwin.basyx:basyx.submodelrepository.component" + + - name: Test Submodel Repository MongoDB Docker Image + run: chmod +x ./.github/workflows/scripts/build_start_docker_image_docker_compose.sh && ./.github/workflows/scripts/build_start_docker_image_docker_compose.sh ./ci/workflows/test-submodel-repository-mongodb.yml test_submodel_repository + + - name: Clean up + run: exit 0 + build-test-submodel-service: runs-on: ubuntu-latest name: Submodel Service - Build and Start Docker Image diff --git a/ci/workflows/test-aas-discovery-mongodb.yml b/ci/workflows/test-aas-discovery-mongodb.yml new file mode 100644 index 000000000..824230b62 --- /dev/null +++ b/ci/workflows/test-aas-discovery-mongodb.yml @@ -0,0 +1,30 @@ +services: + aas-discovery: + image: test/aas-discovery:$BASYX_VERSION + container_name: test_aas_discovery + environment: + - SERVER_PORT=8081 + - SPRING_DATA_MONGODB_HOST=mongo + - SPRING_DATA_MONGODB_DATABASE=aasdiscovery + - SPRING_DATA_MONGODB_AUTHENTICATION_DATABASE=admin + - SPRING_DATA_MONGODB_USERNAME=mongoAdmin + - SPRING_DATA_MONGODB_PASSWORD=mongoPassword + - BASYX_BACKEND=MongoDB + ports: + - '8081:8081' + restart: always + depends_on: + mongo: + condition: service_healthy + mongo: + image: mongo:5.0.10 + container_name: mongo + environment: + MONGO_INITDB_ROOT_USERNAME: mongoAdmin + MONGO_INITDB_ROOT_PASSWORD: mongoPassword + restart: always + healthcheck: + test: mongo + interval: 10s + timeout: 5s + retries: 5 diff --git a/ci/workflows/test-aas-environment-mongodb.yml b/ci/workflows/test-aas-environment-mongodb.yml new file mode 100644 index 000000000..ff7288e48 --- /dev/null +++ b/ci/workflows/test-aas-environment-mongodb.yml @@ -0,0 +1,30 @@ +services: + aas-env: + image: test/aas-environment:$BASYX_VERSION + container_name: test_aas_environment + environment: + - SERVER_PORT=8081 + - SPRING_DATA_MONGODB_HOST=mongo + - SPRING_DATA_MONGODB_DATABASE=aasenv + - SPRING_DATA_MONGODB_AUTHENTICATION_DATABASE=admin + - SPRING_DATA_MONGODB_USERNAME=mongoAdmin + - SPRING_DATA_MONGODB_PASSWORD=mongoPassword + - BASYX_BACKEND=MongoDB + ports: + - '8081:8081' + restart: always + depends_on: + mongo: + condition: service_healthy + mongo: + image: mongo:5.0.10 + container_name: mongo + environment: + MONGO_INITDB_ROOT_USERNAME: mongoAdmin + MONGO_INITDB_ROOT_PASSWORD: mongoPassword + restart: always + healthcheck: + test: mongo + interval: 10s + timeout: 5s + retries: 5 diff --git a/ci/workflows/test-aas-repository-mongodb.yml b/ci/workflows/test-aas-repository-mongodb.yml new file mode 100644 index 000000000..6f51d24d6 --- /dev/null +++ b/ci/workflows/test-aas-repository-mongodb.yml @@ -0,0 +1,30 @@ +services: + aas-repository: + image: test/aas-repository:$BASYX_VERSION + container_name: test_aas_repository + environment: + - SERVER_PORT=8081 + - SPRING_DATA_MONGODB_HOST=mongo + - SPRING_DATA_MONGODB_DATABASE=aasrepo + - SPRING_DATA_MONGODB_AUTHENTICATION_DATABASE=admin + - SPRING_DATA_MONGODB_USERNAME=mongoAdmin + - SPRING_DATA_MONGODB_PASSWORD=mongoPassword + - BASYX_BACKEND=MongoDB + ports: + - '8081:8081' + restart: always + depends_on: + mongo: + condition: service_healthy + mongo: + image: mongo:5.0.10 + container_name: mongo + environment: + MONGO_INITDB_ROOT_USERNAME: mongoAdmin + MONGO_INITDB_ROOT_PASSWORD: mongoPassword + restart: always + healthcheck: + test: mongo + interval: 10s + timeout: 5s + retries: 5 diff --git a/ci/workflows/test-cd-repository-mongodb.yml b/ci/workflows/test-cd-repository-mongodb.yml new file mode 100644 index 000000000..5ccdc4d10 --- /dev/null +++ b/ci/workflows/test-cd-repository-mongodb.yml @@ -0,0 +1,30 @@ +services: + cd-repository: + image: test/conceptdescription-repository:$BASYX_VERSION + container_name: test_cd_repository + environment: + - SERVER_PORT=8081 + - SPRING_DATA_MONGODB_HOST=mongo + - SPRING_DATA_MONGODB_DATABASE=cdrepository + - SPRING_DATA_MONGODB_AUTHENTICATION_DATABASE=admin + - SPRING_DATA_MONGODB_USERNAME=mongoAdmin + - SPRING_DATA_MONGODB_PASSWORD=mongoPassword + - BASYX_BACKEND=MongoDB + ports: + - '8081:8081' + restart: always + depends_on: + mongo: + condition: service_healthy + mongo: + image: mongo:5.0.10 + container_name: mongo + environment: + MONGO_INITDB_ROOT_USERNAME: mongoAdmin + MONGO_INITDB_ROOT_PASSWORD: mongoPassword + restart: always + healthcheck: + test: mongo + interval: 10s + timeout: 5s + retries: 5 diff --git a/ci/workflows/test-submodel-repository-mongodb.yml b/ci/workflows/test-submodel-repository-mongodb.yml new file mode 100644 index 000000000..678614b13 --- /dev/null +++ b/ci/workflows/test-submodel-repository-mongodb.yml @@ -0,0 +1,30 @@ +services: + submodel-repo: + image: test/submodel-repository:$BASYX_VERSION + container_name: test_submodel_repository + environment: + - SERVER_PORT=8081 + - SPRING_DATA_MONGODB_HOST=mongo + - SPRING_DATA_MONGODB_DATABASE=smrepo + - SPRING_DATA_MONGODB_AUTHENTICATION_DATABASE=admin + - SPRING_DATA_MONGODB_USERNAME=mongoAdmin + - SPRING_DATA_MONGODB_PASSWORD=mongoPassword + - BASYX_BACKEND=MongoDB + ports: + - '8081:8081' + restart: always + depends_on: + mongo: + condition: service_healthy + mongo: + image: mongo:5.0.10 + container_name: mongo + environment: + MONGO_INITDB_ROOT_USERNAME: mongoAdmin + MONGO_INITDB_ROOT_PASSWORD: mongoPassword + restart: always + healthcheck: + test: mongo + interval: 10s + timeout: 5s + retries: 5