-
Notifications
You must be signed in to change notification settings - Fork 17
162 lines (140 loc) · 5.44 KB
/
release.yml
File metadata and controls
162 lines (140 loc) · 5.44 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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
name: Release
on:
workflow_dispatch:
inputs:
releaseType:
description: 'Release Type'
required: true
type: choice
default: 'patch'
options:
- patch
- minor
- major
releaseChannel:
description: 'Release Channel'
required: true
type: choice
default: stable
options:
- stable
- edge
publishMarketplace:
description: 'Publish on Visual Studio Marketplace?'
required: true
type: choice
default: 'yes'
options:
- 'yes'
- 'no'
publishOpenVSX:
description: 'Publish on Open VSX Registry?'
required: true
type: choice
default: 'yes'
options:
- 'yes'
- 'no'
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Input parameters
run: echo "${{ toJSON(github.event.inputs) }}"
- name: Clone Repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Git
run: |
git config --global user.name "release-bot"
git config --global user.email "szoftverhiba+release-bot@gmail.com"
- name: Get Current Version Number
run: |
CURRENT_VERSION=$(npm pkg get version | cut -d'"' -f 2)
echo "CURRENT_VERSION=$CURRENT_VERSION" >> $GITHUB_ENV
echo $CURRENT_VERSION
- name: Setup Node version
uses: actions/setup-node@v3
with:
node-version: 18
cache: 'npm'
cache-dependency-path: |
package-lock.json
frontend/package-lock.json
- name: Install dependencies
run: npm ci && cd frontend && npm ci
- name: Bump version (Edge)
run: |
RELEASE_VERSION=$(npx semver -i prerelease --preid=edge $CURRENT_VERSION)
echo "RELEASE_VERSION=$RELEASE_VERSION" >> $GITHUB_ENV
npm version $RELEASE_VERSION --git-tag-version=false
if: ${{ github.event.inputs.releaseChannel == 'edge' }}
- name: Bump version (Stable)
run: |
RELEASE_VERSION=$(npx semver $CURRENT_VERSION -i ${{ github.event.inputs.releaseType }})
echo "RELEASE_VERSION=$RELEASE_VERSION" >> $GITHUB_ENV
npm version $RELEASE_VERSION --git-tag-version=false
if: ${{ github.event.inputs.releaseChannel == 'stable' }}
- name: Update Changelog (Stable)
run: node scripts/update-changelog.mjs
if: ${{ github.event.inputs.releaseChannel == 'stable' }}
- name: Tagging
run: |
git add .
git commit -m "$RELEASE_VERSION"
git tag -a v$RELEASE_VERSION -m "$RELEASE_VERSION"
- name: Push tag
run: |
git push
git push origin --tags
- run: |
export GIT_TAG=$(git describe --tags --abbrev=0)
echo "GIT_TAG=$GIT_TAG" >> $GITHUB_ENV
- name: Update edge version (Edge)
run: node scripts/update-edge-version.js
if: ${{ github.event.inputs.publishMarketplace == 'yes' && github.event.inputs.releaseChannel == 'edge' }}
- name: Build package (Edge)
run: npx vsce package --pre-release --out "./commit-message-editor-$RELEASE_VERSION.vsix"
if: ${{ github.event.inputs.releaseChannel == 'edge' }}
- name: Build package (Stable)
run: npx vsce package
if: ${{ github.event.inputs.releaseChannel == 'stable' }}
- name: Publish to Visual Studio Marketplace (Edge)
run: npx vsce publish --packagePath "./commit-message-editor-$RELEASE_VERSION.vsix" --pat ${{ secrets.VSCE_TOKEN }} --pre-release
if: ${{ github.event.inputs.publishMarketplace == 'yes' && github.event.inputs.releaseChannel == 'edge' }}
- name: Publish to Visual Studio Marketplace (Stable)
run: npx vsce publish --packagePath "./commit-message-editor-$RELEASE_VERSION.vsix" --pat ${{ secrets.VSCE_TOKEN }}
if: ${{ github.event.inputs.publishMarketplace == 'yes' && github.event.inputs.releaseChannel == 'stable' }}
# - name: Publish to Open VSX Registry (Edge)
# uses: HaaLeo/publish-vscode-extension@v1
# if: ${{ github.event.inputs.publishOpenVSX == 'yes' && github.event.inputs.releaseChannel == 'edge' }}
# with:
# preRelease: true
# pat: ${{ secrets.OPEN_VSX_TOKEN }}
# extensionFile: ./commit-message-editor-${{ env.RELEASE_VERSION }}.vsix
- name: Publish to Open VSX Registry (Stable)
uses: HaaLeo/publish-vscode-extension@v1
if: ${{ github.event.inputs.publishOpenVSX == 'yes' && github.event.inputs.releaseChannel == 'stable' }}
with:
preRelease: false
pat: ${{ secrets.OPEN_VSX_TOKEN }}
extensionFile: ./commit-message-editor-${{ env.RELEASE_VERSION }}.vsix
- name: Github Release (Edge)
uses: ncipollo/release-action@v1
if: ${{ github.event.inputs.releaseChannel == 'edge' }}
with:
artifacts: './commit-message-editor-*'
prerelease: true
draft: true
tag: ${{ env.GIT_TAG }}
generateReleaseNotes: true
- name: Github Release (Stable)
uses: ncipollo/release-action@v1
if: ${{ github.event.inputs.releaseChannel == 'stable' }}
with:
artifacts: './commit-message-editor-*'
prerelease: false
draft: true
tag: ${{ env.GIT_TAG }}
generateReleaseNotes: true