Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
2d23b5a
add nx
xiongemi Feb 5, 2025
a7c145c
add nx
xiongemi Feb 5, 2025
aa5c746
chore(repo): apply nx-cloud
lourw May 2, 2025
d998912
chore(repo): remove post install
lourw May 2, 2025
0a6017e
add .env file with NX_BATCH_MODE
xiongemi May 2, 2025
20b8ce6
chore(repo): bust cache
lourw May 5, 2025
cc35f90
chore(repo): switch to staging
lourw May 5, 2025
b731aa4
chore(repo): bust cache
lourw May 5, 2025
071de19
chore(repo): bust cache
lourw May 5, 2025
3651091
upgrade pr version to 0.0.0-pr-30913-b417cd3 (+2 squashed commits)
xiongemi May 5, 2025
9e441cb
chore(repo): change run-many to use assemble, test-ci
lourw May 9, 2025
b34b81c
Use check-ci
lourw May 9, 2025
22a8b56
Apply suggestions from code review
lourw May 10, 2025
e9f719e
upgrade pr version to 0.0.0-pr-30913-75a64ba (+2 squashed commits)
xiongemi May 8, 2025
4cdca45
upgrade pr version to 0.0.0-pr-30913-75a64ba (+2 squashed commits)
xiongemi May 8, 2025
fdd5fcb
change to stream output
xiongemi May 12, 2025
03b5e0f
upgrade pr version to 0.0.0-pr-30913-89a46d1
xiongemi May 12, 2025
7bc1bca
change pr version to 0.0.0-pr-30913-da2b0d3
xiongemi May 13, 2025
c3dd66b
add atomized false for spring-boot-autoconfigure
xiongemi May 13, 2025
cb864e6
add dependsOn
xiongemi May 13, 2025
ef7c44e
add atomized false
xiongemi May 13, 2025
74c4b41
change atomized false for spring-boot-maven-plugin
xiongemi May 13, 2025
2dfe573
bust cache
xiongemi May 13, 2025
c41f5ee
change antoraNpmInstall depends on generateAntoraPlaybook
xiongemi May 13, 2025
75c5d1d
add dependsOn
xiongemi May 13, 2025
18c2b7a
upgrade pr version to .0.0-pr-30913-4005921
xiongemi May 13, 2025
5ea5244
remove all nxProjectReport atomized false
xiongemi May 13, 2025
7001eab
add atomized false to gradle-plugin
xiongemi May 14, 2025
5526a4c
upgrade pr version to 0.0.0-pr-30913-f9ca713`
xiongemi May 14, 2025
7ffbfd1
add dependsOn from test
xiongemi May 14, 2025
e5f464e
upgrade pr version 0.0.0-pr-30913-f38a495
xiongemi May 14, 2025
020d01f
bust cache
xiongemi May 13, 2025
247f3df
disable antora
xiongemi May 14, 2025
c6df43e
disable test for spring-boot and bust cache
xiongemi May 14, 2025
d447871
bust cache
xiongemi May 14, 2025
67ff085
bust cache
xiongemi May 14, 2025
aaec175
bust cache
xiongemi May 14, 2025
1647d9b
upgrade pr version to 0.0.0-pr-30913-8852111
xiongemi May 15, 2025
ee4890d
bust cache
xiongemi May 15, 2025
60b1a7c
add maxParallelForks for spring-boot-maven-plugin
xiongemi May 15, 2025
5336645
add assignment rule
xiongemi May 15, 2025
df78c57
bust cache
xiongemi May 15, 2025
e341317
disable antora in spring-boot-maven-plugin
xiongemi May 16, 2025
8b864a4
bust cache
xiongemi May 16, 2025
dfee9ec
upgrade pr version to 0.0.0-pr-31313-387cdca
xiongemi May 23, 2025
5ac37ba
upgrade pr version to 0.0.0-pr-31313-1d47572
xiongemi May 26, 2025
daedd7b
upgrade pr version to 0.0.0-pr-31313-9688d2f
xiongemi May 26, 2025
d9bba2e
run replace batch runner
xiongemi May 26, 2025
aea0d74
separate connection for test
xiongemi May 26, 2025
3a59f9c
remove withCancellationToken
xiongemi May 27, 2025
e26e1f8
move cancel at test start event
xiongemi May 27, 2025
22b5c2a
add no-daemon
xiongemi May 27, 2025
ad2915e
track running tasks
xiongemi May 27, 2025
2054f14
add --no-rebuild and disable test for spring-boot-autoconfigure
xiongemi May 27, 2025
75e807d
--no-build-cache
xiongemi May 27, 2025
8beead6
comment out cancellationTokenSource
xiongemi May 27, 2025
18aa4ed
add activeDescriptors
xiongemi May 27, 2025
fe33c40
no-build-cache
xiongemi May 28, 2025
79702c1
--no-configure-on-demand
xiongemi May 28, 2025
076823c
rerun tasks
xiongemi May 28, 2025
fa04705
turn on NX_CLOUD_USE_BATCHING
xiongemi May 28, 2025
21e82af
Update .github/actions/build/action.yml
lourw May 28, 2025
98c7c3d
Apply suggestions from code review
lourw May 28, 2025
5355791
Update .github/actions/build/action.yml
lourw May 28, 2025
129a2a3
Update .github/workflows/build-pull-request.yml
lourw May 28, 2025
e0d6c6e
change event time
xiongemi May 28, 2025
526cdcb
remove max worker and bust cache
xiongemi May 28, 2025
4c729e4
add max worker back in
xiongemi May 29, 2025
232ac8b
bust cache
xiongemi May 29, 2025
0143e10
disable antora and bust cache
xiongemi May 29, 2025
88711d1
reduce max workers to 0.5
xiongemi May 29, 2025
49371b8
make build and test run at same time
xiongemi May 29, 2025
9191bb5
build and test run in sequence and bust cache
xiongemi May 29, 2025
a0d77c2
bust cache
xiongemi May 29, 2025
6f52c7d
bust cache
xiongemi May 29, 2025
1f05e48
add flag to junit parallelism
xiongemi May 30, 2025
6e0f3b0
add cancellation token
xiongemi May 30, 2025
7b8807a
fix dependsOn and log delta
xiongemi Jun 2, 2025
bf55bce
checkToStopRun
xiongemi Jun 2, 2025
26c082f
add log NX_CLOUD_VERBOSE_LOGGING=true
xiongemi Jun 2, 2025
5caeda7
move complete tasks
xiongemi Jun 2, 2025
75b575c
cancel token
xiongemi Jun 2, 2025
2af683d
kill run when complete task finished
xiongemi Jun 3, 2025
1f343d2
try build cache
xiongemi Jun 3, 2025
6496fc0
add back check runinng tasks
xiongemi Jun 3, 2025
3f6d8c7
remove cancellation token
xiongemi Jun 3, 2025
6f8a000
upgrade pr version to 0.0.0-pr-31313-ab5426c
xiongemi Jun 4, 2025
a5d3390
no exclue for test
xiongemi Jun 4, 2025
fb3299e
add excludeTestTasks
xiongemi Jun 5, 2025
ca0e852
upgrade pr version to 0.0.0-pr-31313-574e68d
xiongemi Jun 6, 2025
b5d413a
set ci success to true if test passed
xiongemi Jun 6, 2025
93b7b19
disable atomized for spring-boot-autoconfigure
xiongemi Jun 6, 2025
0de3855
bust cache
xiongemi Jun 6, 2025
e6de644
add NX_CLOUD_VERBOSE_LOGGING
xiongemi Jun 6, 2025
4f9d3a1
diasble atomized for spring-boot-autoconfigure
xiongemi Jun 9, 2025
c154b91
bust cache
xiongemi Jun 9, 2025
736135b
Update nx.json
lourw Jun 10, 2025
376edbc
Apply suggestions from code review
lourw Jun 10, 2025
b99ba70
upgrade pr version to 0.0.0-pr-31313-3e61ace
xiongemi Jun 9, 2025
6ff3380
remove NX_CLOUD_USE_BATCHING=true
xiongemi Jun 10, 2025
9ee95e4
change to build-ci with parallel 32 and bust cache
xiongemi Jun 10, 2025
b52d391
try to turn on atomizer for all projects
xiongemi Jun 10, 2025
9692b12
disable atomized for spring-boot-gradle-plugin and bust cache
xiongemi Jun 11, 2025
53b2013
bust cache
xiongemi Jun 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .cursorindexingignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@

# Don't index SpecStory auto-save files, but allow explicit context inclusion via @ references
.specstory/**
5 changes: 5 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
NX_BATCH_MODE=true
NX_VERBOSE_LOGGING=true
NX_CLOUD_VERBOSE_LOGGING=true
NX_TUI=false
CI=true
24 changes: 12 additions & 12 deletions .github/actions/build/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ inputs:
java-version:
description: 'Java version to compile and test with'
required: false
default: '17'
default: '21'
publish:
description: 'Whether to publish artifacts ready for deployment to Artifactory'
required: false
Expand Down Expand Up @@ -68,17 +68,17 @@ runs:
COMMERCIAL_REPO_PASSWORD: ${{ inputs.commercial-repository-password }}
COMMERCIAL_REPO_USERNAME: ${{ inputs.commercial-repository-username }}
COMMERCIAL_SNAPSHOT_REPO_URL: ${{ inputs.commercial-snapshot-repository-url }}
run: ./gradlew build
- name: Publish
id: publish
if: ${{ inputs.publish == 'true' }}
shell: bash
env:
COMMERCIAL_RELEASE_REPO_URL: ${{ inputs.commercial-release-repository-url }}
COMMERCIAL_REPO_PASSWORD: ${{ inputs.commercial-repository-password }}
COMMERCIAL_REPO_USERNAME: ${{ inputs.commercial-repository-username }}
COMMERCIAL_SNAPSHOT_REPO_URL: ${{ inputs.commercial-snapshot-repository-url }}
run: ./gradlew -PdeploymentRepository=$(pwd)/deployment-repository ${{ !startsWith(github.event.head_commit.message, 'Next development version') && 'build' || '' }} publishAllPublicationsToDeploymentRepository
run: NX_BATCH_MODE=true NX_CLOUD_DEREFERENCE_SYMLINKS=true NX_VERBOSE_LOGGING=true NX_PERF_LOGGING=true NX_CLOUD_NO_TIMEOUTS=true NX_CLOUD_VERBOSE_LOGGING=true npx nx run-many -t build-ci --parallel=32 --batch --outputStyle=stream
# - name: Publish
# id: publish
# if: ${{ inputs.publish == 'true' }}
# shell: bash
# env:
# COMMERCIAL_RELEASE_REPO_URL: ${{ inputs.commercial-release-repository-url }}
# COMMERCIAL_REPO_PASSWORD: ${{ inputs.commercial-repository-password }}
# COMMERCIAL_REPO_USERNAME: ${{ inputs.commercial-repository-username }}
# COMMERCIAL_SNAPSHOT_REPO_URL: ${{ inputs.commercial-snapshot-repository-url }}
# run: ./gradlew -PdeploymentRepository=$(pwd)/deployment-repository ${{ !startsWith(github.event.head_commit.message, 'Next development version') && 'build' || '' }} publishAllPublicationsToDeploymentRepository
- name: Read Version From gradle.properties
id: read-version
shell: bash
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/prepare-gradle-build/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ inputs:
java-version:
description: 'Java version to use for the build'
required: false
default: '17'
default: '21'
runs:
using: composite
steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/publish-gradle-plugin/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ runs:
uses: actions/setup-java@v4
with:
distribution: 'liberica'
java-version: '17'
java-version: '21
- name: Publish
shell: bash
working-directory: ${{ github.action_path }}
Expand Down
18 changes: 17 additions & 1 deletion .github/workflows/build-pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,30 @@ permissions:
jobs:
build:
name: Build Pull Request
if: ${{ github.repository == 'spring-projects/spring-boot' }}
runs-on: ${{ vars.UBUNTU_MEDIUM || 'ubuntu-latest' }}
steps:
- name: Check Out Code
uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 22
check-latest: true
cache: npm
- run: npm install

# This enables task distribution via Nx Cloud
# Run this command as early as possible, before dependencies are installed
# Learn more at https://nx.dev/ci/reference/nx-cloud-cli#npx-nxcloud-startcirun
# Uncomment this line to enable task distribution
- run: NX_CLOUD_FORCE_USE_EXECUTE_TASKS_V3=false NX_CLOUD_DEREFERENCE_SYMLINKS=true NX_CLOUD_RETRIEVAL_CONCURRENCY=50 NX_CLOUD_NO_TIMEOUTS=true NX_VERBOSE_LOGGING=true NX_CLOUD_VERBOSE_LOGGING=true NX_PERF_LOGGING=true npx nx-cloud start-ci-run --require-explicit-completion --distribute-on="../../.nx/workflows/distribution-config.yaml"

- name: Build
id: build
uses: ./.github/actions/build
- name: Stop nx cloud agents
if: always()
run: npx nx-cloud complete-ci-run
- name: Print JVM Thread Dumps When Cancelled
if: cancelled()
uses: ./.github/actions/print-jvm-thread-dumps
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/verify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ jobs:
uses: actions/setup-java@v4
with:
distribution: 'liberica'
java-version: 17
java-version: 21
- name: Set Up Homebrew
if: ${{ !vars.COMMERCIAL }}
uses: Homebrew/actions/setup-homebrew@7657c9512f50e1c35b640971116425935bab3eea
Expand Down
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,12 @@ secrets.yml
.sts4-cache
.git-hooks/
node_modules

.nx/installation
.nx/cache
.nx/workspace-data

!batch-runner.jar
!batch-runner-all.jar
.specstory/**
.cursorindexingignore
116 changes: 116 additions & 0 deletions .nx/nxw.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
"use strict";
// This file should be committed to your repository! It wraps Nx and ensures
// that your local installation matches nx.json.
// See: https://nx.dev/recipes/installation/install-non-javascript for more info.




Object.defineProperty(exports, "__esModule", { value: true });
const fs = require('fs');
const path = require('path');
const cp = require('child_process');
const installationPath = path.join(__dirname, 'installation', 'package.json');
function matchesCurrentNxInstall(currentInstallation, nxJsonInstallation) {
if (!currentInstallation.devDependencies ||
!Object.keys(currentInstallation.devDependencies).length) {
return false;
}
try {
if (currentInstallation.devDependencies['nx'] !==
nxJsonInstallation.version ||
require(path.join(path.dirname(installationPath), 'node_modules', 'nx', 'package.json')).version !== nxJsonInstallation.version) {
return false;
}
for (const [plugin, desiredVersion] of Object.entries(nxJsonInstallation.plugins || {})) {
if (currentInstallation.devDependencies[plugin] !== desiredVersion) {
return false;
}
}
return true;
}
catch {
return false;
}
}
function ensureDir(p) {
if (!fs.existsSync(p)) {
fs.mkdirSync(p, { recursive: true });
}
}
function getCurrentInstallation() {
try {
return require(installationPath);
}
catch {
return {
name: 'nx-installation',
version: '0.0.0',
devDependencies: {},
};
}
}
function performInstallation(currentInstallation, nxJson) {
fs.writeFileSync(installationPath, JSON.stringify({
name: 'nx-installation',
devDependencies: {
nx: nxJson.installation.version,
...nxJson.installation.plugins,
},
}));
try {
cp.execSync('npm i', {
cwd: path.dirname(installationPath),
stdio: 'inherit',
windowsHide: false,
});
}
catch (e) {
// revert possible changes to the current installation
fs.writeFileSync(installationPath, JSON.stringify(currentInstallation));
// rethrow
throw e;
}
}
function ensureUpToDateInstallation() {
const nxJsonPath = path.join(__dirname, '..', 'nx.json');
let nxJson;
try {
nxJson = require(nxJsonPath);
if (!nxJson.installation) {
console.error('[NX]: The "installation" entry in the "nx.json" file is required when running the nx wrapper. See https://nx.dev/recipes/installation/install-non-javascript');
process.exit(1);
}
}
catch {
console.error('[NX]: The "nx.json" file is required when running the nx wrapper. See https://nx.dev/recipes/installation/install-non-javascript');
process.exit(1);
}
try {
ensureDir(path.join(__dirname, 'installation'));
const currentInstallation = getCurrentInstallation();
if (!matchesCurrentNxInstall(currentInstallation, nxJson.installation)) {
performInstallation(currentInstallation, nxJson);
}
}
catch (e) {
const messageLines = [
'[NX]: Nx wrapper failed to synchronize installation.',
];
if (e instanceof Error) {
messageLines.push('');
messageLines.push(e.message);
messageLines.push(e.stack);
}
else {
messageLines.push(e.toString());
}
console.error(messageLines.join('\n'));
process.exit(1);
}
}
if (!process.env.NX_WRAPPER_SKIP_INSTALL) {
ensureUpToDateInstallation();
}

require('./installation/node_modules/nx/bin/nx');
42 changes: 42 additions & 0 deletions .nx/workflows/agents.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
launch-templates:
linux-extra-large-plus-jvm:
env:
NX_CLOUD_FORCE_USE_EXECUTE_TASKS_V3: "false"
DOCKER_HOST: ""
SERVICES_HOST: ""
LANG: C.UTF-8
resource-class: 'docker_linux_amd64/extra_large+'
image: 'ubuntu22.04-node20.11-v10'
init-steps:
- name: java version
script: java -version

- name: Checkout
uses: 'nrwl/nx-cloud-workflows/v3.6/workflow-steps/checkout/main.yaml'

- name: Setup Java 21
script: |
sudo apt update
sudo apt install -y openjdk-21-jdk
sudo update-alternatives --set java /usr/lib/jvm/java-21-openjdk-amd64/bin/java
java -version
- name: Setup gradle
script: ./gradlew wrapper && ./gradlew --stop && ./gradlew clean

- name: Restore Node Modules Cache
uses: 'nrwl/nx-cloud-workflows/v4/workflow-steps/cache/main.yaml'
inputs:
key: 'package-lock.json|yarn.lock|pnpm-lock.yaml'
paths: 'node_modules'
base-branch: 'main'
- name: Restore Browser Binary Cache
uses: 'nrwl/nx-cloud-workflows/v4/workflow-steps/cache/main.yaml'
inputs:
key: 'package-lock.json|yarn.lock|pnpm-lock.yaml|"browsers"'
paths: |
'../.cache/Cypress'
base-branch: 'main'
- name: Install Node Modules
uses: 'nrwl/nx-cloud-workflows/v4/workflow-steps/install-node-modules/main.yaml'
- name: postinstall
script: npm run postinstall
14 changes: 14 additions & 0 deletions .nx/workflows/distribution-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
distribute-on:
default: 5 linux-extra-large-plus-jvm

assignment-rules:
- targets:
- 'ciIntTest*'
run-on:
- agent: linux-extra-large-plus-jvm
parallelism: 1

- projects:
- "*"
run-on:
- agent: linux-extra-large-plus-jvm
Loading