Skip to content

Commit d963780

Browse files
run builds in groups
1 parent ab09316 commit d963780

File tree

5 files changed

+564
-174
lines changed

5 files changed

+564
-174
lines changed

.github/workflows/build-linux.yaml

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
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+
uses: actions/[email protected]
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+
uses: actions/[email protected]
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/

.github/workflows/build-mac.yaml

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
name: Mac 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+
mac-tests:
48+
needs: fetch_merge_commit_sha_from_lsp4ij_PR
49+
runs-on: macOS-14
50+
name: ${{ matrix.test-group }}
51+
strategy:
52+
fail-fast: false
53+
matrix:
54+
test-group:
55+
- Maven-MicroProfile
56+
- Gradle-MicroProfile
57+
- Maven-Custom-Liberty-Install
58+
- Gradle-Custom-Liberty-Install
59+
- Maven-MP-Config
60+
- Gradle-MP-Config
61+
- Maven-MP-SID
62+
- Gradle-MP-SID
63+
- Maven-NLT-REST
64+
- Gradle-NLT-REST
65+
- Gradle-Language-Server
66+
- Gradle-MP-Language-Server
67+
- Gradle-Jakarta-Language-Server
68+
- Maven-Multi-Module-MP
69+
include:
70+
- test-group: Maven-MicroProfile
71+
test-class: io.openliberty.tools.intellij.it.MavenSingleModMPProjectTest
72+
- test-group: Gradle-MicroProfile
73+
test-class: io.openliberty.tools.intellij.it.GradleSingleModMPProjectTest
74+
- test-group: Maven-Custom-Liberty-Install
75+
test-class: io.openliberty.tools.intellij.it.MavenSingleModCustomWLPInstallProjectTest
76+
- test-group: Gradle-Custom-Liberty-Install
77+
test-class: io.openliberty.tools.intellij.it.GradleSingleModCustomWLPInstallProjectTest
78+
- test-group: Maven-MP-Config
79+
test-class: io.openliberty.tools.intellij.it.MavenSingleModMPCfgProjectTest
80+
- test-group: Gradle-MP-Config
81+
test-class: io.openliberty.tools.intellij.it.GradleSingleModMPCfgProjectTest
82+
- test-group: Maven-MP-SID
83+
test-class: io.openliberty.tools.intellij.it.MavenSingleModMPSIDProjectTest
84+
- test-group: Gradle-MP-SID
85+
test-class: io.openliberty.tools.intellij.it.GradleSingleModMPSIDProjectTest
86+
- test-group: Maven-NLT-REST
87+
test-class: io.openliberty.tools.intellij.it.MavenSingleModNLTRestProjectTest
88+
- test-group: Gradle-NLT-REST
89+
test-class: io.openliberty.tools.intellij.it.GradleSingleModNLTRestProjectTest
90+
- test-group: Gradle-Language-Server
91+
test-class: io.openliberty.tools.intellij.it.GradleSingleModLSTest
92+
- test-group: Gradle-MP-Language-Server
93+
test-class: io.openliberty.tools.intellij.it.GradleSingleModMPLSTest
94+
- test-group: Gradle-Jakarta-Language-Server
95+
test-class: io.openliberty.tools.intellij.it.GradleSingleModJakartaLSTest
96+
- test-group: Maven-Multi-Module-MP
97+
test-class: io.openliberty.tools.intellij.it.MavenMPMultipleProjectTest
98+
env:
99+
USE_LOCAL_PLUGIN: ${{ inputs.useLocalPlugin || false }}
100+
REF_LSP4IJ: ${{ needs.fetch_merge_commit_sha_from_lsp4ij_PR.outputs.pr_details }}
101+
LSP4IJ_BRANCH: ${{ needs.fetch_merge_commit_sha_from_lsp4ij_PR.outputs.checkout_name }}
102+
REF_LTI_TAG: ${{ inputs.refLTITag }}
103+
TEST_CLASS: ${{ matrix.test-class }}
104+
steps:
105+
- name: 'Checkout liberty-tools-intellij'
106+
uses: actions/checkout@v4
107+
with:
108+
path: liberty-tools-intellij
109+
ref: ${{ env.REF_LTI_TAG }}
110+
- name: 'Install required integration test software'
111+
working-directory: ./liberty-tools-intellij
112+
run: bash ./src/test/resources/ci/scripts/setup.sh
113+
114+
# Checkout and build lsp4ij only if USE_LOCAL_PLUGIN is true
115+
- name: 'Checkout lsp4ij'
116+
if: ${{ inputs.useLocalPlugin == true }}
117+
uses: actions/checkout@v4
118+
with:
119+
repository: redhat-developer/lsp4ij
120+
path: lsp4ij
121+
ref: ${{ env.REF_LSP4IJ }}
122+
- name: 'Build Lsp4ij'
123+
if: ${{ inputs.useLocalPlugin == true }}
124+
working-directory: ./lsp4ij
125+
run: bash ./gradlew buildPlugin
126+
- name: 'Unzip lsp4ij file'
127+
if: ${{ inputs.useLocalPlugin == true }}
128+
working-directory: ./lsp4ij/build/distributions
129+
run: |
130+
unzip -o '*.zip' -d .
131+
132+
- name: 'Build Liberty-Tools-Intellij'
133+
working-directory: ./liberty-tools-intellij
134+
run: bash ./gradlew buildPlugin -PuseLocal=${{ env.USE_LOCAL_PLUGIN }}
135+
- name: 'Run tests'
136+
id: run_tests
137+
working-directory: ./liberty-tools-intellij
138+
run: bash ./src/test/resources/ci/scripts/run.sh
139+
- name: 'Archive Test logs and reports'
140+
if: ${{ failure() && steps.run_tests.conclusion == 'failure' }}
141+
uses: actions/[email protected]
142+
with:
143+
name: mac-${{ matrix.test-group }}-test-report-LTI-${{ env.REF_LTI_TAG || 'default' }}-LSP4IJ-${{ env.LSP4IJ_BRANCH || 'default' }}
144+
path: |
145+
liberty-tools-intellij/build/reports/

0 commit comments

Comments
 (0)