Skip to content

Commit 4c32603

Browse files
authored
Add plugins to release (#97)
1 parent 4740a2c commit 4c32603

File tree

1 file changed

+91
-0
lines changed

1 file changed

+91
-0
lines changed
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
name: Build IDE Extensions
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
jobs:
8+
build-vscode-extension:
9+
name: Build VS Code Extension
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: Checkout code
13+
uses: actions/checkout@v4
14+
15+
- name: Setup Node.js
16+
uses: actions/setup-node@v4
17+
with:
18+
node-version: '20'
19+
cache: 'npm'
20+
cache-dependency-path: vscode-extension/package-lock.json
21+
22+
- name: Install dependencies
23+
working-directory: vscode-extension
24+
run: npm ci
25+
26+
- name: Compile TypeScript
27+
working-directory: vscode-extension
28+
run: npm run compile
29+
30+
- name: Install vsce
31+
run: npm install -g @vscode/vsce
32+
33+
- name: Package extension
34+
working-directory: vscode-extension
35+
run: vsce package
36+
37+
- name: Get extension version
38+
id: get_version
39+
working-directory: vscode-extension
40+
run: echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
41+
42+
- name: Upload VS Code extension to release
43+
uses: softprops/action-gh-release@v1
44+
with:
45+
files: vscode-extension/guard-rail-vscode-${{ steps.get_version.outputs.version }}.vsix
46+
env:
47+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
48+
49+
build-intellij-extension:
50+
name: Build IntelliJ Extension
51+
runs-on: ubuntu-latest
52+
steps:
53+
- name: Checkout code
54+
uses: actions/checkout@v4
55+
56+
- name: Setup Java
57+
uses: actions/setup-java@v4
58+
with:
59+
distribution: 'corretto'
60+
java-version: '17'
61+
62+
- name: Setup Gradle
63+
uses: gradle/actions/setup-gradle@v3
64+
65+
- name: Grant execute permission for gradlew
66+
working-directory: intellij-extension
67+
run: chmod +x gradlew
68+
69+
- name: Build plugin
70+
working-directory: intellij-extension
71+
run: ./gradlew buildPlugin
72+
73+
- name: Get plugin version
74+
id: get_version
75+
working-directory: intellij-extension
76+
run: echo "version=$(grep '^version = ' build.gradle.kts | cut -d '"' -f 2)" >> $GITHUB_OUTPUT
77+
78+
- name: Find built plugin
79+
id: find_plugin
80+
working-directory: intellij-extension
81+
run: |
82+
PLUGIN_FILE=$(find build/distributions -name "*.zip" -type f | head -n 1)
83+
echo "plugin_file=$PLUGIN_FILE" >> $GITHUB_OUTPUT
84+
echo "plugin_name=$(basename $PLUGIN_FILE)" >> $GITHUB_OUTPUT
85+
86+
- name: Upload IntelliJ plugin to release
87+
uses: softprops/action-gh-release@v1
88+
with:
89+
files: intellij-extension/${{ steps.find_plugin.outputs.plugin_file }}
90+
env:
91+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)