Skip to content

Commit 2cea7aa

Browse files
committed
Docs: build site from exported Java sources
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8a93f06c-3318-405d-ad86-fcf729e58207
1 parent 8456556 commit 2cea7aa

3 files changed

Lines changed: 38 additions & 35 deletions

File tree

‎.github/workflows/deploy-site.yml‎

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,15 @@ jobs:
7878
distribution: 'microsoft'
7979
cache: 'maven'
8080

81-
# 4. Compile monorepo Java source (needed for javadoc, SpotBugs, etc.)
81+
# 4. Compile exported Java production source for documentation reports.
8282
- name: Compile monorepo Java source
8383
working-directory: monorepo/java
8484
run: |
8585
echo "Compiling Java source from tag ${{ inputs.monorepo_tag }}"
86-
mvn clean compile test -DskipTests=false -Dcheckstyle.skip=true -B
86+
./mvnw -pl sdk -am clean compile \
87+
-DskipTests \
88+
-Dcheckstyle.skip=true \
89+
-B
8790
8891
# 5. Prepare Java artifact versions and snapshot repository instructions
8992
- name: Prepare site artifact versions

‎pom.xml‎

Lines changed: 14 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<!--
33
Site-only POM for github/copilot-sdk-java.
4-
This POM builds the Maven Site (javadoc, JaCoCo, SpotBugs, etc.) from
4+
This POM builds the Maven Site (Javadoc, SpotBugs, etc.) from
55
Java source code checked out from the monorepo (github/copilot-sdk) at
66
a release tag. It is NOT used for compiling/testing the SDK itself.
77
@@ -11,8 +11,10 @@
1111
├── src/site/ (site content: markdown, site.xml, CSS)
1212
└── monorepo/ (checkout of github/copilot-sdk at release tag)
1313
└── java/
14-
└── src/main/java/ (SDK source for javadoc)
15-
└── target/ (compiled classes from monorepo build)
14+
└── sdk/
15+
├── src/main/java/ (SDK source for Javadoc)
16+
├── src/generated/java/ (generated SDK source)
17+
└── target/ (compiled classes from SDK build)
1618
-->
1719
<project xmlns="http://maven.apache.org/POM/4.0.0"
1820
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -71,11 +73,17 @@
7173
<version>4.9.8</version>
7274
<scope>provided</scope>
7375
</dependency>
76+
<dependency>
77+
<groupId>net.java.dev.jna</groupId>
78+
<artifactId>jna</artifactId>
79+
<version>5.19.1</version>
80+
<scope>provided</scope>
81+
</dependency>
7482
</dependencies>
7583

7684
<build>
7785
<!-- Point source directory at monorepo's Java source for reports -->
78-
<sourceDirectory>${monorepo.java.dir}/src/main/java</sourceDirectory>
86+
<sourceDirectory>${monorepo.java.dir}/sdk/src/main/java</sourceDirectory>
7987

8088
<plugins>
8189
<!-- Maven Resources Plugin — site-filtering executions -->
@@ -191,7 +199,7 @@
191199
<artifactId>maven-javadoc-plugin</artifactId>
192200
<version>3.11.2</version>
193201
<configuration>
194-
<sourcepath>${monorepo.java.dir}/src/main/java:${monorepo.java.dir}/src/generated/java</sourcepath>
202+
<sourcepath>${monorepo.java.dir}/sdk/src/main/java:${monorepo.java.dir}/sdk/src/generated/java</sourcepath>
195203
<subpackages>com.github.copilot</subpackages>
196204
<failOnError>false</failOnError>
197205
<failOnWarnings>false</failOnWarnings>
@@ -205,40 +213,13 @@
205213
</reportSet>
206214
</reportSets>
207215
</plugin>
208-
<!-- JaCoCo coverage (from monorepo test run) -->
209-
<plugin>
210-
<groupId>org.jacoco</groupId>
211-
<artifactId>jacoco-maven-plugin</artifactId>
212-
<version>0.8.14</version>
213-
<configuration>
214-
<dataFile>${monorepo.java.dir}/target/jacoco-test-results/sdk-tests.exec</dataFile>
215-
</configuration>
216-
<reportSets>
217-
<reportSet>
218-
<reports>
219-
<report>report</report>
220-
</reports>
221-
</reportSet>
222-
</reportSets>
223-
</plugin>
224-
<!-- Surefire test results report -->
225-
<plugin>
226-
<groupId>org.apache.maven.plugins</groupId>
227-
<artifactId>maven-surefire-report-plugin</artifactId>
228-
<version>3.5.5</version>
229-
<configuration>
230-
<reportsDirectories>
231-
<reportsDirectory>${monorepo.java.dir}/target/surefire-reports</reportsDirectory>
232-
</reportsDirectories>
233-
</configuration>
234-
</plugin>
235216
<!-- SpotBugs static analysis -->
236217
<plugin>
237218
<groupId>com.github.spotbugs</groupId>
238219
<artifactId>spotbugs-maven-plugin</artifactId>
239220
<version>4.9.8.3</version>
240221
<configuration>
241-
<excludeFilterFile>${monorepo.java.dir}/config/spotbugs/spotbugs-exclude.xml</excludeFilterFile>
222+
<excludeFilterFile>${monorepo.java.dir}/sdk/config/spotbugs/spotbugs-exclude.xml</excludeFilterFile>
242223
</configuration>
243224
</plugin>
244225
<!-- TODO/FIXME tag tracker -->

‎scripts/prepare-site-versions.test.mjs‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,3 +72,22 @@ test("passes artifact inputs through the workflow environment and detects previe
7272
assert.match(prepareStep, /if \[\[ "\$\{VERSION\}" == \*-\* \]\]/);
7373
assert.doesNotMatch(prepareStep, /inputs\.publish_as_latest/);
7474
});
75+
76+
test("builds documentation from the exported Java module without test harness inputs", () => {
77+
const workflow = readFileSync(resolve(".github/workflows/deploy-site.yml"), "utf8");
78+
const compileStep = workflow.slice(
79+
workflow.indexOf("- name: Compile monorepo Java source"),
80+
workflow.indexOf("# 5. Prepare Java artifact versions")
81+
);
82+
assert.match(compileStep, /\.\/mvnw -pl sdk -am clean compile/);
83+
assert.match(compileStep, /-DskipTests/);
84+
assert.doesNotMatch(compileStep, /\btest\b.*-DskipTests=false/);
85+
86+
const pom = readFileSync(resolve("pom.xml"), "utf8");
87+
assert.match(pom, /\$\{monorepo\.java\.dir\}\/sdk\/src\/main\/java/);
88+
assert.match(pom, /\$\{monorepo\.java\.dir\}\/sdk\/src\/generated\/java/);
89+
assert.match(pom, /\$\{monorepo\.java\.dir\}\/sdk\/config\/spotbugs\/spotbugs-exclude\.xml/);
90+
assert.match(pom, /<artifactId>jna<\/artifactId>\s*<version>5\.19\.1<\/version>/);
91+
assert.doesNotMatch(pom, /jacoco-maven-plugin/);
92+
assert.doesNotMatch(pom, /maven-surefire-report-plugin/);
93+
});

0 commit comments

Comments
 (0)