-
Notifications
You must be signed in to change notification settings - Fork 15
89 lines (70 loc) · 2.53 KB
/
Copy pathrelease.yml
File metadata and controls
89 lines (70 loc) · 2.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
name: Build and Attach Release Assets
on:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: {}
env:
HUSKY: 0
jobs:
build-and-attach:
name: Build and Attach Release Assets
runs-on: ubuntu-latest
permissions:
contents: write # upload release assets
steps:
- name: Fetch Sources
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Enable Corepack
run: corepack enable
- name: Setup Node.js 22.x
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version: 22.x
cache: "yarn"
- name: Install dependencies
env:
YARN_ENABLE_HARDENED_MODE: false
run: yarn install --immutable
- name: Setup EMSDK
uses: emscripten-core/setup-emsdk@4528d102f7230f0e7b276855c01ea1159be0e984 # v16
env:
EMSDK_VERSION: 4.0.15
with:
version: ${{ env.EMSDK_VERSION }}
actions-cache-folder: "emsdk-cache"
cache-key: emsdk-cache-${{ runner.os }}-${{ runner.arch }}-${{ env.EMSDK_VERSION }}
- name: Build WASM
run: yarn grammar:wasm
- name: Build Extension
run: yarn build
- name: Package Extension
run: yarn package
- name: Create Language Server Archive
run: |
VERSION=$(node -p "require('./package.json').version")
mkdir -p ton-language-server
cp -r dist/* ton-language-server/
cp package.json ton-language-server/
cp README.md ton-language-server/
cp LICENSE ton-language-server/
tar -czf ton-language-server-v${VERSION}.tar.gz ton-language-server/
zip -r ton-language-server-v${VERSION}.zip ton-language-server/
- name: Upload Assets to Latest Release
run: |
VERSION=$(node -p "require('./package.json').version")
# Get the latest release
LATEST_RELEASE=$(gh release list --limit 1 --json tagName --jq '.[0].tagName')
echo "Latest release: $LATEST_RELEASE"
# Upload assets to the latest release
gh release upload "$LATEST_RELEASE" \
*.vsix \
"ton-language-server-v${VERSION}.tar.gz" \
"ton-language-server-v${VERSION}.zip" \
--clobber
echo "Assets uploaded to release $LATEST_RELEASE"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}