Skip to content

Build Equinox

Build Equinox #17

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 ]
workflow_dispatch:
jobs:
build:
strategy:
fail-fast: false
matrix:
config:
- { name: Linux, runner-os: ubuntu-20.04, ws: gtk, os: linux, arch: x86_64, native-extension: so }
- { name: Windows, runner-os: windows-2019, ws: win32, os: win32, arch: x86_64, native-extension: dll }
- { name: macOS, runner-os: macos-13, ws: cocoa, os: macosx, arch: x86_64, native-extension: so }
- { name: macOS, runner-os: macos-14, ws: cocoa, os: macosx, arch: aarch64, native-extension: so }
name: Build ${{ matrix.config.name }} ${{ matrix.config.arch }}
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: 'liberica'
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=true
-Dmaven.test.failure.ignore=true
-Dnative=${{ matrix.config.ws }}.${{ matrix.config.os }}.${{ matrix.config.arch }}
-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 }} ${{ matrix.config.arch }} launcher artifacts
path: |
equinox.binaries/org.eclipse.equinox.executable/bin/${{ matrix.config.ws }}/${{ matrix.config.os }}/${{ matrix.config.arch }}/**/eclipse*
equinox.binaries/org.eclipse.equinox.launcher.${{ matrix.config.ws }}.${{ matrix.config.os }}.${{ matrix.config.arch }}/eclipse_*.${{ matrix.config.native-extension }}
if-no-files-found: error
- name: Upload ${{ matrix.config.name }} ${{ matrix.config.arch }} Test Results
uses: actions/upload-artifact@v4
with:
name: test-results-${{ matrix.config.name }}${{ matrix.config.arch }}
if-no-files-found: error
path: '**/target/*-reports/*.xml'