Skip to content

Conversation

@sboorlagadda
Copy link
Member

@sboorlagadda sboorlagadda commented Jan 17, 2026

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.

For all changes, please confirm:

  • Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?
  • Has your PR been rebased against the latest commit within the target branch (typically develop)?
  • Is your initial contribution a single, squashed commit?
  • Does gradlew build run cleanly?
  • Have you written or updated unit tests to verify your changes?
  • If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

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
Copy link

Copilot AI left a 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
Copy link

Copilot AI Jan 17, 2026

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".

Suggested change
name: develop
name: Support 1.15 CI

Copilot uses AI. Check for mistakes.
- name: Set JAVA_TEST_PATH to 8
run: |
echo "JAVA_TEST_PATH=${JAVA_HOME_8_X64}" >> $GITHUB_ENV
if: matrix.java == '8'
Copy link

Copilot AI Jan 17, 2026

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.

Suggested change
if: matrix.java == '8'

Copilot uses AI. Check for mistakes.
- name: Set JAVA_TEST_PATH to 8
run: |
echo "JAVA_TEST_PATH=${JAVA_HOME_8_X64}" >> $GITHUB_ENV
if: matrix.java == '8'
Copy link

Copilot AI Jan 17, 2026

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.

Suggested change
if: matrix.java == '8'

Copilot uses AI. Check for mistakes.
Comment on lines +295 to +310
- 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
Copy link

Copilot AI Jan 17, 2026

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.

Copilot uses AI. Check for mistakes.
Comment on lines +385 to +403
- 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
Copy link

Copilot AI Jan 17, 2026

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.

Copilot uses AI. Check for mistakes.
Comment on lines +205 to +220
- 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
Copy link

Copilot AI Jan 17, 2026

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.

Copilot uses AI. Check for mistakes.
Comment on lines +249 to +266
- 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
Copy link

Copilot AI Jan 17, 2026

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.

Copilot uses AI. Check for mistakes.
Comment on lines +339 to +356
- 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
Copy link

Copilot AI Jan 17, 2026

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.

Copilot uses AI. Check for mistakes.
Comment on lines +433 to +454
- 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
Copy link

Copilot AI Jan 17, 2026

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.

Copilot uses AI. Check for mistakes.
# The branches below must be a subset of the branches above
branches: [ support/1.15 ]
schedule:
- cron: '22 22 * * 2'
Copy link

Copilot AI Jan 17, 2026

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.

Suggested change
- cron: '22 22 * * 2'
- cron: '22 22 * * 2'

Copilot uses AI. Check for mistakes.
Copy link
Contributor

@JinwooHwang JinwooHwang left a 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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants