-
Notifications
You must be signed in to change notification settings - Fork 207
Build #2162
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Build #2162
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
1f8416f
build: release version 1.28.0
timefold-release c3d3f82
feat: Add support for ConstraintProvider instances in solver configur…
SER1-CG 40672c9
bug: Resolve build error as child pom.xml contain wrong versions
SER1-CG 599e206
refactor: Improve code formatting in score director factory classes
SER1-CG 3db46bf
chore: Disable workflows in forked repositories and update GitHub Pac…
SER1-CG File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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." |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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." |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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." | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
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_dispatchand a permanently-false job condition, so restore the original triggers/jobs (or gate them conditionally for forks without removing CI for the main repo).