-
Notifications
You must be signed in to change notification settings - Fork 0
136 lines (129 loc) · 3.96 KB
/
ci.yml
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
name: ci
on:
push:
branches:
- main
tags:
- '*'
pull_request:
branches:
- main
workflow_dispatch:
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
with:
fetch-depth: 0
- uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6
with:
node-version: 20.x
- name: Setup npmrc
run: |
echo "@eclipse-cdt-cloud:registry=https://npm.pkg.github.com/" >> .npmrc
echo "//npm.pkg.github.com/:_authToken=${{secrets.GITHUB_TOKEN}}" >> .npmrc
- name: Build
env:
GITHUB_TOKEN: ${{github.token}}
run: |
yarn install --ignore-scripts
yarn build
yarn package
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882
with:
name: vsix-package
path: ./*.vsix
retention-days: 1
release:
needs: build
name: Create Release
runs-on: ubuntu-latest
permissions:
contents: write
if: startsWith(github.ref, 'refs/tags/')
steps:
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
- uses: actions/download-artifact@v4
with:
path: artifacts
- uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191
with:
files: artifacts/*/*.vsix
determine-version:
name: Determine Version
runs-on: ubuntu-latest
outputs:
version: ${{ steps.get-extension-version.outputs.version }}
steps:
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
- uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6
with:
node-version: 20.x
- name: Determine extension version
id: get-extension-version
run: |
VERSION=$(npm pkg get version | sed 's/"//g')
echo "Current version: $VERSION"
echo version=$VERSION >> $GITHUB_OUTPUT
publish-api-types:
name: Publish Extension API
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
needs:
- determine-version
if: startsWith(github.ref, 'refs/tags/')
steps:
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
- uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6
with:
node-version: 20.x
registry-url: 'https://npm.pkg.github.com'
always-auth: true
- name: Set package version to match extension
run: yarn --cwd api version --no-git-tag-version --new-version=$VERSION
env:
VERSION: ${{ needs.determine-version.outputs.version }}
- run: yarn publish
working-directory: api
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
publish-open-vsx-registry:
needs:
- release
- publish-api-types
name: Open VSX
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
steps:
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
- uses: actions/download-artifact@v4
with:
path: artifacts
- uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6
with:
node-version: 20.x
- name: Publish
run: |
npx ovsx publish -i artifacts/*/*.vsix -p ${{secrets.OPEN_VSX_TOKEN}}
publish-vscode-marketplace:
needs:
- release
- publish-api-types
name: VS Code Marketplace
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
steps:
- uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
- uses: actions/download-artifact@v4
with:
path: artifacts
- uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6
with:
node-version: 20.x
- name: Publish
run: |
npx vsce publish -i artifacts/*/*.vsix -p ${{secrets.VS_MARKETPLACE_TOKEN}}