forked from xai-foundation/sentry
-
Notifications
You must be signed in to change notification settings - Fork 0
142 lines (120 loc) · 5.03 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
138
139
140
141
142
name: Release
on:
push:
tags:
- '*'
jobs:
build:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: 18
- name: Install pnpm
run: npm install -g pnpm
- name: Set desktop app package version
run: pnpm pkg set version=${{ github.ref_name }} --prefix apps/sentry-client-desktop
- name: Set cli version
run: sed -i'' -e 's/VERSION_NUMBER/${{ github.ref_name }}/g' packages/core/src/utils/version.ts
- name: Install dependencies
run: pnpm install
- name: Build monorepo
run: pnpm run build
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload sentry-client-desktop artifacts
uses: actions/upload-artifact@v2
with:
name: release-desktop-${{ matrix.os }}
path: apps/sentry-client-desktop/release
- name: zip cli artifacts
run: |
cd apps/cli/release
zip sentry-node-cli-macos.zip sentry-node-cli-macos
zip sentry-node-cli-linux.zip sentry-node-cli-linux
zip sentry-node-cli-windows.zip sentry-node-cli-win.exe
if: matrix.os == 'ubuntu-latest'
- name: Upload cli artifacts
uses: actions/upload-artifact@v2
with:
name: release-cli-${{ matrix.os }}
path: apps/cli/release
# Popular action to deploy to GitHub Pages:
# Docs: https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-docusaurus
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
# Build output to publish to the `gh-pages` branch:
publish_dir: ./apps/web-connect/dist
# The following lines assign commit authorship to the official
# GH-Actions bot for deploys to `gh-pages` branch:
# https://github.com/actions/checkout/issues/13#issuecomment-724415212
# The GH actions bot is used by default if you didn't specify the two fields.
# You can swap them out with your own user credentials.
user_name: github-actions[bot]
user_email: 41898282+github-actions[bot]@users.noreply.github.com
if: matrix.os == 'ubuntu-latest'
sign:
needs: build
runs-on: ubuntu-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v2
with:
name: release-desktop-windows-latest
path: release-desktop-windows-latest
- name: Create directory for signed builds
shell: bash
run: mkdir release-desktop-windows-latest/signed-builds
- name: Sign build Windows exe
uses: sslcom/actions-codesigner@develop
with:
command: sign
username: ${{ secrets.SSL_USERNAME }}
password: ${{ secrets.SSL_PASSWORD }}
totp_secret: ${{ secrets.SSL_TOTP_SECRET }}
file_path: release-desktop-windows-latest/sentry-client-windows.exe
output_path: release-desktop-windows-latest/signed-builds
- name: Upload signed artifacts
uses: actions/upload-artifact@v2
with:
name: release-signed-desktop-windows-latest
path: release-desktop-windows-latest
checksum-and-release:
needs: sign
runs-on: macos-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v2
- name: Generate checksum
run: |
CHECKSUM=$(shasum -a 512 release-signed-desktop-windows-latest/signed-builds/sentry-client-windows.exe | cut -f1 -d\ | xxd -r -p | base64)
CHECKSUM=$(echo "$CHECKSUM" | tr -d '\r\n')
echo "SHA512 Checksum: $CHECKSUM"
cat release-signed-desktop-windows-latest/latest.yml
sed -i '' -e "s#^sha512:.*#sha512: $CHECKSUM#" "release-signed-desktop-windows-latest/latest.yml"
sed -i '' -e "s#^ sha512:.*# sha512: $CHECKSUM#" "release-signed-desktop-windows-latest/latest.yml"
- name: Release
uses: softprops/action-gh-release@v1
with:
files: |
release-desktop-macos-latest/latest-mac.yml
release-desktop-macos-latest/sentry-client-macos.dmg.blockmap
release-desktop-macos-latest/sentry-client-macos.dmg
release-desktop-ubuntu-latest/latest-linux.yml
release-desktop-ubuntu-latest/sentry-client-linux.AppImage
release-signed-desktop-windows-latest/latest.yml
release-signed-desktop-windows-latest/sentry-client-windows.exe.blockmap
release-signed-desktop-windows-latest/signed-builds/sentry-client-windows.exe
release-cli-ubuntu-latest/sentry-node-cli-macos.zip
release-cli-ubuntu-latest/sentry-node-cli-linux.zip
release-cli-ubuntu-latest/sentry-node-cli-windows.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}