From a68007e702c50bdd5dcb6c85e22f99fff7f4d5f3 Mon Sep 17 00:00:00 2001 From: Shai Almog <67850168+shai-almog@users.noreply.github.com> Date: Thu, 30 Apr 2026 17:04:45 +0300 Subject: [PATCH] CI: more cache coverage, drop redundant triggers and a duplicate build step MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Round 2 of CI optimizations. All low-risk; no test coverage changes. - parparvm-tests.yml: move cache: 'maven' from the 6th setup-java to the first JDK 8 install so dependency restore happens before the five JDK installs run, not after. - scripts-javascript.yml: cache codenameone-tools, scripts/node_modules, and ~/.cache/ms-playwright; skip the ~150 MB Chromium download on cache hit (still installs OS deps via install-deps). - developer-guide-docs.yml + website-docs.yml: drop ready_for_review trigger type (synchronize already covers the relevant transitions). - javadocs.yml: add path filter so it only runs when Java sources, the build script, or the workflow itself change. - codeql.yml: drop timeout-minutes from 360 (6h) to 60. A hung run shouldn't burn 6 hours of compute. - pr.yml: remove the "Build CLDC 11 VM" step — it ran the byte-identical ant command as "Build CLDC11 JAR" earlier in the same job. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/codeql.yml | 2 +- .github/workflows/developer-guide-docs.yml | 1 - .github/workflows/javadocs.yml | 6 ++++ .github/workflows/parparvm-tests.yml | 4 +-- .github/workflows/pr.yml | 8 ----- .github/workflows/scripts-javascript.yml | 34 +++++++++++++++++++++- .github/workflows/website-docs.yml | 1 - 7 files changed, 42 insertions(+), 14 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 258cdba6b4..0fd2780e8a 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -12,7 +12,7 @@ jobs: analyze: name: Analyze (${{ matrix.language }}) runs-on: ubuntu-latest - timeout-minutes: 360 + timeout-minutes: 60 permissions: security-events: write packages: read diff --git a/.github/workflows/developer-guide-docs.yml b/.github/workflows/developer-guide-docs.yml index 48271df408..f06b8ca621 100644 --- a/.github/workflows/developer-guide-docs.yml +++ b/.github/workflows/developer-guide-docs.yml @@ -2,7 +2,6 @@ name: Build Developer Guide Docs on: pull_request: - types: [opened, synchronize, reopened, ready_for_review] paths: - 'docs/developer-guide/**' - 'docs/demos/**' diff --git a/.github/workflows/javadocs.yml b/.github/workflows/javadocs.yml index 54ac0c5fc5..2f7d55ddbd 100644 --- a/.github/workflows/javadocs.yml +++ b/.github/workflows/javadocs.yml @@ -2,6 +2,12 @@ name: Build JavaDocs on: pull_request: + paths: + - 'CodenameOne/src/**/*.java' + - 'Ports/**/src/**/*.java' + - 'maven/**/src/main/java/**/*.java' + - '.github/scripts/build_javadocs.sh' + - '.github/workflows/javadocs.yml' push: branches: - master diff --git a/.github/workflows/parparvm-tests.yml b/.github/workflows/parparvm-tests.yml index ed10c76942..eac387504c 100644 --- a/.github/workflows/parparvm-tests.yml +++ b/.github/workflows/parparvm-tests.yml @@ -38,6 +38,7 @@ jobs: with: distribution: 'temurin' java-version: '8' + cache: 'maven' - name: Save JDK 8 Path run: echo "JDK_8_HOME=$JAVA_HOME" >> $GITHUB_ENV @@ -73,13 +74,12 @@ jobs: - name: Save JDK 25 Path run: echo "JDK_25_HOME=$JAVA_HOME" >> $GITHUB_ENV - # Restore JDK 8 as the main runner + # Restore JDK 8 as the main runner (cache is on the first setup-java JDK 8 above) - name: Restore JDK 8 uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: '8' - cache: 'maven' - name: Set up Node uses: actions/setup-node@v4 diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index d0da658e81..d6f7017c9a 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -347,14 +347,6 @@ jobs: - name: Build iOS VM run: mvn -f vm/ByteCodeTranslator/pom.xml package - - name: Build CLDC 11 VM - run: | - ANT_OPTS_ARGS="" - if [ "${{ matrix.java-version }}" != "8" ]; then - ANT_OPTS_ARGS="-Djavac.source=1.8 -Djavac.target=1.8" - fi - ant $ANT_OPTS_ARGS -noinput -buildfile Ports/CLDC11/build.xml jar - - name: Upload a Build Artifact if: matrix.java-version == 8 uses: actions/upload-artifact@v4 diff --git a/.github/workflows/scripts-javascript.yml b/.github/workflows/scripts-javascript.yml index a6015f5431..e6aa710c32 100644 --- a/.github/workflows/scripts-javascript.yml +++ b/.github/workflows/scripts-javascript.yml @@ -56,6 +56,17 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Set TMPDIR + run: echo "TMPDIR=${{ runner.temp }}" >> $GITHUB_ENV + + - name: Cache codenameone-tools + uses: actions/cache@v4 + with: + path: ${{ runner.temp }}/codenameone-tools + key: ${{ runner.os }}-cn1-tools-${{ hashFiles('scripts/setup-workspace.sh') }} + restore-keys: | + ${{ runner.os }}-cn1-tools- + - name: Set up Java 8 for ParparVM uses: actions/setup-java@v4 with: @@ -83,12 +94,33 @@ jobs: with: node-version: '20' + - name: Cache npm modules for scripts/ + uses: actions/cache@v4 + with: + path: scripts/node_modules + key: ${{ runner.os }}-scripts-npm-playwright-v1 + restore-keys: | + ${{ runner.os }}-scripts-npm- + + - name: Cache Playwright browsers + id: playwright-cache + uses: actions/cache@v4 + with: + path: ~/.cache/ms-playwright + key: ${{ runner.os }}-playwright-chromium-v1 + restore-keys: | + ${{ runner.os }}-playwright- + - name: Install Playwright Chromium run: | cd scripts npm init -y 2>/dev/null || true npm install playwright - npx playwright install --with-deps chromium + if [ "${{ steps.playwright-cache.outputs.cache-hit }}" = "true" ]; then + npx playwright install-deps chromium + else + npx playwright install --with-deps chromium + fi - name: Install Xvfb for headless Java AWT run: sudo apt-get update && sudo apt-get install -y xvfb diff --git a/.github/workflows/website-docs.yml b/.github/workflows/website-docs.yml index e9b96b289a..57cf4daa00 100644 --- a/.github/workflows/website-docs.yml +++ b/.github/workflows/website-docs.yml @@ -2,7 +2,6 @@ name: Build Hugo Website on: pull_request: - types: [opened, synchronize, reopened, ready_for_review] paths: - 'docs/website/**' - 'scripts/cn1playground/**'