Make builds reproducible for automatic releases CI (#11204)

This commit is contained in:
kezhenxu94 2023-08-11 10:38:12 +08:00 committed by GitHub
parent a1ed1fb447
commit 49bf7a171a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 20 additions and 5 deletions

View File

@ -175,9 +175,11 @@ jobs:
cache: "maven" cache: "maven"
- name: Build distribution tar - name: Build distribution tar
run: | run: |
./mvnw clean install javadoc:javadoc -B -q \ ./mvnw clean install javadoc:javadoc -B -q -Pall \
-Dmaven.test.skip \ -Dmaven.test.skip \
-Dcheckstyle.skip -Dcheckstyle.skip
- name: Verify builds are reproducible
run: ./mvnw -Dmaven.test.skip clean verify artifact:compare -Pall
- uses: actions/upload-artifact@v3 - uses: actions/upload-artifact@v3
name: Upload distribution tar name: Upload distribution tar
with: with:

View File

@ -6,6 +6,7 @@
* Maven artifact `skywalking-log-recevier-plugin` is renamed to `skywalking-log-receiver-plugin`. * Maven artifact `skywalking-log-recevier-plugin` is renamed to `skywalking-log-receiver-plugin`.
* Bump up cli version 0.11 to 0.12. * Bump up cli version 0.11 to 0.12.
* Bump up the version of ASF parent pom to v30. * Bump up the version of ASF parent pom to v30.
* Make builds reproducible for automatic releases CI.
#### OAP Server #### OAP Server

View File

@ -5,6 +5,8 @@ We have a module called `microbench` which performs a series of micro-benchmark
Make new JMH tests extend the `org.apache.skywalking.oap.server.microbench.base.AbstractMicrobenchmark` Make new JMH tests extend the `org.apache.skywalking.oap.server.microbench.base.AbstractMicrobenchmark`
to customize runtime conditions (Measurement, Fork, Warmup, etc.). to customize runtime conditions (Measurement, Fork, Warmup, etc.).
You can build the jar with command `./mvnw -Dmaven.test.skip -DskipTests -pl :microbench package -am -Pbenchmark`.
JMH tests could run as a normal unit test. And they could run as an independent uber jar via `java -jar benchmark.jar` for all benchmarks, JMH tests could run as a normal unit test. And they could run as an independent uber jar via `java -jar benchmark.jar` for all benchmarks,
or via `java -jar /benchmarks.jar exampleClassName` for a specific test. or via `java -jar /benchmarks.jar exampleClassName` for a specific test.

View File

@ -27,10 +27,10 @@
<artifactId>microbench</artifactId> <artifactId>microbench</artifactId>
<properties> <properties>
<jmh.version>1.25</jmh.version> <jmh.version>1.36</jmh.version>
<slf4j.version>1.7.30</slf4j.version> <slf4j.version>1.7.30</slf4j.version>
<uberjar.name>benchmarks</uberjar.name> <uberjar.name>benchmarks</uberjar.name>
<maven-shade-plugin.version>3.1.1</maven-shade-plugin.version> <maven-shade-plugin.version>3.2.3</maven-shade-plugin.version>
</properties> </properties>
<dependencies> <dependencies>

View File

@ -46,12 +46,20 @@
<module>server-tools</module> <module>server-tools</module>
<module>server-fetcher-plugin</module> <module>server-fetcher-plugin</module>
<module>server-health-checker</module> <module>server-health-checker</module>
<module>microbench</module>
<module>ai-pipeline</module> <module>ai-pipeline</module>
<module>mqe-grammar</module> <module>mqe-grammar</module>
<module>mqe-rt</module> <module>mqe-rt</module>
</modules> </modules>
<profiles>
<profile>
<id>benchmark</id>
<modules>
<module>microbench</module>
</modules>
</profile>
</profiles>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>

View File

@ -150,6 +150,8 @@
<maven.compiler.source>11</maven.compiler.source> <maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target> <maven.compiler.target>11</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- `project.build.outputTimestamp` is required for reproducible builds: https://maven.apache.org/guides/mini/guide-reproducible-builds.html -->
<project.build.outputTimestamp>0</project.build.outputTimestamp>
<powermock.version>2.0.9</powermock.version> <powermock.version>2.0.9</powermock.version>
<checkstyle.version>6.18</checkstyle.version> <checkstyle.version>6.18</checkstyle.version>