Skip to content

[Feature Request] Add Eclipse version compatibility CI workflow #16

Description

@unknowIfGuestInDream

Describe the feature

参考实现
tlcsdm/eclipse-openexplorer#27

Adds a CI matrix build to verify the plugin compiles against multiple Eclipse release target platforms (2024-06 through 2026-03), parameterized via Maven properties so the same code can be validated against any target without modifying source files.

  • targets/ — 8 target platform files (2024-06, 2024-09, 2024-12, 2025-03, 2025-06, 2025-09, 2025-12, 2026-03), each pointing at https://mirrors.aliyun.com/eclipse/releases/<version>/.
  • target-platform.target — default baseline target that includes targets/2024-06.target via <location type="Target" uri="file:${project_loc:/com.tlcsdm.eclipse.openexplorer}/../../targets/2024-06.target"/>, so the baseline definition lives in a single source of truth.
  • pom.xml — introduces:
    • target.platform.file consumed by target-platform-configuration as <file>../../${target.platform.file}</file>, defaulting to target-platform.target.
    • target.resolve.with.ee.constraints consumed by target-platform-configuration as <resolveWithExecutionEnvironmentConstraints>${target.resolve.with.ee.constraints}</resolveWithExecutionEnvironmentConstraints>, defaulting to true.
  • compatibility.yml — workflow Maven invocation now:
    • quotes -Dtarget.platform.file=... to avoid Windows PowerShell argument splitting errors.
    • sets -Dtarget.resolve.with.ee.constraints per matrix target (true for 2024-* and false for 2025-03+), so newer Eclipse targets that require JavaSE-21 can still be resolved in compatibility checks while preserving strict EE-constrained behavior for baseline targets.

新增的target文件中引用的依赖与当前项目的target-platform.target 一致
compatibility.yml 参考

name: Eclipse Version Compatibility

on:
  pull_request:
    branches: [ master ]
    paths-ignore:
      - '**/*.md'
      - 'LICENSE'
      - '.gitignore'
      - '.gitattributes'
      - '.github/**'
  workflow_dispatch:

permissions:
  contents: read

jobs:
  compatibility:
    strategy:
      fail-fast: false
      matrix:
        target:
          - 2024-06
          - 2024-09
          - 2024-12
          - 2025-03
          - 2025-06
          - 2025-09
          - 2025-12
          - 2026-03
    runs-on: windows-latest
    name: Eclipse ${{ matrix.target }}

    steps:
    - uses: actions/checkout@v6
    - name: Set up JDK 21
      uses: actions/setup-java@v5
      with:
        distribution: 'temurin'
        java-version: '21'
        cache: 'maven'
    - name: Set up Maven
      uses: stCarolas/setup-maven@v5
      with:
        maven-version: '3.9.9'
    - name: Build with Maven against Eclipse ${{ matrix.target }}
      # Plugin is currently JavaSE-17, so 2025-03+ targets (with JavaSE-21 IUs) disable EE constraints here.
      # If the plugin baseline is upgraded to JavaSE-21, this split can be removed and EE constraints can stay enabled.
      run: mvn -B clean verify -ntp "-Dtarget.platform.file=targets/${{ matrix.target }}.target" "-Dtarget.resolve.with.ee.constraints=${{ startsWith(matrix.target, '2024-') && 'true' || 'false' }}"

Describe the solution you'd lik

No response

Describe alternatives you've considered

No response

Additional context

No response

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions