Skip to content

multiple os

multiple os #1707

Workflow file for this run

name: Build
on:
workflow_call:
inputs:
refLsp4ij:
description: 'Reference/branch for Lsp4ij checkout'
type: string
required: true
default: main
lsp4ijBranch:
description: 'PR number or branch name for Artifact upload'
type: string
required: true
useLocalPlugin:
description: 'Use lsp4ij locally'
required: true
type: boolean
default: false
refLTITag:
description: 'Reference LTI Tag/Branch'
type: string
required: true
default: main
workflow_dispatch:
inputs:
useLocalPlugin:
description: 'Use lsp4ij locally'
required: true
type: boolean
default: false
refLsp4ij:
description: 'Reference/branch for Lsp4ij checkout'
type: string
required: true
default: main
refLTITag:
description: 'Reference LTI Tag/Branch'
type: string
required: false
default: main
push:
branches: '**'
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, macOS-latest, windows-latest, ubuntu-latest, macOS-latest, windows-latest ]
# Adding a check to verify if 'refLTITag' is equal to '24.0.9'.
# This code can be removed once the '24.0.9' version is removed from the 'tag' array in the cron job build, and the previous code can be added back.
is24.0.9:
- ${{ inputs.refLTITag == '24.0.9' }}
# Adding a check on macOS and Windows to verify if 'is24.0.9' is equal to 'true'. The value of 'is24.0.9' is used to determine whether the job need to be executed.
exclude:
- is24.0.9: true
os: windows-latest
- is24.0.9: true
os: macOS-latest
env:
USE_LOCAL_PLUGIN: ${{ inputs.useLocalPlugin || false }}
REF_LSP4IJ: ${{ inputs.refLsp4ij }}
LSP4IJ_BRANCH: ${{ inputs.lsp4ijBranch || 'default' }}
REF_LTI_TAG: ${{ inputs.refLTITag }}
steps:
- name: Configure pagefile
if: contains(matrix.os, 'windows')
uses: al-cheb/[email protected]
with:
minimum-size: 8GB
maximum-size: 10GB
disk-root: "C:"
- name: 'Checkout liberty-tools-intellij'
uses: actions/checkout@v4
with:
path: liberty-tools-intellij
ref: ${{ env.REF_LTI_TAG }}
- name: 'Install required integration test software'
working-directory: ./liberty-tools-intellij
run: bash ./src/test/resources/ci/scripts/setup.sh
# Checkout and build lsp4ij only if USE_LOCAL_PLUGIN is true
- name: 'Checkout lsp4ij'
if: ${{ inputs.useLocalPlugin == true }}
uses: actions/checkout@v4
with:
repository: redhat-developer/lsp4ij
path: lsp4ij
ref: ${{ env.REF_LSP4IJ }}
- name: 'Build Lsp4ij'
if: ${{ inputs.useLocalPlugin == true }}
working-directory: ./lsp4ij
run: bash ./gradlew buildPlugin
- name: 'Unzip lsp4ij file'
if: ${{ inputs.useLocalPlugin == true }}
working-directory: ./lsp4ij/build/distributions
run: |
unzip -o '*.zip' -d .
- name: 'Build Liberty-Tools-Intellij'
working-directory: ./liberty-tools-intellij
run: bash ./gradlew buildPlugin -PuseLocal=${{ env.USE_LOCAL_PLUGIN }}
- name: 'Archive artifacts'
if: ${{ runner.os == 'Linux' && !failure() }}
uses: actions/[email protected]
with:
name: liberty-tools-intellij-LTI-${{ env.REF_LTI_TAG || 'default' }}-LSP4IJ-${{ env.LSP4IJ_BRANCH }}
path: |
./**/*liberty-tools-intellij*.zip
./**/libs/*liberty-tools-intellij*.jar
if-no-files-found: warn
retention-days: 7
- name: 'Run UI integration tests'
id: run_tests
working-directory: ./liberty-tools-intellij
run: bash ./src/test/resources/ci/scripts/run.sh
- name: 'Archive Test logs and reports'
if: ${{ failure() && steps.run_tests.conclusion == 'failure' }}
uses: actions/[email protected]
with:
name: ${{ matrix.os }}-test-report-LTI-${{ env.REF_LTI_TAG || 'default' }}-LSP4IJ-${{ env.LSP4IJ_BRANCH }}
path: |
liberty-tools-intellij/build/reports/