1+ name : Linux Builds
2+
3+ on :
4+ workflow_call :
5+ inputs :
6+ refLsp4ij :
7+ description : ' Reference/branch for Lsp4ij checkout'
8+ type : string
9+ required : true
10+ default : main
11+ lsp4ijBranch :
12+ description : ' PR number or branch name for Artifact upload'
13+ type : string
14+ required : true
15+ useLocalPlugin :
16+ description : ' Use lsp4ij locally'
17+ required : true
18+ type : boolean
19+ default : false
20+ refLTITag :
21+ description : ' Reference LTI Tag/Branch'
22+ type : string
23+ required : true
24+ default : main
25+
26+ jobs :
27+ fetch_merge_commit_sha_from_lsp4ij_PR :
28+ runs-on : ubuntu-latest
29+ outputs :
30+ pr_details : ${{ steps.extract.outputs.pr_details }}
31+ checkout_name : ${{ steps.extract.outputs.checkout_name }}
32+ env :
33+ API_URL : https://api.github.com/repos/redhat-developer/lsp4ij/pulls
34+ REF_LSP4IJ : ${{ inputs.refLsp4ij }}
35+ LSP4IJ_BRANCH : ${{ inputs.lsp4ijBranch }}
36+ name : Fetch Commit
37+ steps :
38+ - name : Extract Merge Commit SHA
39+ shell : bash
40+ id : extract
41+ run : |
42+ pr_details="${{ env.REF_LSP4IJ }}"
43+ checkout_name="${{ env.LSP4IJ_BRANCH }}"
44+ echo "pr_details=$pr_details" >> $GITHUB_OUTPUT
45+ echo "checkout_name=$checkout_name" >> $GITHUB_OUTPUT
46+
47+ linux-tests :
48+ needs : fetch_merge_commit_sha_from_lsp4ij_PR
49+ runs-on : ubuntu-latest
50+ name : ${{ matrix.test-group }}
51+ strategy :
52+ fail-fast : false
53+ matrix :
54+ test-group :
55+ - LSP4Jakarta-Unit
56+ - Maven-MicroProfile
57+ - Gradle-MicroProfile
58+ - Maven-Custom-Liberty-Install
59+ - Gradle-Custom-Liberty-Install
60+ - Maven-MP-Config
61+ - Gradle-MP-Config
62+ - Maven-MP-SID
63+ - Gradle-MP-SID
64+ - Maven-NLT-REST
65+ - Gradle-NLT-REST
66+ - Gradle-Language-Server
67+ - Gradle-MP-Language-Server
68+ - Gradle-Jakarta-Language-Server
69+ - Maven-Multi-Module-MP
70+ include :
71+ - test-group : LSP4Jakarta-Unit
72+ test-class : " io.openliberty.tools.intellij.lsp4jakarta.it.*"
73+ - test-group : Maven-MicroProfile
74+ test-class : io.openliberty.tools.intellij.it.MavenSingleModMPProjectTest
75+ - test-group : Gradle-MicroProfile
76+ test-class : io.openliberty.tools.intellij.it.GradleSingleModMPProjectTest
77+ - test-group : Maven-Custom-Liberty-Install
78+ test-class : io.openliberty.tools.intellij.it.MavenSingleModCustomWLPInstallProjectTest
79+ - test-group : Gradle-Custom-Liberty-Install
80+ test-class : io.openliberty.tools.intellij.it.GradleSingleModCustomWLPInstallProjectTest
81+ - test-group : Maven-MP-Config
82+ test-class : io.openliberty.tools.intellij.it.MavenSingleModMPCfgProjectTest
83+ - test-group : Gradle-MP-Config
84+ test-class : io.openliberty.tools.intellij.it.GradleSingleModMPCfgProjectTest
85+ - test-group : Maven-MP-SID
86+ test-class : io.openliberty.tools.intellij.it.MavenSingleModMPSIDProjectTest
87+ - test-group : Gradle-MP-SID
88+ test-class : io.openliberty.tools.intellij.it.GradleSingleModMPSIDProjectTest
89+ - test-group : Maven-NLT-REST
90+ test-class : io.openliberty.tools.intellij.it.MavenSingleModNLTRestProjectTest
91+ - test-group : Gradle-NLT-REST
92+ test-class : io.openliberty.tools.intellij.it.GradleSingleModNLTRestProjectTest
93+ - test-group : Gradle-Language-Server
94+ test-class : io.openliberty.tools.intellij.it.GradleSingleModLSTest
95+ - test-group : Gradle-MP-Language-Server
96+ test-class : io.openliberty.tools.intellij.it.GradleSingleModMPLSTest
97+ - test-group : Gradle-Jakarta-Language-Server
98+ test-class : io.openliberty.tools.intellij.it.GradleSingleModJakartaLSTest
99+ - test-group : Maven-Multi-Module-MP
100+ test-class : io.openliberty.tools.intellij.it.MavenMPMultipleProjectTest
101+ env :
102+ USE_LOCAL_PLUGIN : ${{ inputs.useLocalPlugin || false }}
103+ REF_LSP4IJ : ${{ needs.fetch_merge_commit_sha_from_lsp4ij_PR.outputs.pr_details }}
104+ LSP4IJ_BRANCH : ${{ needs.fetch_merge_commit_sha_from_lsp4ij_PR.outputs.checkout_name }}
105+ REF_LTI_TAG : ${{ inputs.refLTITag }}
106+ TEST_CLASS : ${{ matrix.test-class }}
107+ steps :
108+ - name : ' Checkout liberty-tools-intellij'
109+ uses : actions/checkout@v4
110+ with :
111+ path : liberty-tools-intellij
112+ ref : ${{ env.REF_LTI_TAG }}
113+ - name : ' Install required integration test software'
114+ working-directory : ./liberty-tools-intellij
115+ run : bash ./src/test/resources/ci/scripts/setup.sh
116+
117+ # Checkout and build lsp4ij only if USE_LOCAL_PLUGIN is true
118+ - name : ' Checkout lsp4ij'
119+ if : ${{ inputs.useLocalPlugin == true }}
120+ uses : actions/checkout@v4
121+ with :
122+ repository : redhat-developer/lsp4ij
123+ path : lsp4ij
124+ ref : ${{ env.REF_LSP4IJ }}
125+ - name : ' Build Lsp4ij'
126+ if : ${{ inputs.useLocalPlugin == true }}
127+ working-directory : ./lsp4ij
128+ run : bash ./gradlew buildPlugin
129+ - name : ' Unzip lsp4ij file'
130+ if : ${{ inputs.useLocalPlugin == true }}
131+ working-directory : ./lsp4ij/build/distributions
132+ run : |
133+ unzip -o '*.zip' -d .
134+
135+ - name : ' Build Liberty-Tools-Intellij'
136+ working-directory : ./liberty-tools-intellij
137+ run : bash ./gradlew buildPlugin -PuseLocal=${{ env.USE_LOCAL_PLUGIN }}
138+ - name : ' Archive artifacts'
139+ if : ${{ matrix.test-group == 'LSP4Jakarta-Unit' && !failure() }}
140+ 141+ with :
142+ name : liberty-tools-intellij-LTI-${{ env.REF_LTI_TAG || 'default' }}-LSP4IJ-${{ env.LSP4IJ_BRANCH || 'default' }}
143+ path : |
144+ ./**/*liberty-tools-intellij*.zip
145+ ./**/libs/*liberty-tools-intellij*.jar
146+ if-no-files-found : warn
147+ retention-days : 7
148+ - name : ' Run tests'
149+ id : run_tests
150+ working-directory : ./liberty-tools-intellij
151+ run : bash ./src/test/resources/ci/scripts/run.sh
152+ - name : ' Archive Test logs and reports'
153+ if : ${{ failure() && steps.run_tests.conclusion == 'failure' }}
154+ 155+ with :
156+ name : linux-${{ matrix.test-group }}-test-report-LTI-${{ env.REF_LTI_TAG || 'default' }}-LSP4IJ-${{ env.LSP4IJ_BRANCH || 'default' }}
157+ path : |
158+ liberty-tools-intellij/build/reports/
0 commit comments