Skip to content

Merge pull request #1083 from turkeylurkey/refactor-IT #1793

Merge pull request #1083 from turkeylurkey/refactor-IT

Merge pull request #1083 from turkeylurkey/refactor-IT #1793

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:
runtime: [ linux, mac, windows ]
include:
- runtime: linux
os: ubuntu-latest
reportName: linux-test-report
- runtime: mac
os: macOS-latest
reportName: mac-test-report
- runtime: windows
os: windows-latest
reportName: windows-test-report
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/configure-pagefile-action@v1.4
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/upload-artifact@v4.3.4
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/upload-artifact@v4.3.4
with:
name: ${{ matrix.reportName }}-LTI-${{ env.REF_LTI_TAG || 'default' }}-LSP4IJ-${{ env.LSP4IJ_BRANCH }}
path: |
liberty-tools-intellij/build/reports/