docs(skill): record jvmmodel-batch learnings in xtend-to-java #3859
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: verify | |
| on: | |
| pull_request: | |
| jobs: | |
| pmd: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - uses: actions/setup-java@dd06d9cba3e5552c54d9f8ea23572deb30010f7c # v6.0.0 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '21' | |
| - name: Set up Workspace Environment Variable | |
| run: echo "WORKSPACE=${{ github.workspace }}" >> $GITHUB_ENV | |
| - name: PMD Check | |
| run: mvn pmd:pmd pmd:cpd pmd:check pmd:cpd-check -f ./ddk-parent/pom.xml --batch-mode --fail-at-end | |
| checkstyle: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - uses: actions/setup-java@dd06d9cba3e5552c54d9f8ea23572deb30010f7c # v6.0.0 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '21' | |
| - name: Set up Workspace Environment Variable | |
| run: echo "WORKSPACE=${{ github.workspace }}" >> $GITHUB_ENV | |
| - name: Checkstyle Check | |
| run: mvn checkstyle:checkstyle checkstyle:check -f ./ddk-parent/pom.xml --batch-mode --fail-at-end | |
| line-endings: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Check LF line endings | |
| run: bash .github/scripts/check-line-endings.sh | |
| maven-verify: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| # Full history: Tycho's jgit build-qualifier derives each bundle's qualifier | |
| # from the last commit touching it. A shallow clone truncates that history, so | |
| # every bundle falls back to the HEAD (merge-ref) timestamp — inflating all | |
| # qualifiers and making compare-version-with-baselines fail on unchanged | |
| # bundles ("Only qualifier changed"). snapshot.yml already fetches full history. | |
| fetch-depth: 0 | |
| - name: Set up JDK 21 | |
| uses: actions/setup-java@dd06d9cba3e5552c54d9f8ea23572deb30010f7c # v6.0.0 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '21' | |
| - name: Log Maven version | |
| run: mvn --version | |
| - name: Set up Workspace Environment Variable | |
| run: echo "WORKSPACE=${{ github.workspace }}" >> $GITHUB_ENV | |
| - name: Restore Maven dependency cache | |
| # Restore-only: PR scopes cannot share caches with each other, so per-PR | |
| # saves are dead weight that evicts the useful master-scoped caches | |
| # (10 GB repo budget). The producer is snapshot.yml on master pushes | |
| # (Linux-maven-publish-*). Path and key must mirror snapshot.yml exactly: | |
| # the literal path spec is hashed into the cache *version*, so any | |
| # variation (~/.m2 vs /home/runner/.m2) makes its caches unmatchable. | |
| uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 | |
| with: | |
| path: ~/.m2/repository | |
| key: ${{ runner.os }}-maven-publish-${{ hashFiles('**/pom.xml', '**/*.target') }} | |
| restore-keys: ${{ runner.os }}-maven-publish- | |
| - name: Drop cached p2 metadata for the DDK update site | |
| # The restored blob persists Tycho's HTTP cache (~/.m2/repository/.cache/tycho). | |
| # Tycho's cache-first transport never revalidates cached 404/301 entries, and | |
| # p2/releases/latest + p2/snapshots/latest are moving pointers, so a stale blob | |
| # silently disables the compare-version-with-baselines gate (the mojo has no | |
| # "baseline not found" branch and passes vacuously). Deleting only the DDK hosts | |
| # forces a fresh metadata fetch (a few KB) while keeping eclipse.org metadata and | |
| # all downloaded artifacts cached. | |
| run: rm -rf ~/.m2/repository/.cache/tycho/https/dsldevkit.github.io ~/.m2/repository/.cache/tycho/https/ddk.tools.avaloq.com | |
| - name: Build with Maven within a virtual X Server Environment | |
| # Run pmd:pmd and pmd:cpd first to generate reports for all modules, then run pmd:check and pmd:cpd-check | |
| # This ensures all violations are collected and reported before the build fails | |
| run: xvfb-run mvn clean verify checkstyle:check pmd:pmd pmd:cpd pmd:check pmd:cpd-check spotbugs:check -f ./ddk-parent/pom.xml --batch-mode --fail-at-end | |
| - name: Fail on missing surefire reports | |
| if: always() | |
| run: bash .github/scripts/check-surefire-reports.sh | |
| - name: Archive Tycho Surefire Plugin | |
| if: ${{ failure() }} | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | |
| with: | |
| name: tycho-surefire-plugin | |
| path: ${{ env.GITHUB_WORKSPACE }}/com.avaloq.tools.ddk.xtext.test/target/work/data/.metadata/.log |