From cc08148d61a4a09ece33e45343753017857e6798 Mon Sep 17 00:00:00 2001 From: funkye Date: Thu, 19 Sep 2024 13:36:48 +0800 Subject: [PATCH] optimize: windows and macos do not start container (#6866) --- .github/workflows/test-ubuntu.yml | 164 ++++++++++++++++++ .github/workflows/test.yml | 62 +------ .../extend/TestConfigFromExtendSPI.java | 3 + .../seata/config/nacos/NacosMockTest.java | 9 + console/pom.xml | 1 - 5 files changed, 180 insertions(+), 59 deletions(-) create mode 100644 .github/workflows/test-ubuntu.yml diff --git a/.github/workflows/test-ubuntu.yml b/.github/workflows/test-ubuntu.yml new file mode 100644 index 00000000000..8b4abcc82a6 --- /dev/null +++ b/.github/workflows/test-ubuntu.yml @@ -0,0 +1,164 @@ +name: "test-ubuntu" + +on: + push: + branches: [ test*, "*.*.*" ] + pull_request: + branches: [ test*, "*.*.*" ] +jobs: + # job 1 + test: + name: "test" + services: + redis: + image: redis:7.2 + ports: + - 6379:6379 + options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3 + nacos: + image: nacos/nacos-server:v2.4.2 + ports: + - 8848:8848 + env: + MODE: standalone + SPRING_SECURITY_ENABLED: false + options: --health-cmd="curl -f http://localhost:8848/nacos" --health-interval=10s --health-timeout=5s --health-retries=3 --health-start-period=30s + runs-on: "${{ matrix.os }}-latest" + strategy: + max-parallel: 3 + fail-fast: false + matrix: + java: [ 8, 11, 17, 21 ] + os: [ + ubuntu, + ] + springboot: [ + 2.7.18 -D spring-framework.version=5.3.31, + 2.6.15 -D spring-framework.version=5.3.27, + 2.5.15 -D spring-framework.version=5.3.27, + 2.4.13 -D spring-framework.version=5.3.13, + 2.3.12.RELEASE -D spring-framework.version=5.2.15.RELEASE, + 2.2.13.RELEASE -D spring-framework.version=5.2.12.RELEASE, + #2.1.18.RELEASE, + #2.0.9.RELEASE, + ] + steps: + # step 1 + - name: "Checkout" + uses: actions/checkout@v3 + # step 2 + - name: "Use Python 3.x" + uses: actions/setup-python@v2 + with: + python-version: '3.12' + # step 3 + - name: "Set up Java JDK" + uses: actions/setup-java@v3.12.0 + with: + distribution: 'zulu' + java-version: ${{ matrix.java }} + # step 4 + ## step 4.1: for Ubuntu and MacOS + - name: "Test with Maven on '${{ matrix.os }}' OS" + run: | + ./mvnw -T 4C clean test -P args-for-client-test -Dspring-boot.version=${{ matrix.springboot }} -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn; + + # job 2 + test-springboot3x: + name: "test-springboot3.x" + services: + redis: + image: redis:7.2 + ports: + - 6379:6379 + options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3 + nacos: + image: nacos/nacos-server:v2.4.2 + ports: + - 8848:8848 + env: + MODE: standalone + SPRING_SECURITY_ENABLED: false + options: --health-cmd="curl -f http://localhost:8848/nacos" --health-interval=10s --health-timeout=5s --health-retries=3 --health-start-period=30s + runs-on: "${{ matrix.os }}-latest" + strategy: + max-parallel: 3 + fail-fast: false + matrix: + java: [ 17, 21 ] + os: [ + ubuntu, + ] + springboot: [ + 3.2.0 -D spring-framework.version=6.1.1, + 3.1.6 -D spring-framework.version=6.0.14, + 3.0.13 -D spring-framework.version=6.0.14, + ] + steps: + # step 1 + - name: "Checkout" + uses: actions/checkout@v3 + # step 2 + - name: "Use Python 3.x" + uses: actions/setup-python@v2 + with: + python-version: '3.12' + # step 3 + - name: "Set up Java JDK" + uses: actions/setup-java@v3.12.0 + with: + distribution: 'zulu' + java-version: ${{ matrix.java }} + # step 4 + ## step 4.1: for Ubuntu and MacOS + - name: "Test with Maven on '${{ matrix.os }}' OS" + if: matrix.os != 'windows' + run: | + ./mvnw -T 4C clean test -P args-for-client-test -Dspring-boot.version=${{ matrix.springboot }} -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn; + ## step 4.2: for Windows + - name: "Build with Maven on 'windows' OS (Skip tests)" + if: matrix.os == 'windows' + run: | # Skip tests, because too many errors in unit-test. + ./mvnw.cmd -version; + ./mvnw.cmd clean install -P args-for-client-test -DskipTests -D spring-boot.version=${{ matrix.springboot }} -e -B -D org.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn; + + # job 3 + test-arm64: + name: "test-arm64" + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + springboot: [ + #2.7.18 -Dspring-framework.version=5.3.31, # The maven-compiler-plugin will throw an error for an unknown reason. + #2.6.15 -Dspring-framework.version=5.3.27, # The maven-compiler-plugin will throw an error for an unknown reason. + #2.5.15 -Dspring-framework.version=5.3.27, # The maven-compiler-plugin will throw an error for an unknown reason. + 2.4.13 -Dspring-framework.version=5.3.13, + 2.3.12.RELEASE -Dspring-framework.version=5.2.15.RELEASE, + 2.2.13.RELEASE -Dspring-framework.version=5.2.12.RELEASE, + #2.1.18.RELEASE, + #2.0.9.RELEASE, + ] + steps: + # step 1 + - name: "Checkout" + uses: actions/checkout@v3 + # step 2 + - name: "Set up QEMU" + id: qemu + uses: docker/setup-qemu-action@v3 + # step 3 + - name: "Build with Maven on 'arm64v8/ubuntu:20.04' OS (Skip tests)" + run: | + docker run --rm -v ${{ github.workspace }}:/ws:rw --workdir=/ws \ + arm64v8/ubuntu:20.04 \ + bash -exc 'apt-get update -y && \ + apt-get install maven -y && \ + apt-get install -y python3 python3-pip python3-distutils && \ + apt-get install -y build-essential && \ + mvn -version && \ + mvn -T 4C clean install \ + -Dspring-boot.version=${{ matrix.springboot }} \ + -Prelease-seata \ + -DskipTests \ + -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn' diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d3f618596b9..2c775a1a849 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,32 +3,19 @@ name: "test" on: push: branches: [ test*, "*.*.*" ] + pull_request: + branches: [ test*, "*.*.*" ] jobs: # job 1 test: name: "test" - services: - if: matrix.os != 'windows' - redis: - image: redis:7.2 - ports: - - 6379:6379 - options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3 - nacos: - image: nacos/nacos-server:v2.4.2 - ports: - - 8848:8848 - env: - MODE: standalone - SPRING_SECURITY_ENABLED: false - options: --health-cmd="curl -f http://localhost:8848/nacos" --health-interval=10s --health-timeout=5s --health-retries=3 --health-start-period=30s runs-on: "${{ matrix.os }}-latest" strategy: + max-parallel: 3 fail-fast: false matrix: java: [ 8, 11, 17, 21 ] os: [ - ubuntu, macos, windows, # Skip tests, because too many errors in unit-test. ] @@ -84,11 +71,11 @@ jobs: name: "test-springboot3.x" runs-on: "${{ matrix.os }}-latest" strategy: + max-parallel: 3 fail-fast: false matrix: java: [ 17, 21 ] os: [ - ubuntu, macos, windows, # Skip tests, because too many errors in unit-test. ] @@ -133,44 +120,3 @@ jobs: run: | # Skip tests, because too many errors in unit-test. ./mvnw.cmd -version; ./mvnw.cmd clean install -P args-for-client-test -DskipTests -D spring-boot.version=${{ matrix.springboot }} -e -B -D org.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn; - - # job 3 - test-arm64: - name: "test-arm64" - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - springboot: [ - #2.7.18 -Dspring-framework.version=5.3.31, # The maven-compiler-plugin will throw an error for an unknown reason. - #2.6.15 -Dspring-framework.version=5.3.27, # The maven-compiler-plugin will throw an error for an unknown reason. - #2.5.15 -Dspring-framework.version=5.3.27, # The maven-compiler-plugin will throw an error for an unknown reason. - 2.4.13 -Dspring-framework.version=5.3.13, - 2.3.12.RELEASE -Dspring-framework.version=5.2.15.RELEASE, - 2.2.13.RELEASE -Dspring-framework.version=5.2.12.RELEASE, - #2.1.18.RELEASE, - #2.0.9.RELEASE, - ] - steps: - # step 1 - - name: "Checkout" - uses: actions/checkout@v3 - # step 2 - - name: "Set up QEMU" - id: qemu - uses: docker/setup-qemu-action@v3 - # step 3 - - name: "Build with Maven on 'arm64v8/ubuntu:20.04' OS (Skip tests)" - run: | - docker run --rm -v ${{ github.workspace }}:/ws:rw --workdir=/ws \ - arm64v8/ubuntu:20.04 \ - bash -exc 'apt-get update -y && \ - apt-get install maven -y && \ - apt-get install -y python3 python3-pip python3-distutils && \ - apt-get install -y build-essential && \ - mvn -version && \ - mvn -T 4C clean install \ - -Dspring-boot.version=${{ matrix.springboot }} \ - -Prelease-seata \ - -DskipTests \ - -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn' diff --git a/config/seata-config-nacos/src/test/java/io/seata/config/extend/TestConfigFromExtendSPI.java b/config/seata-config-nacos/src/test/java/io/seata/config/extend/TestConfigFromExtendSPI.java index 80bde364814..55e76441861 100644 --- a/config/seata-config-nacos/src/test/java/io/seata/config/extend/TestConfigFromExtendSPI.java +++ b/config/seata-config-nacos/src/test/java/io/seata/config/extend/TestConfigFromExtendSPI.java @@ -37,6 +37,8 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledOnOs; +import org.junit.jupiter.api.condition.OS; public class TestConfigFromExtendSPI { @@ -59,6 +61,7 @@ public static void setup() throws NacosException { } @Test + @EnabledOnOs(OS.LINUX) public void testGetConfigProperties() throws Exception { Assertions.assertNotNull(configService); Configuration configuration = ConfigurationFactory.getInstance(); diff --git a/config/seata-config-nacos/src/test/java/org/apache/seata/config/nacos/NacosMockTest.java b/config/seata-config-nacos/src/test/java/org/apache/seata/config/nacos/NacosMockTest.java index 5c3a9d5402f..f246ba33ea8 100644 --- a/config/seata-config-nacos/src/test/java/org/apache/seata/config/nacos/NacosMockTest.java +++ b/config/seata-config-nacos/src/test/java/org/apache/seata/config/nacos/NacosMockTest.java @@ -37,6 +37,9 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledOnJre; +import org.junit.jupiter.api.condition.EnabledOnOs; +import org.junit.jupiter.api.condition.OS; public class NacosMockTest { private static ConfigService configService; @@ -64,6 +67,7 @@ public static void setup() throws NacosException { } @Test + @EnabledOnOs(OS.LINUX) public void getInstance() { Assertions.assertNotNull(configService); Assertions.assertNotNull(NacosConfiguration.getInstance()); @@ -71,6 +75,7 @@ public void getInstance() { } @Test + @EnabledOnOs(OS.LINUX) public void getConfig() { Configuration configuration = ConfigurationFactory.getInstance(); String configStrValue = configuration.getConfig(SUB_NACOS_DATAID); @@ -135,6 +140,7 @@ public void getConfig() { } @Test + @EnabledOnOs(OS.LINUX) public void putConfigIfAbsent() { Configuration configuration = ConfigurationFactory.getInstance(); Assertions.assertThrows(UndeclaredThrowableException.class, () -> { @@ -143,6 +149,7 @@ public void putConfigIfAbsent() { } @Test + @EnabledOnOs(OS.LINUX) public void removeConfig() { Configuration configuration = ConfigurationFactory.getInstance(); boolean removed = configuration.removeConfig(NACOS_DATAID); @@ -150,6 +157,7 @@ public void removeConfig() { } @Test + @EnabledOnOs(OS.LINUX) public void putConfig() { Configuration configuration = ConfigurationFactory.getInstance(); boolean added = configuration.putConfig(SUB_NACOS_DATAID, "TEST"); @@ -159,6 +167,7 @@ public void putConfig() { } @Test + @EnabledOnOs(OS.LINUX) public void testConfigListener() throws NacosException, InterruptedException { Configuration configuration = ConfigurationFactory.getInstance(); configuration.putConfig(NACOS_DATAID, "KEY=TEST"); diff --git a/console/pom.xml b/console/pom.xml index 23610df3a07..16fba6a55ee 100644 --- a/console/pom.xml +++ b/console/pom.xml @@ -194,7 +194,6 @@ generate-resources install - https://registry.npmmirror.com/