Skip to content

docs: introduce Neighborhoods docs #4960

docs: introduce Neighborhoods docs

docs: introduce Neighborhoods docs #4960

Workflow file for this run

name: "Base Workflow"
env:
NODE_OPTIONS: "--max_old_space_size=4096"
on:
push:
branches: [main]
pull_request:
branches: [main]
paths-ignore:
- 'LICENSE*'
- '.gitignore'
- '**.md'
- '**.adoc'
- '*.txt'
jobs:
java:
name: "Java Solver"
concurrency:
group: pull_request-${{ github.event_name }}-${{ github.head_ref }}-${{ matrix.os }}-${{ matrix.java-version }}
cancel-in-progress: true
runs-on: ${{matrix.os}}
strategy:
matrix:
os: [ ubuntu-latest, ubuntu-24.04-arm, macos-latest, windows-latest ]
java-version: [ 25 ] # Latest LTS if not Ubuntu
include:
- os: ubuntu-latest
java-version: 17
- os: ubuntu-24.04-arm
java-version: 17
- os: ubuntu-latest
java-version: 21
- os: ubuntu-24.04-arm
java-version: 21
timeout-minutes: 120
steps:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
java-version: ${{matrix.java-version}}
distribution: 'temurin'
cache: 'maven'
- name: Build and test timefold-solver
run: ./mvnw -B verify
- name: Test Summary
uses: test-summary/action@2920bc1b1b377c787227b204af6981e8f41bbef3
with:
paths: "**/TEST-*.xml"
show: "fail"
if: always()
# Exists to check long-running goals, such as docs.
# Tests are skipped as there is plenty of CI that runs them.
java_full:
name: "Java Solver (with flag -Dfull, no tests)"
runs-on: ubuntu-latest
timeout-minutes: 120
steps:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
java-version: 25
distribution: 'temurin'
cache: 'maven'
- name: Build timefold-solver using flag -Dfull
run: ./mvnw -DskipTests -Dfull -B verify
spring_boot:
name: "Spring Boot"
concurrency:
group: pull_request_native-${{ github.event_name }}-${{ github.head_ref }}-${{ matrix.spring-version }}
cancel-in-progress: true
runs-on: ubuntu-latest
strategy:
matrix:
spring-version: ["3.3", "3.4"]
timeout-minutes: 120
steps:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
java-version: 25 # Latest LTS
distribution: 'temurin'
cache: 'maven'
# Reading the latest Spring Boot version from Maven Central often fails.
# Since this information rarely changes, we can cache it, preventing CI failures.
- name: Cache Spring Boot version
id: cache-spring-boot-version
uses: actions/cache@v5
with:
path: spring-boot-version
key: spring-boot-version-${{ matrix.spring-version }}
- name: Get Spring Boot version if not cached
if: steps.cache-spring-boot-version.outputs.cache-hit != 'true'
run: |
echo "$(curl -s 'https://search.maven.org/solrsearch/select?q=g:org.springframework.boot+AND+a:spring-boot-starter+AND+v:${{ matrix.spring-version }}.*' | jq -r '.response.docs[0].v')" >> spring-boot-version
if [ "$(head -n 1 spring-boot-version | cut -c1-3)" = "${{ matrix.spring-version }}" ]; then
exit 0
else
exit 1
fi
- name: Set Spring Boot version in Maven
run: |
SPRING_VERSION=$(cat spring-boot-version)
echo "Using Spring Boot version $SPRING_VERSION"
./mvnw versions:set-property -Dproperty=version.org.springframework.boot -DnewVersion=$SPRING_VERSION
- name: Quickly build timefold-solver
run: ./mvnw -B -Dquickly clean install
- name: Test Spring Boot
run: |
cd spring-integration
../mvnw -B verify
- name: Test Summary
uses: test-summary/action@2920bc1b1b377c787227b204af6981e8f41bbef3
with:
paths: "**/TEST-*.xml"
show: "fail"
if: always()
native:
name: "Native Image"
concurrency:
group: pull_request_native-${{ github.event_name }}-${{ github.head_ref }}-${{matrix.os}}-${{ matrix.module }}-${{ matrix.java-version }}
cancel-in-progress: true
runs-on: ${{matrix.os}}
strategy:
matrix:
os: [ ubuntu-latest, ubuntu-24.04-arm ] # Windows doesn't work, Mac is not a deploy OS.
module: ["spring-integration", "quarkus-integration"]
java-version: [ 17, 21, 25 ] # LTS + latest.
exclude:
# Quarkus 3.17.2 has weird issues with Java 17 GraalVM,
# with Java 21+ GraalVM being recommended even for
# Java 17 projects.
# https://github.com/quarkusio/quarkus/issues/44877
- module: "quarkus-integration"
java-version: 17
timeout-minutes: 120
steps:
- uses: actions/checkout@v6
- uses: graalvm/setup-graalvm@790e28947b79a9c09c3391c0f18bf8d0f102ed69 # v1
with:
java-version: ${{matrix.java-version}}
distribution: 'graalvm-community'
github-token: ${{ secrets.GITHUB_TOKEN }}
cache: 'maven'
- name: Quickly build timefold-solver
run: ./mvnw -B -Dquickly clean install
- name: Test timefold-solver in Native mode
run: |
cd ${{matrix.module}}
../mvnw -B -Dnative verify
- name: Test Summary
uses: test-summary/action@2920bc1b1b377c787227b204af6981e8f41bbef3
with:
paths: "**/TEST-*.xml"
show: "fail"
if: always()