Skip to content
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

Add a github workflow that checks common (and less common) gradle tasks when gradle version is changed #13456

Merged
merged 23 commits into from
Jun 6, 2024
Merged
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
6f87e60
Run misc gradle tasks on gradle upgrade to make sure everything works.
dweiss Jun 5, 2024
f9b7b57
Correct syntax.
dweiss Jun 5, 2024
9b8c141
Run workflow on the branch.
dweiss Jun 5, 2024
decd47b
Add more targets.
dweiss Jun 5, 2024
ceffcde
Try to install libjson-perl for regenerate.
dweiss Jun 5, 2024
74cccc8
Try to install libjson-perl for regenerate.
dweiss Jun 5, 2024
e15b936
Try to install libwww-perl for regenerate.
dweiss Jun 5, 2024
f56a4e3
Reset after regenerate.
dweiss Jun 5, 2024
a98e077
Reset and clean after regenerate.
dweiss Jun 5, 2024
a7c75a9
Add reporting of regenerate status.
dweiss Jun 5, 2024
5bbc5ae
Remove self-branch.
dweiss Jun 5, 2024
0d04d76
Trying out a matrix-combination workflow so that it runs with RUNTIME…
dweiss Jun 6, 2024
83fc3aa
Correct indent.
dweiss Jun 6, 2024
882915d
Add self branch so that I can experiment locally.
dweiss Jun 6, 2024
dd9175f
Merge remote-tracking branch 'origin/main' into run-misc-gradle-tasks…
dweiss Jun 6, 2024
c08459a
Merge remote-tracking branch 'origin/main' into run-misc-gradle-tasks…
dweiss Jun 6, 2024
75f1c75
Force action re-run.
dweiss Jun 6, 2024
666f36b
Copy the default jdk to /tmp to force gradle to pick it up as an alte…
dweiss Jun 6, 2024
3feea19
Correct rsync options.
dweiss Jun 6, 2024
e17a139
Rsync the contents of the jdk folder.
dweiss Jun 6, 2024
ea14739
Add all tasks back and do a final run.
dweiss Jun 6, 2024
eab3ab8
Change job description.
dweiss Jun 6, 2024
640b564
Remove local branch.
dweiss Jun 6, 2024
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
88 changes: 88 additions & 0 deletions .github/workflows/run-checks-gradle-upgrade.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: "Run checks: gradle upgrade"

on:
workflow_dispatch:

pull_request:
branches:
- 'main'
- 'branch_9x'
paths:
- '.github/workflows/run-checks-gradle-upgrade.yml'
- 'gradle/wrapper/**'

push:
branches:
- 'main'
- 'branch_9x'
paths:
- '.github/workflows/run-checks-gradle-upgrade.yml'
- 'gradle/wrapper/**'

env:
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}

jobs:
gradleSanityCheck:
name: "Run tasks (java: ${{ matrix.java-version }}, alt-java: ${{ matrix.uses-alt-java }})"
timeout-minutes: 30

strategy:
matrix:
os: [ ubuntu-latest ]
java-version: [ '22' ]
uses-alt-java: [ true, false ]
Copy link
Contributor Author

Choose a reason for hiding this comment

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

this is the configuration matrix switch that is used to control whether the build runs with a separate RUNTIME_JAVA_HOME or without it.


runs-on: ${{ matrix.os }}

env:
ALT_JAVA_DIR: /tmp/alt-java

steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/prepare-for-build
with:
java-version: ${{ matrix.java-version }}

- name: Set up RUNTIME_JAVA_HOME variable
if: ${{ matrix.uses-alt-java }}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

If we're running with the "uses-alt-java" switch, we set up an "alternative" java distribution under /tmp and use it to execute the same set of gradle tasks.

run: |
echo "All installed JDKs:"
set | grep "JAVA"

echo "Gradle's 'RUNTIME_JAVA_HOME' JDK:"
RUNTIME_JAVA_HOME_VAR=JAVA_HOME_`echo ${{ matrix.java-version }} | egrep --only "[0-9]+"`_X64
echo ${RUNTIME_JAVA_HOME_VAR} points at ${!RUNTIME_JAVA_HOME_VAR}

# Copy the JDK from its default location to /tmp so that it appears different to gradle.
rsync -av ${!RUNTIME_JAVA_HOME_VAR}/ ${{ env.ALT_JAVA_DIR }}/

# This sets the environment variable and makes it available for subsequent job steps.
# https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable
echo "RUNTIME_JAVA_HOME=${{ env.ALT_JAVA_DIR }}" >> "$GITHUB_ENV"

- run: ./gradlew -p lucene/core check -x test

- name: ./gradlew regenerate
run: |
# add this package for generateEmojiTokenizationTestChecksumLoad.
sudo apt-get install libwww-perl
./gradlew regenerate -x generateUAX29URLEmailTokenizerInternal --rerun-tasks
if [ ! -z "$(git status --porcelain)" ]; then
echo ":warning: **regenerateleft local checkout in modified state**" >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
git status --porcelain >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
git reset --hard && git clean -xfd .
fi

- run: ./gradlew testOpts
- run: ./gradlew helpWorkflow
- run: ./gradlew licenses updateLicenses
- run: ./gradlew tidy
- run: ./gradlew check -x test
- run: ./gradlew assembleRelease mavenToLocal

# Conserve resources: only run these in non-alt-java mode.
- run: ./gradlew getGeoNames
if: ${{ !matrix.uses-alt-java }}