Skip to content

Commit

Permalink
optimize: add workflow for MacOS and Windows (#6151)
Browse files Browse the repository at this point in the history
  • Loading branch information
wangliang181230 authored Dec 14, 2023
1 parent 0710c64 commit 397c6e7
Show file tree
Hide file tree
Showing 19 changed files with 281 additions and 174 deletions.
31 changes: 21 additions & 10 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,20 +28,27 @@ jobs:
# step 3
- name: "Print maven version"
run: ./mvnw -version
# step 4
- name: "Build with Maven"
# step 4.1
- name: "Test, Check style, Check license with Maven and Java8"
if: matrix.java == '8'
run: |
./mvnw -T 4C clean test \
-Dcheckstyle.skip=false -Dlicense.skip=false \
-Dmaven.git-commit-id.skip=true \
-e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn;
# step 4.2
- name: "Test with Maven and Java${{ matrix.java }}"
if: matrix.java != '8'
run: |
if [ "${{ matrix.java }}" == "8" ]; then
./mvnw -T 4C clean test -Dcheckstyle.skip=false -Dlicense.skip=false -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn;
elif [ "${{ matrix.java }}" == "17" ]; then
./mvnw -T 4C clean test -Dcheckstyle.skip=true -Dlicense.skip=true -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn;
fi
./mvnw -T 4C clean test \
-Dmaven.git-commit-id.skip=true \
-e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn;
# step 5
- name: "Codecov"
if: matrix.java == '8'
uses: codecov/codecov-action@v3.1.4

# job 2: Test on 'arm64v8/ubuntu' OS.
# job 2: Build on 'arm64v8/ubuntu' OS (Skip tests).
build_arm64-binary:
runs-on: ubuntu-latest
if: ${{ github.event_name == 'push' && (github.ref_name == 'develop' || github.ref_name == 'snapshot' || github.ref_name == '2.x') }}
Expand All @@ -56,11 +63,15 @@ jobs:
id: qemu
uses: docker/setup-qemu-action@v3
# step 3
- name: "Build arm-binary"
- 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 && \
mvn -version && \
mvn -Prelease-seata -DskipTests clean install -U'
mvn clean install \
-Prelease-seata \
-DskipTests \
-Dmaven.git-commit-id.skip=true \
-e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
15 changes: 7 additions & 8 deletions .github/workflows/test-druid.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ jobs:
strategy:
fail-fast: false
matrix:
java: [ 8, 11, 17, 21 ]
druid: [
1.2.20,
1.2.19,
#1.2.18, # Unit test triggered a bug in Druid, see the commit https://github.com/alibaba/druid/commit/6c493f852852fb287ed5fd31ee16c27ead0ea5cf
#1.2.17, # Unit test triggered a bug in Druid, see the commit https://github.com/alibaba/druid/commit/6c493f852852fb287ed5fd31ee16c27ead0ea5cf
Expand Down Expand Up @@ -50,15 +50,14 @@ jobs:
uses: actions/setup-java@v3.12.0
with:
distribution: 'zulu'
java-version: ${{ matrix.java }}
java-version: 8
# step 3
- name: "Print maven version"
run: ./mvnw -version
# step 4
- name: "Test with Maven"
- name: "Test with Maven and Druid ${{ matrix.druid }}"
run: |
if [ "${{ matrix.java }}" == "8" ]; then
./mvnw -T 4C clean test -Ddruid.version=${{ matrix.druid }} -Dcheckstyle.skip=false -Dlicense.skip=false -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn;
else
./mvnw -T 4C clean test -Ddruid.version=${{ matrix.druid }} -Dcheckstyle.skip=true -Dlicense.skip=true -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn;
fi
./mvnw -T 4C clean test \
-Ddruid.version=${{ matrix.druid }} \
-Dmaven.git-commit-id.skip=true \
-e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn;
51 changes: 0 additions & 51 deletions .github/workflows/test-os.yml

This file was deleted.

122 changes: 91 additions & 31 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,26 +8,25 @@ jobs:
# job 1
test:
name: "test"
runs-on: ubuntu-latest
runs-on: "${{ matrix.os }}-latest"
strategy:
fail-fast: false
matrix:
java: [ 8, 11, 17, 21 ]
os: [
ubuntu,
macos,
windows, # Skip tests, because too many errors in unit-test.
]
springboot: [
2.7.17 -Dspring-framework.version=5.3.30,
2.6.15 -Dspring-framework.version=5.3.27,
2.5.15 -Dspring-framework.version=5.3.27,
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.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,
#1.5.22.RELEASE,
#1.4.7.RELEASE,
#1.3.8.RELEASE,
#1.2.8.RELEASE,
#1.1.12.RELEASE,
#1.0.2.RELEASE
]
steps:
# step 1
Expand All @@ -40,29 +39,40 @@ jobs:
distribution: 'zulu'
java-version: ${{ matrix.java }}
# step 3
- name: "Print maven version"
run: ./mvnw -version
# step 4
- name: "Test with Maven"
# https://docs.github.com/cn/free-pro-team@latest/actions/reference/context-and-expression-syntax-for-github-actions#github-context
## step 3.1: for Ubuntu and MacOS
- name: "Test with Maven on '${{ matrix.os }}' OS"
if: matrix.os != 'windows'
run: |
if [ "${{ matrix.java }}" == "8" ]; then
./mvnw -T 4C clean test -Dspring-boot.version=${{ matrix.springboot }} -Dcheckstyle.skip=false -Dlicense.skip=false -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn;
else
./mvnw -T 4C clean test -Dspring-boot.version=${{ matrix.springboot }} -Dcheckstyle.skip=true -Dlicense.skip=true -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn;
fi
./mvnw -version;
./mvnw -T 4C clean test \
-P args-for-client-test \
-Dspring-boot.version=${{ matrix.springboot }} \
-Dmaven.git-commit-id.skip=true \
-e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn;
## step 3.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 }} -D maven.git-commit-id.skip=true -e -B -D org.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn;
# job 2
test-springboot3x:
name: "test-springboot3.x"
runs-on: ubuntu-latest
runs-on: "${{ matrix.os }}-latest"
strategy:
fail-fast: false
matrix:
java: [ 17, 21 ]
os: [
ubuntu,
macos,
windows, # Skip tests, because too many errors in unit-test.
]
springboot: [
3.1.4 -Dspring-framework.version=6.0.12,
3.0.11 -Dspring-framework.version=6.0.12,
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
Expand All @@ -75,9 +85,59 @@ jobs:
distribution: 'zulu'
java-version: ${{ matrix.java }}
# step 3
- name: "Print maven version"
run: ./mvnw -version
# step 4
- name: "Test with Maven"
## step 3.1: for Ubuntu and MacOS
- name: "Test with Maven on '${{ matrix.os }}' OS"
if: matrix.os != 'windows'
run: |
./mvnw -version;
./mvnw -T 4C clean install \
-P args-for-client-test \
-Dspring-boot.version=${{ matrix.springboot }} \
-Dmaven.git-commit-id.skip=true \
-e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn;
## step 3.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 }} -D maven.git-commit-id.skip=true -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: |
./mvnw -T 4C clean test -Dspring-boot.version=${{ matrix.springboot }} -Dspring-boot-for-server.version=2.5.14 -Dspring-framework-for-server.version=5.3.20 -Dkotlin-maven-plugin.version=1.7.22 -Dcheckstyle.skip=true -Dlicense.skip=true -e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn;
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 && \
mvn -version && \
mvn -T 4C clean install \
-Dspring-boot.version=${{ matrix.springboot }} \
-Prelease-seata \
-DskipTests \
-Dmaven.git-commit-id.skip=true \
-e -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
10 changes: 5 additions & 5 deletions all/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -581,11 +581,6 @@
<artifactId>postgresql</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.dameng</groupId>
<artifactId>DmJdbcDriver18</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
Expand All @@ -596,6 +591,11 @@
<artifactId>kryo</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.dameng</groupId>
<artifactId>DmJdbcDriver18</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>de.ruedigermoeller</groupId>
<artifactId>fst</artifactId>
Expand Down
18 changes: 13 additions & 5 deletions build/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@
<!-- Compiler -->
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
<protobuf-maven-plugin.version>0.6.1</protobuf-maven-plugin.version>
<kotlin-maven-plugin.version>1.3.72</kotlin-maven-plugin.version>
<kotlin-maven-plugin.version>1.9.21</kotlin-maven-plugin.version>
<!-- Check -->
<maven-pmd-plugin.version>3.8</maven-pmd-plugin.version>
<p3c-pmd.version>1.3.6</p3c-pmd.version>
Expand Down Expand Up @@ -120,6 +120,7 @@
<license.skip>true</license.skip>
<maven.test.skip>false</maven.test.skip>
<maven.surefire.argLine></maven.surefire.argLine>
<maven.surefire.excludes></maven.surefire.excludes>
<gpg.keyname>37F181C60AACE24BD5C1D3925583F79497E8E293</gpg.keyname>
<gpg.arg1/>
<gpg.arg2/>
Expand Down Expand Up @@ -379,9 +380,9 @@
</properties>
</profile>

<!-- profile: args-for-test-by-jdk17-and-above-versions -->
<!-- profile: args-for-test-by-jdk17-and-above -->
<profile>
<id>args-for-test-by-jdk17-and-above-versions</id>
<id>args-for-test-by-jdk17-and-above</id>
<activation>
<jdk>[17,)</jdk>
</activation>
Expand All @@ -398,10 +399,17 @@
--add-opens java.sql/java.sql=ALL-UNNAMED
--add-opens java.sql.rowset/javax.sql.rowset.serial=ALL-UNNAMED

--illegal-access=permit
-Dillegal-access=permit
-Dnet.bytebuddy.experimental=true
</maven.surefire.argLine>
</properties>
</profile>

<!-- profile: args-for-client-test -->
<profile>
<id>args-for-client-test</id>
<properties>
<maven.surefire.excludes>io/seata/server/**/*.java,io/seata/console/**/*.java</maven.surefire.excludes>
</properties>
</profile>
</profiles>
</project>
2 changes: 1 addition & 1 deletion changes/en-us/develop.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Add changes here for all PR submitted to the develop branch.
- [[#PR_NO](https://github.com/seata/seata/pull/PR_NO)] A brief and accurate description of PR

### test:
- [[#PR_NO](https://github.com/seata/seata/pull/PR_NO)] A brief and accurate description of PR
- [[#6151](https://github.com/seata/seata/pull/6151)] add test for `MacOS` and `Windows`

Thanks to these contributors for their code commits. Please report an unintended omission.

Expand Down
2 changes: 1 addition & 1 deletion changes/zh-cn/develop.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
- [[#PR_NO](https://github.com/seata/seata/pull/PR_NO)] 准确简要的PR描述

### test:
- [[#PR_NO](https://github.com/seata/seata/pull/PR_NO)] 准确简要的PR描述
- [[#6151](https://github.com/seata/seata/pull/6151)] 添加对 `MacOS``Windows` 的测试

非常感谢以下 contributors 的代码贡献。若有无意遗漏,请报告。

Expand Down
Loading

0 comments on commit 397c6e7

Please sign in to comment.