-
-
Notifications
You must be signed in to change notification settings - Fork 0
137 lines (114 loc) · 3.32 KB
/
release.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
137
name: Release VSIX
on:
push:
tags:
- 'v*'
jobs:
test:
uses: ./.github/workflows/build-and-test.yml
github-release:
needs:
- test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download VSIX Artifact
uses: actions/download-artifact@v4
with:
path: /tmp
pattern: '*.vsix'
merge-multiple: true
- name: Install clojure tools
uses: DeLaGuardo/setup-clojure@12.5
with:
cli: latest
bb: latest
- name: Cache clojure/java dependencies
uses: actions/cache@v4
with:
path: |
~/.m2/repository
~/.gitlibs
~/.deps.clj
key: ${{ runner.os }}-clojure-${{ hashFiles('**/*.edn') }}
restore-keys: |
${{ runner.os }}-clojure-
- name: Write release notes
run: |
bb ci:release-notes ${{ github.ref_name }} > /tmp/release-notes.md
- name: Github Release
uses: ncipollo/release-action@v1
with:
bodyFile: /tmp/release-notes.md
artifacts: "/tmp/*.vsix"
publish-to-marketplace:
runs-on: ubuntu-latest
needs: github-release
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
- name: Cache npm
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-npm-${{ hashFiles('package-lock.json') }}
restore-keys: |
${{ runner.os }}-npm-
- name: Install node dependencies
run: npm install
- name: Download VSIX Artifact
uses: actions/download-artifact@v4
with:
path: /tmp
pattern: '*.vsix'
merge-multiple: true
- name: Publish to VS Code Marketplace
run: npx vsce publish --packagePath /tmp/*.vsix --pat ${{ secrets.VSIX_TOKEN }} --githubBranch master
publish-to-open-vsx:
runs-on: ubuntu-latest
needs: github-release
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
- name: Cache npm
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-npm-${{ hashFiles('package-lock.json') }}
restore-keys: |
${{ runner.os }}-npm-
- name: Install node dependencies
run: npm install
- name: Download VSIX Artifact
uses: actions/download-artifact@v4
with:
path: /tmp
pattern: '*.vsix'
merge-multiple: true
- name: Publish to Open VSX
run: npx ovsx publish /tmp/*.vsix --pat ${{ secrets.OPEN_VSX_TOKEN }}
bump-version:
runs-on: ubuntu-latest
needs: publish-to-marketplace
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: master
- name: Setup Babashka
uses: DeLaGuardo/setup-clojure@12.5
with:
bb: latest
- name: Bump Version
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: bb ci:bump-version "${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com" "${{ github.actor }}"