Skip to content

[Build] Inherit basic config from 'basic' image for linux.x86_64 builder #1941

[Build] Inherit basic config from 'basic' image for linux.x86_64 builder

[Build] Inherit basic config from 'basic' image for linux.x86_64 builder #1941

Workflow file for this run

name: Build Equinox
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
strategy:
fail-fast: false
matrix:
config:
- { name: Linux, runner-os: ubuntu-latest, ws: gtk, os: linux, native-extension: so }
- { name: Windows, runner-os: windows-2019, ws: win32, os: win32, native-extension: dll }
- { name: MacOS, runner-os: macos-13, ws: cocoa, os: macosx, native-extension: so }
name: Build ${{ matrix.config.name }}
runs-on: ${{ matrix.config.runner-os }}
defaults:
run: # Run on cmd on Windows because powershell interprets dots in arguments differently
shell: ${{ matrix.config.os == 'win32' && 'cmd' || 'bash' }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # required for jgit timestamp provider to work
path: equinox
- name: checkout equinox.binaries
uses: actions/checkout@v4
with:
fetch-depth: 1 # only shallow here, we don't have jgit timestamps
repository: eclipse-equinox/equinox.binaries
path: equinox.binaries
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: |
8
17
mvn-toolchain-id: |
JavaSE-1.8
JavaSE-17
distribution: 'temurin'
cache: maven
- name: Set up Maven
uses: stCarolas/setup-maven@v5
with:
maven-version: 3.9.9
- name: Install GTK requirements
if: ${{ matrix.config.ws == 'gtk'}}
run: |
sudo apt-get update -q -y
sudo apt-get install -q -y libgtk-3-dev
- name: Build
env:
EQUINOX_BINARIES_LOC: ${{ github.workspace }}/equinox.binaries
working-directory: equinox
run: >-
mvn
--batch-mode
-Pbree-libs
-Papi-check
-Dcompare-version-with-baselines.skip=false
-Dmaven.test.failure.ignore=true
-Dnative=${{ matrix.config.ws }}.${{ matrix.config.os }}.x86_64
-Dequinox.binaries.loc=${{ github.workspace }}/equinox.binaries
clean verify
- name: Upload native artifacts
uses: actions/upload-artifact@v4
if: success()
with:
name: ${{ matrix.config.name }} launcher artifacts
path: |
equinox.binaries/org.eclipse.equinox.executable/bin/${{ matrix.config.ws }}/${{ matrix.config.os }}/x86_64/**/eclipse*
equinox.binaries/org.eclipse.equinox.launcher.${{ matrix.config.ws }}.${{ matrix.config.os }}.x86_64/eclipse_*.${{ matrix.config.native-extension }}
if-no-files-found: error
- name: Upload ${{ matrix.config.name }} Test Results
uses: actions/upload-artifact@v4
with:
name: test-results-${{ matrix.config.name }}64
if-no-files-found: error
path: '**/target/*-reports/*.xml'
tck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: |
8
17
mvn-toolchain-id: |
JavaSE-1.8
JavaSE-17
distribution: 'temurin'
cache: maven
- name: Set up Maven
uses: stCarolas/setup-maven@v5
with:
maven-version: 3.9.9
- name: Run OSGi TCKs
run: >-
mvn
-U
--batch-mode
--threads 1C
-Pbuild-individual-bundles
-Pbree-libs
-Ptck
-Dskip-default-modules=true
-Dtycho.resolver.classic=false
-fn
clean verify
- name: Upload TCK Results
uses: actions/upload-artifact@v4
if: always()
with:
name: tck-results
if-no-files-found: error
path: '**/target/tck-results/TEST-*.xml'
event_file:
name: "Upload Event File"
runs-on: ubuntu-latest
steps:
- name: Upload
uses: actions/upload-artifact@v4
with:
name: Event File
path: ${{ github.event_path }}