Skip to content

Commit f675e6b

Browse files
authored
feat(ci): add artifacts build for releases (#10)
1 parent 7a8c102 commit f675e6b

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed

.github/workflows/release.yml

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
name: Build and Attach Release Assets
2+
3+
on:
4+
workflow_dispatch:
5+
6+
env:
7+
HUSKY: 0
8+
9+
jobs:
10+
build-and-attach:
11+
runs-on: ubuntu-latest
12+
permissions:
13+
contents: write
14+
15+
steps:
16+
- uses: actions/checkout@v4
17+
18+
- name: Enable Corepack
19+
run: corepack enable
20+
21+
- name: Setup Node.js 22.x
22+
uses: actions/setup-node@v4
23+
with:
24+
node-version: 22.x
25+
cache: "yarn"
26+
27+
- name: Install dependencies
28+
env:
29+
YARN_ENABLE_HARDENED_MODE: false
30+
run: yarn install --immutable
31+
32+
- name: Setup EMSDK
33+
uses: mymindstorm/setup-emsdk@v14
34+
with:
35+
version: 3.1.54
36+
actions-cache-folder: "emsdk-cache"
37+
38+
- name: Build WASM
39+
run: yarn grammar:wasm
40+
41+
- name: Build Extension
42+
run: yarn build
43+
44+
- name: Package Extension
45+
run: yarn package
46+
47+
- name: Create Language Server Archive
48+
run: |
49+
VERSION=$(node -p "require('./package.json').version")
50+
mkdir -p ton-language-server
51+
cp -r dist/* ton-language-server/
52+
cp package.json ton-language-server/
53+
cp README.md ton-language-server/
54+
cp LICENSE ton-language-server/
55+
tar -czf ton-language-server-v${VERSION}.tar.gz ton-language-server/
56+
zip -r ton-language-server-v${VERSION}.zip ton-language-server/
57+
58+
- name: Upload Assets to Latest Release
59+
run: |
60+
VERSION=$(node -p "require('./package.json').version")
61+
62+
# Get the latest release
63+
LATEST_RELEASE=$(gh release list --limit 1 --json tagName --jq '.[0].tagName')
64+
echo "Latest release: $LATEST_RELEASE"
65+
66+
# Upload assets to the latest release
67+
gh release upload "$LATEST_RELEASE" \
68+
*.vsix \
69+
"ton-language-server-v${VERSION}.tar.gz" \
70+
"ton-language-server-v${VERSION}.zip" \
71+
--clobber
72+
73+
echo "Assets uploaded to release $LATEST_RELEASE"
74+
env:
75+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)