Skip to content

deps: bump the minor group with 2 updates #166

deps: bump the minor group with 2 updates

deps: bump the minor group with 2 updates #166

name: Architecture Check
on:
push:
branches: [stable, development, '*.x']
paths:
- 'use-cases/**'
- 'visualizations/**'
- '.github/scripts/ArchitectureCheck.java'
- '.github/scripts/CheckSharedUiSync.java'
- '.github/workflows/architecture_check.yml'
pull_request:
branches: [stable, development, '*.x']
paths:
- 'use-cases/**'
- 'visualizations/**'
- '.github/scripts/ArchitectureCheck.java'
- '.github/scripts/CheckSharedUiSync.java'
- '.github/workflows/architecture_check.yml'
jobs:
shared-ui-sync:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout timefold-quickstarts
uses: actions/checkout@v7
- name: Setup Java
uses: actions/setup-java@v6
with:
java-version: 21
distribution: temurin
# Every quickstart's META-INF/resources/shared/ folder is a physical copy of
# visualizations/shared/, made by visualizations/sync.sh (see that script for why).
# This catches someone hand-editing a quickstart's copy instead of the shared source.
- name: Check shared UI files are in sync
run: |
models=""
for pom in use-cases/*/pom.xml; do
grep -q "<artifactId>timefold-solver-service-parent</artifactId>" "$pom" || continue
models="$models $(dirname "$pom")"
done
if [ -z "$models" ]; then
echo "::error::no Models Service SDK quickstart found under use-cases/"
exit 1
fi
java .github/scripts/CheckSharedUiSync.java $models
archunit:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout timefold-quickstarts
uses: actions/checkout@v7
- name: Checkout timefold-solver
uses: actions/checkout@v7
with:
repository: TimefoldAI/timefold-solver
ref: main
path: ./timefold-solver
- name: Setup Java and Maven
uses: actions/setup-java@v6
with:
java-version: 21
distribution: temurin
cache: maven
- name: Setup JBang
uses: jbangdev/setup-jbang@2b1b465a7b75f4222b81426f23a01e013aa7b95c # v0.1.1
- name: Quickly build timefold-solver
working-directory: ./timefold-solver
run: mvn -B -Dquickly -DskipTests clean install
# Runs the ArchUnit rules of .github/scripts/ArchitectureCheck.java against
# every Models Service SDK quickstart, identified by its pom.xml declaring
# timefold-solver-service-parent as its parent.
- name: Check architecture of SDK models
run: |
models=""
for pom in use-cases/*/pom.xml; do
grep -q "<artifactId>timefold-solver-service-parent</artifactId>" "$pom" || continue
model_dir="$(dirname "$pom")"
echo "::group::compile $model_dir"
mvn -B -q -f "$model_dir" test-compile
echo "::endgroup::"
models="$models $model_dir"
done
if [ -z "$models" ]; then
echo "::error::no Models Service SDK quickstart found under use-cases/"
exit 1
fi
jbang .github/scripts/ArchitectureCheck.java $models