@@ -10,146 +10,139 @@ concurrency:
1010
1111jobs :
1212 build :
13- name : Build plugin
13+ name : 📦 Build
1414 runs-on : ubuntu-latest
15- outputs :
16- version : ${{ steps.properties.outputs.version }}
17- changelog : ${{ steps.properties.outputs.changelog }}
18- pluginVerifierHomeDir : ${{ steps.properties.outputs.pluginVerifierHomeDir }}
19- platformVersion : ${{ steps.properties.outputs.platformVersion }}
2015 steps :
21- - name : Maximize Build Space
16+ - name : 🧹 Free disk space
2217 uses : jlumbroso/free-disk-space@main
2318 with :
2419 tool-cache : false
2520 large-packages : false
26- - name : Checkout git repository
21+ - name : 📥 Checkout
2722 uses : actions/checkout@v6
28- - name : Set up Java
23+ - name : ☕ Set up Java
2924 uses : actions/setup-java@v5
3025 with :
3126 distribution : zulu
3227 java-version : 21
33- - name : Set up Gradle
28+ - name : 🐘 Set up Gradle
3429 uses : gradle/actions/setup-gradle@v5
35- - name : Build plugin
30+ - name : 🔨 Build plugin
3631 run : ./gradlew --console=plain buildPlugin
37- - name : Prepare Plugin Artifact
32+ - name : 📁 Prepare artifact
3833 id : artifact
39- shell : bash
4034 run : |
4135 cd ${{ github.workspace }}/build/distributions
4236 FILENAME=`ls *.zip`
4337 unzip "$FILENAME" -d content
4438 echo "filename=${FILENAME:0:-4}" >> $GITHUB_OUTPUT
45- - name : Upload artifact for later download
39+ - name : 📤 Upload artifact
4640 uses : actions/upload-artifact@v6
4741 with :
4842 name : ${{ steps.artifact.outputs.filename }}
4943 path : ./build/distributions/content/*/*
50- - name : Export plugin properties
51- id : properties
52- shell : bash
53- run : |
54- PROPERTIES="$(./gradlew properties --console=plain -q)"
55- VERSION="$(echo "$PROPERTIES" | grep "^version:" | cut -f2- -d ' ')"
56- echo "version=$VERSION" >> $GITHUB_OUTPUT
57- echo "pluginVerifierHomeDir=$HOME/.pluginVerifier" >> $GITHUB_OUTPUT
58- echo "platformVersion=$(echo "$PROPERTIES" | grep "^platformVersion:" | cut -f2- -d ' ')" >> $GITHUB_OUTPUT
59- CHANGELOG="$(./gradlew getChangelog --unreleased --no-header --console=plain -q)"
60- echo "changelog<<EOF" >> $GITHUB_OUTPUT
61- echo "$CHANGELOG" >> $GITHUB_OUTPUT
62- echo "EOF" >> $GITHUB_OUTPUT
6344
6445 verify :
65- name : Verify (${{ matrix.ide }})
66- needs : [build]
46+ name : 🔍 Verify (${{ matrix.ide }})
6747 runs-on : ubuntu-latest
6848 strategy :
6949 fail-fast : false
7050 matrix :
71- ide : [PC, PY]
51+ ide : ${{ github.event_name == 'pull_request' && fromJson('["PC"]') || fromJson('["PC", "PY"]') }}
7252 steps :
73- - name : Free disk space
53+ - name : 🧹 Free disk space
7454 uses : jlumbroso/free-disk-space@main
7555 with :
7656 tool-cache : false
7757 large-packages : false
7858 android : true
7959 dotnet : true
80- - name : Checkout git repository
60+ haskell : true
61+ docker-images : true
62+ - name : 📥 Checkout
8163 uses : actions/checkout@v6
82- - name : Set up Java
64+ - name : ☕ Set up Java
8365 uses : actions/setup-java@v5
8466 with :
8567 distribution : zulu
8668 java-version : 21
87- - name : Set up Gradle
69+ - name : 🐘 Set up Gradle
8870 uses : gradle/actions/setup-gradle@v5
89- with :
90- validate-wrappers : false
91- cache-read-only : false
92- - name : Cache plugin verifier IDEs
71+ - name : 💾 Cache verifier IDEs
9372 uses : actions/cache@v5
9473 with :
9574 path : ~/.pluginVerifier/ides
96- key : plugin-verifier-ides-${{ matrix.ide }}-${{ needs.build.outputs.platformVersion }}
97- - name : Clean corrupted Gradle transforms
98- run : rm -rf ~/.gradle/caches/*/transforms
99- - name : Run verification
75+ key : plugin-verifier-ides-${{ matrix.ide }}-${{ hashFiles('gradle.properties') }}
76+ - name : ✅ Run verification
10077 run : ./gradlew verifyPlugin -PverifyIde=${{ matrix.ide }}
101- - name : Collect verification result
78+ - name : 📤 Upload results
10279 if : ${{ always() }}
10380 uses : actions/upload-artifact@v6
10481 with :
10582 name : pluginVerifier-result-${{ matrix.ide }}
10683 path : ${{ github.workspace }}/build/reports/pluginVerifier
10784
10885 lint :
109- name : Lint
110- needs : [build]
86+ name : 🧹 Lint
11187 runs-on : ubuntu-latest
11288 steps :
113- - name : Checkout git repository
89+ - name : 🧹 Free disk space
90+ uses : jlumbroso/free-disk-space@main
91+ with :
92+ tool-cache : false
93+ large-packages : false
94+ - name : 📥 Checkout
11495 uses : actions/checkout@v6
115- - name : Set up Java
96+ - name : ☕ Set up Java
11697 uses : actions/setup-java@v5
11798 with :
11899 distribution : zulu
119100 java-version : 21
120- - name : Set up Gradle
101+ - name : 🐘 Set up Gradle
121102 uses : gradle/actions/setup-gradle@v5
122- with :
123- cache-read-only : false
124- - name : Clean corrupted Gradle transforms
125- run : rm -rf ~/.gradle/caches/*/transforms
126- - name : Run linter
103+ - name : 🔍 Run linter
127104 run : ./gradlew ktlintCheck
128105
129106 test :
130- name : Run tests
131- needs : [build]
107+ name : 🧪 Unit tests
132108 runs-on : ubuntu-latest
133109 steps :
134- - name : Checkout git repository
110+ - name : 🧹 Free disk space
111+ uses : jlumbroso/free-disk-space@main
112+ with :
113+ tool-cache : false
114+ large-packages : false
115+ - name : 📥 Checkout
135116 uses : actions/checkout@v6
136- - name : Set up Java
117+ - name : ☕ Set up Java
137118 uses : actions/setup-java@v5
138119 with :
139120 distribution : zulu
140121 java-version : 21
141- - name : Set up Gradle
122+ - name : 🐘 Set up Gradle
142123 uses : gradle/actions/setup-gradle@v5
124+ - name : ✅ Run tests with coverage
125+ run : ./gradlew test koverVerify
126+
127+ ui-test :
128+ name : 🖥️ UI tests
129+ runs-on : ubuntu-latest
130+ steps :
131+ - name : 🧹 Free disk space
132+ uses : jlumbroso/free-disk-space@main
143133 with :
144- validate-wrappers : false
145- cache-read-only : false
146- - name : Clean corrupted Gradle transforms
147- run : rm -rf ~/.gradle/caches/*/transforms
148- - name : Run unit tests
149- run : ./gradlew test
150- - name : Verify 100% coverage
151- run : ./gradlew koverVerify
152- - name : Run UI tests
134+ tool-cache : false
135+ large-packages : false
136+ - name : 📥 Checkout
137+ uses : actions/checkout@v6
138+ - name : ☕ Set up Java
139+ uses : actions/setup-java@v5
140+ with :
141+ distribution : zulu
142+ java-version : 21
143+ - name : 🐘 Set up Gradle
144+ uses : gradle/actions/setup-gradle@v5
145+ - name : 🖥️ Run UI tests
153146 run : |
154147 export DISPLAY=:99.0
155148 Xvfb :99 -screen 0 1920x1080x24 &
@@ -159,31 +152,3 @@ jobs:
159152 echo "IDE is ready"
160153 ./gradlew uiTest
161154 kill %1 %2 || true
162-
163- releaseDraft :
164- name : Create release draft
165- if : github.event_name != 'pull_request'
166- needs : [build, lint, test, verify]
167- runs-on : ubuntu-latest
168- permissions :
169- contents : write
170- steps :
171- - name : Checkout git repository
172- uses : actions/checkout@v6
173- - name : Remove old release drafts
174- env :
175- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
176- run : |
177- gh api repos/{owner}/{repo}/releases --jq '.[] | select(.draft == true) | .id' \
178- | xargs -I '{}' gh api -X DELETE repos/{owner}/{repo}/releases/{}
179- - name : Create release draft
180- env :
181- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
182- run : |
183- gh release create "v${{ needs.build.outputs.version }}" \
184- --draft \
185- --title "v${{ needs.build.outputs.version }}" \
186- --notes "$(cat << 'EOM'
187- ${{ needs.build.outputs.changelog }}
188- EOM
189- )"
0 commit comments