Merge pull request #1083 from turkeylurkey/refactor-IT #1793
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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/ |