-
Notifications
You must be signed in to change notification settings - Fork 696
GEODE-10550: Enable GitHub Actions workflows for support/1.15 branch #7980
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
base: support/1.15
Are you sure you want to change the base?
GEODE-10550: Enable GitHub Actions workflows for support/1.15 branch #7980
Conversation
Add GitHub Actions workflow files to support/1.15 branch to enable automated CI/CD checks for pull requests targeting this branch. This change adds two workflow files: - .github/workflows/codeql.yml: CodeQL security scanning - .github/workflows/gradle.yml: Build, test, and code quality checks The workflows will run on: - Push events to support/1.15 branch - Pull requests targeting support/1.15 branch - Scheduled weekly security scans (CodeQL only) This ensures that dependency updates and security fixes submitted to the support/1.15 branch are properly validated before merge.
The support/1.15 branch uses Gradle 6.8.3 and is configured for Java 8. Updated all workflow jobs to use JDK 8 instead of JDK 17 to match the branch requirements. Changes: - Updated all jobs to use java-version: '8' - Changed JAVA_HOME references from JAVA_HOME_17_X64 to JAVA_HOME_8_X64 - Updated testJava*Home parameters to use testJava8Home - Set JAVA_BUILD_VERSION and JAVA_TEST_VERSION to 8
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.
Pull request overview
This PR enables automated CI/CD workflows for the support/1.15 branch by adding two GitHub Actions workflow files. The workflows provide continuous integration with build validation, multiple test suites, and security scanning to ensure code quality for the maintenance branch.
Changes:
- Added CodeQL security scanning workflow with weekly scheduled scans
- Added comprehensive Gradle build workflow with unit tests, integration tests, and distributed tests
- Configured workflows to trigger on push and pull request events to support/1.15 branch
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 12 comments.
| File | Description |
|---|---|
| .github/workflows/gradle.yml | Comprehensive CI workflow with build validation, API checks, and multiple test suites (unit, integration, acceptance, distributed) |
| .github/workflows/codeql.yml | Security scanning workflow with CodeQL analysis for multiple languages (Go, Java, JavaScript, Python) |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| # limitations under the License. | ||
| # | ||
|
|
||
| name: develop |
Copilot
AI
Jan 17, 2026
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.
The workflow name is set to "develop" but this workflow is for the support/1.15 branch. The name should be updated to accurately reflect the branch it's targeting, such as "support/1.15" or "Support 1.15 CI".
| name: develop | |
| name: Support 1.15 CI |
| - name: Set JAVA_TEST_PATH to 8 | ||
| run: | | ||
| echo "JAVA_TEST_PATH=${JAVA_HOME_8_X64}" >> $GITHUB_ENV | ||
| if: matrix.java == '8' |
Copilot
AI
Jan 17, 2026
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.
The JAVA_TEST_PATH environment variable is not set before being used in the gradlewStrict command. The "Set JAVA_TEST_PATH to 8" step only runs when matrix.java equals '8', but JAVA_TEST_PATH is used regardless. This will cause the variable to be undefined if the condition isn't met, or in this case since matrix.java is hardcoded to '8', the step should always run, making the condition unnecessary.
| if: matrix.java == '8' |
| - name: Set JAVA_TEST_PATH to 8 | ||
| run: | | ||
| echo "JAVA_TEST_PATH=${JAVA_HOME_8_X64}" >> $GITHUB_ENV | ||
| if: matrix.java == '8' |
Copilot
AI
Jan 17, 2026
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.
The JAVA_TEST_PATH environment variable is not set before being used in the gradlewStrict command on line 122. The "Set JAVA_TEST_PATH to 8" step only runs when matrix.java equals '8', but since matrix.java is hardcoded to '8' in the matrix, the conditional check is redundant. Either remove the condition or ensure JAVA_TEST_PATH is always set before use.
| if: matrix.java == '8' |
| - name: Run cq distributed tests | ||
| run: | | ||
| GRADLE_JVM_PATH=${JAVA_HOME_8_X64} | ||
| JAVA_BUILD_PATH=${JAVA_HOME_8_X64} | ||
| JAVA_BUILD_VERSION=8 | ||
| JAVA_TEST_VERSION=8 | ||
| cp gradlew gradlewStrict | ||
| sed -e 's/JAVA_HOME/GRADLE_JVM/g' -i.back gradlewStrict | ||
| GRADLE_JVM=${GRADLE_JVM_PATH} JAVA_TEST_PATH=${JAVA_TEST_PATH} ./gradlewStrict \ | ||
| --parallel -PparallelDunit --max-workers=6 \ | ||
| -PcompileJVM=${JAVA_BUILD_PATH} \ | ||
| -PcompileJVMVer=${JAVA_BUILD_VERSION} \ | ||
| -PtestJVM=${JAVA_TEST_PATH} \ | ||
| -PtestJVMVer=${JAVA_TEST_VERSION} \ | ||
| -PtestJava8Home=${JAVA_HOME_8_X64} \ | ||
| geode-cq:distributedTest --console=plain --no-daemon |
Copilot
AI
Jan 17, 2026
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.
The JAVA_TEST_PATH environment variable is used on line 303 but is never set in this job. This job is missing the "Set JAVA_TEST_PATH" step that appears in other jobs, which will result in JAVA_TEST_PATH being undefined during execution.
| - name: Run gfsh, web-mgmt, web distributed tests | ||
| run: | | ||
| GRADLE_JVM_PATH=${JAVA_HOME_8_X64} | ||
| JAVA_BUILD_PATH=${JAVA_HOME_8_X64} | ||
| JAVA_BUILD_VERSION=8 | ||
| JAVA_TEST_VERSION=8 | ||
| cp gradlew gradlewStrict | ||
| sed -e 's/JAVA_HOME/GRADLE_JVM/g' -i.back gradlewStrict | ||
| GRADLE_JVM=${GRADLE_JVM_PATH} JAVA_TEST_PATH=${JAVA_TEST_PATH} ./gradlewStrict \ | ||
| --no-parallel \ | ||
| --max-workers=6 \ | ||
| -PcompileJVM=${JAVA_BUILD_PATH} \ | ||
| -PcompileJVMVer=${JAVA_BUILD_VERSION} \ | ||
| -PtestJVM=${JAVA_TEST_PATH} \ | ||
| -PtestJVMVer=${JAVA_TEST_VERSION} \ | ||
| -PtestJava8Home=${JAVA_HOME_8_X64} \ | ||
| geode-gfsh:distributedTest \ | ||
| geode-web:distributedTest \ | ||
| geode-web-management:distributedTest --console=plain --no-daemon |
Copilot
AI
Jan 17, 2026
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.
The JAVA_TEST_PATH environment variable is used on line 393 but is never set in this job. This job is missing the "Set JAVA_TEST_PATH" step that appears in other jobs, which will result in JAVA_TEST_PATH being undefined during execution.
| - name: Run acceptance tests | ||
| run: | | ||
| GRADLE_JVM_PATH=${JAVA_HOME_8_X64} | ||
| JAVA_BUILD_PATH=${JAVA_HOME_8_X64} | ||
| JAVA_BUILD_VERSION=8 | ||
| JAVA_TEST_VERSION=8 | ||
| cp gradlew gradlewStrict | ||
| sed -e 's/JAVA_HOME/GRADLE_JVM/g' -i.back gradlewStrict | ||
| GRADLE_JVM=${GRADLE_JVM_PATH} JAVA_TEST_PATH=${JAVA_TEST_PATH} ./gradlewStrict \ | ||
| --no-parallel \ | ||
| -PcompileJVM=${JAVA_BUILD_PATH} \ | ||
| -PcompileJVMVer=${JAVA_BUILD_VERSION} \ | ||
| -PtestJVM=${JAVA_TEST_PATH} \ | ||
| -PtestJVMVer=${JAVA_TEST_VERSION} \ | ||
| -PtestJava8Home=${JAVA_HOME_8_X64} \ | ||
| acceptanceTest --console=plain --no-daemon |
Copilot
AI
Jan 17, 2026
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.
The JAVA_TEST_PATH environment variable is used on line 213 but is never set in this job. This job is missing the "Set JAVA_TEST_PATH" step that appears in other jobs, which will result in JAVA_TEST_PATH being undefined during execution.
| - name: Run wan distributed tests | ||
| run: | | ||
| GRADLE_JVM_PATH=${JAVA_HOME_8_X64} | ||
| JAVA_BUILD_PATH=${JAVA_HOME_8_X64} | ||
| JAVA_BUILD_VERSION=8 | ||
| JAVA_TEST_VERSION=8 | ||
| cp gradlew gradlewStrict | ||
| sed -e 's/JAVA_HOME/GRADLE_JVM/g' -i.back gradlewStrict | ||
| GRADLE_JVM=${GRADLE_JVM_PATH} JAVA_TEST_PATH=${JAVA_TEST_PATH} ./gradlewStrict \ | ||
| --parallel \ | ||
| -PparallelDunit \ | ||
| --max-workers=6 \ | ||
| -PcompileJVM=${JAVA_BUILD_PATH} \ | ||
| -PcompileJVMVer=${JAVA_BUILD_VERSION} \ | ||
| -PtestJVM=${JAVA_TEST_PATH} \ | ||
| -PtestJVMVer=${JAVA_TEST_VERSION} \ | ||
| -PtestJava8Home=${JAVA_HOME_8_X64} \ | ||
| geode-wan:distributedTest --console=plain --no-daemon |
Copilot
AI
Jan 17, 2026
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.
The JAVA_TEST_PATH environment variable is used on line 257 but is never set in this job. This job is missing the "Set JAVA_TEST_PATH" step that appears in other jobs, which will result in JAVA_TEST_PATH being undefined during execution.
| - name: Run lucene distributed tests | ||
| run: | | ||
| GRADLE_JVM_PATH=${JAVA_HOME_8_X64} | ||
| JAVA_BUILD_PATH=${JAVA_HOME_8_X64} | ||
| JAVA_BUILD_VERSION=8 | ||
| JAVA_TEST_VERSION=8 | ||
| cp gradlew gradlewStrict | ||
| sed -e 's/JAVA_HOME/GRADLE_JVM/g' -i.back gradlewStrict | ||
| GRADLE_JVM=${GRADLE_JVM_PATH} JAVA_TEST_PATH=${JAVA_TEST_PATH} ./gradlewStrict \ | ||
| --parallel \ | ||
| -PparallelDunit \ | ||
| --max-workers=6 \ | ||
| -PcompileJVM=${JAVA_BUILD_PATH} \ | ||
| -PcompileJVMVer=${JAVA_BUILD_VERSION} \ | ||
| -PtestJVM=${JAVA_TEST_PATH} \ | ||
| -PtestJVMVer=${JAVA_TEST_VERSION} \ | ||
| -PtestJava8Home=${JAVA_HOME_8_X64} \ | ||
| geode-lucene:distributedTest --console=plain --no-daemon |
Copilot
AI
Jan 17, 2026
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.
The JAVA_TEST_PATH environment variable is used on line 347 but is never set in this job. This job is missing the "Set JAVA_TEST_PATH" step that appears in other jobs, which will result in JAVA_TEST_PATH being undefined during execution.
| - name: Run assembly, connectors, old-client, extensions distributed tests | ||
| run: | | ||
| GRADLE_JVM_PATH=${JAVA_HOME_8_X64} | ||
| JAVA_BUILD_PATH=${JAVA_HOME_8_X64} | ||
| JAVA_BUILD_VERSION=8 | ||
| JAVA_TEST_VERSION=8 | ||
| cp gradlew gradlewStrict | ||
| sed -e 's/JAVA_HOME/GRADLE_JVM/g' -i.back gradlewStrict | ||
| GRADLE_JVM=${GRADLE_JVM_PATH} JAVA_TEST_PATH=${JAVA_TEST_PATH} ./gradlewStrict \ | ||
| --no-parallel \ | ||
| --max-workers=6 \ | ||
| -PcompileJVM=${JAVA_BUILD_PATH} \ | ||
| -PcompileJVMVer=${JAVA_BUILD_VERSION} \ | ||
| -PtestJVM=${JAVA_TEST_PATH} \ | ||
| -PtestJVMVer=${JAVA_TEST_VERSION} \ | ||
| -PtestJava8Home=${JAVA_HOME_8_X64} \ | ||
| geode-assembly:distributedTest \ | ||
| geode-dunit:distributedTest \ | ||
| geode-connectors:distributedTest \ | ||
| geode-old-client:distributedTest \ | ||
| extensions:geode-modules:distributedTest \ | ||
| extensions:geode-modules-tomcat10:distributedTest --console=plain --no-daemon |
Copilot
AI
Jan 17, 2026
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.
The JAVA_TEST_PATH environment variable is used on line 441 but is never set in this job. This job is missing the "Set JAVA_TEST_PATH" step that appears in other jobs, which will result in JAVA_TEST_PATH being undefined during execution.
| # The branches below must be a subset of the branches above | ||
| branches: [ support/1.15 ] | ||
| schedule: | ||
| - cron: '22 22 * * 2' |
Copilot
AI
Jan 17, 2026
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.
The cron expression contains a typo. Line 38 has "- cron:" which is likely missing proper indentation. YAML list items should be indented consistently with surrounding items. It should be " - cron:" (with 2 spaces) to align with the schedule list structure.
| - cron: '22 22 * * 2' | |
| - cron: '22 22 * * 2' |
JinwooHwang
left a comment
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.
@sboorlagadda , thanks for this clean backport to support/1.15! I've reviewed the changes thoroughly and everything looks excellent.
I verified that all tests have been preserved. All 10 workflow jobs and 15 Gradle test tasks are maintained. The changes are consistent throughout, with systematic Java 17 to 8 updates across both gradle.yml and codeql.yml. The branch triggers have been correctly updated to support/1.15, which is appropriate for this backport.
This is exactly what a support branch backport should look like with infrastructure-only changes and full test coverage maintained. Great work!
Add GitHub Actions workflow files to support/1.15 branch to enable automated CI/CD checks for pull requests targeting this branch.
This change adds two workflow files:
The workflows will run on:
This ensures that dependency updates and security fixes submitted to the support/1.15 branch are properly validated before merge.
For all changes, please confirm:
develop)?gradlew buildrun cleanly?