-
Notifications
You must be signed in to change notification settings - Fork 1
136 lines (129 loc) · 3.96 KB
/
Copy pathci.yml
File metadata and controls
136 lines (129 loc) · 3.96 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
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8
with:
fetch-depth: 0
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af
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@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8
- uses: actions/download-artifact@v4
with:
path: artifacts
- uses: softprops/action-gh-release@5be0e66d93ac7ed76da52eca8bb058f665c3a5fe
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8
- uses: actions/download-artifact@v4
with:
path: artifacts
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8
- uses: actions/download-artifact@v4
with:
path: artifacts
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af
with:
node-version: 20.x
- name: Publish
run: |
npx vsce publish -i artifacts/*/*.vsix -p ${{secrets.VS_MARKETPLACE_TOKEN}}