Skip to content
Closed

Build #2162

Show file tree
Hide file tree
Changes from all commits
Commits
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
76 changes: 6 additions & 70 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -1,75 +1,11 @@
name: "CodeQL Advanced"
name: CodeQL Advanced (disabled in fork)

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
workflow_dispatch:

jobs:
analyze:
name: Analyze (${{ matrix.language }})
runs-on: 'ubuntu-latest'
permissions:
# required for all workflows
security-events: write

# required to fetch internal or private CodeQL packs
packages: read

# only required for workflows in private repositories
actions: read
contents: read

strategy:
fail-fast: false
matrix:
include:
- language: java-kotlin
build-mode: autobuild
- language: javascript-typescript # Need to add this even though we don't want this; otherwise Github complains.
build-mode: none
disabled:
if: ${{ false }}
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v5

# Add any setup steps before running the `github/codeql-action/init` action.
# This includes steps like installing compilers or runtimes (`actions/setup-node`
# or others). This is typically only required for manual builds.
# - name: Setup runtime (example)
# uses: actions/setup-example@v1

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
# JS is only used in Benchmarker, which runs locally and is irrelevant in terms of security.
# We do not want to analyze those.
config: |
paths-ignore:
- 'benchmark/**/*.html'
- 'benchmark/**/*.ftl'
- 'benchmark/**/*.js'

# If the analyze step fails for one of the languages you are analyzing with
# "We were unable to automatically build your code", modify the matrix above
# to set the build mode to "manual" for that language. Then modify this step
# to build your code.
# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
- if: matrix.build-mode == 'manual'
shell: bash
run: |
echo 'If you are using a "manual" build mode for one or more of the' \
'languages you are analyzing, replace this with the commands to build' \
'your code, for example:'
echo ' make bootstrap'
echo ' make release'
exit 1

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4
with:
category: "/language:${{matrix.language}}"
- run: echo "Disabled in this fork. Use the manual Publish to GitHub Packages workflow."
51 changes: 5 additions & 46 deletions .github/workflows/finish_release.yml
Original file line number Diff line number Diff line change
@@ -1,52 +1,11 @@
name: Finish Release
name: Finish Release (disabled in fork)

on:
release:
types: [published]
workflow_dispatch:

jobs:
build:
env:
RELEASE_BRANCH_NAME: "__timefold_release_branch__"
disabled:
if: ${{ false }}
runs-on: ubuntu-latest
timeout-minutes: 120
steps:
- name: Checkout timefold-solver
uses: actions/checkout@v5
with:
ref: main
fetch-depth: 0 # Otherwise merge will fail on account of not having history.

- name: Put back the 999-SNAPSHOT version on the release branch
run: |
git config user.name "Timefold Release Bot"
git config user.email "release@timefold.ai"
git checkout $RELEASE_BRANCH_NAME
./mvnw -Dfull versions:set -DnewVersion=999-SNAPSHOT
git commit -am "build: move back to 999-SNAPSHOT"
git push origin $RELEASE_BRANCH_NAME

- name: Update release branch
shell: bash
run: |
tag=${{ github.ref }}
tag_version=${tag##*/}
version=${tag_version%.*}
version="${version:1}.x"
echo $version
exists="$(git branch -a | grep -w $version || true)"
echo "branch $exists"
if [ -n "$exists" ]; then
git config user.name "Timefold Release Bot"
git config user.email "release@timefold.ai"
git checkout $RELEASE_BRANCH_NAME
git checkout $version
git merge -Xtheirs --no-edit --squash -m "build: release version $tag_version" $RELEASE_BRANCH_NAME
git push origin $version
git push -d origin $RELEASE_BRANCH_NAME
else
git checkout $RELEASE_BRANCH_NAME
git branch -m $RELEASE_BRANCH_NAME $version
git push origin -u $version
git push -d origin $RELEASE_BRANCH_NAME
fi
- run: echo "Disabled in this fork. Use the manual Publish to GitHub Packages workflow."
172 changes: 5 additions & 167 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
@@ -1,173 +1,11 @@
name: "Base Workflow"

env:
NODE_OPTIONS: "--max_old_space_size=4096"
name: Base Workflow (disabled in fork)

on:
push:
branches: [main]
pull_request:
branches: [main]
paths-ignore:
- 'LICENSE*'
- '.gitignore'
- '**.md'
- '**.adoc'
- '*.txt'
workflow_dispatch:

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@v5

- 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)"
disabled:
if: ${{ false }}
runs-on: ubuntu-latest
timeout-minutes: 120
steps:
- uses: actions/checkout@v5

- 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@v5
- 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@v4
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@v5

- uses: graalvm/setup-graalvm@eec48106e0bf45f2976c2ff0c3e22395cced8243 # 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()
- run: echo "Disabled in this fork. Use the manual Publish to GitHub Packages workflow."
Comment on lines +1 to +11

Copilot AI Mar 5, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This workflow disables all PR/push CI by switching to workflow_dispatch and a permanently-false job condition, so restore the original triggers/jobs (or gate them conditionally for forks without removing CI for the main repo).

Copilot uses AI. Check for mistakes.
Loading
Loading