From 14782a2a09c15e7ae5bd0725451990bb95f6803f Mon Sep 17 00:00:00 2001 From: Dawid Weiss Date: Thu, 6 Jun 2024 15:35:55 +0200 Subject: [PATCH] Add a github workflow that checks common (and less common) gradle tasks when gradle version is changed (#13456) --- .../workflows/run-checks-gradle-upgrade.yml | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 .github/workflows/run-checks-gradle-upgrade.yml diff --git a/.github/workflows/run-checks-gradle-upgrade.yml b/.github/workflows/run-checks-gradle-upgrade.yml new file mode 100644 index 00000000000..751c3471b51 --- /dev/null +++ b/.github/workflows/run-checks-gradle-upgrade.yml @@ -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 ] + + 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 }} + 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 }}