-
Notifications
You must be signed in to change notification settings - Fork 3
129 lines (109 loc) · 2.94 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
name: Release
on:
push:
branches:
- main
- next
- beta
- '*.x'
- '*.*.x'
permissions:
contents: write
issues: write
pull-requests: write
jobs:
build:
name: Build
runs-on: ubuntu-latest
timeout-minutes: 8
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Linting
run: npm run lint
- name: Build
run: npm run build
- name: Zip build
run: |
cd dist/sag-pkg-community-plugins
zip -r -q ../../build.zip *
cd ../..
rm -r dist
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: build
if-no-files-found: error
retention-days: 5
path: |
build.zip
release:
name: Release
runs-on: ubuntu-latest
needs: [build]
timeout-minutes: 8
outputs:
initial-version: ${{ steps.save-initial-version.outputs.version }}
version: ${{ steps.save-version.outputs.version }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Save initial Version
id: save-initial-version
run: echo "version=$(cat package.json | jq '.version' | xargs)" >> $GITHUB_OUTPUT
- name: Install dependencies
run: npm ci
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npx semantic-release
- name: Save Version
id: save-version
run: echo "version=$(cat package.json | jq '.version' | xargs)" >> $GITHUB_OUTPUT
release-assets:
needs: [release]
if: ${{ needs.release.outputs.initial-version != needs.release.outputs.version }}
name: Release assets
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
ref: v${{ needs.release.outputs.version }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build
- name: Zip build
run: |
cd dist/sag-pkg-community-plugins
zip -r -q ../../cumulocity-community-plugins-${{ needs.release.outputs.version }}.zip *
cd ../..
rm -r dist
- name: Release
uses: softprops/action-gh-release@v1
with:
files: cumulocity-community-plugins-${{ needs.release.outputs.version }}.zip
tag_name: v${{ needs.release.outputs.version }}