-
Notifications
You must be signed in to change notification settings - Fork 142
184 lines (156 loc) · 5.52 KB
/
publish-extensions.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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
name: Publish Extensions
on:
push:
tags-ignore:
- 'v*beta*'
workflow_dispatch:
env:
COINBASE_APP_ID: ${{ secrets.COINBASE_APP_ID }}
MOONPAY_API_KEY: ${{ secrets.MOONPAY_API_KEY }}
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
SEGMENT_WRITE_KEY: ${{ secrets.SEGMENT_WRITE_KEY }}
TRANSAK_API_KEY: ${{ secrets.TRANSAK_API_KEY }}
WALLET_ENVIRONMENT: production
IS_PUBLISHING: true
jobs:
pre-run:
runs-on: ubuntu-latest
steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@ad6cb1b847ffb509a69b745b6ee2f1d14dfe14b8
with:
access_token: ${{ github.token }}
build-extension:
runs-on: ubuntu-latest
outputs:
new_version: ${{ steps.extract_version.outputs.version }}
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/provision
- name: Extract version
id: extract_version
uses: Saionaro/extract-package-version@v1.1.1
- name: Print version
run: echo ${{ steps.extract_version.outputs.version }}
- name: Build project
run: yarn build
- uses: actions/upload-artifact@v3
name: Upload build artifact
with:
name: hiro-wallet
path: dist
create-github-release:
name: Create Github release
runs-on: ubuntu-latest
needs:
- build-extension
steps:
- name: Download extension build
uses: actions/download-artifact@v2
with:
path: .
- name: Download release-notes.txt from create-version workflow
uses: dawidd6/action-download-artifact@v2
with:
workflow: create-version.yml
name: release-notes
- run: ls -R
- name: Zip release build
run: zip -r hiro-wallet.v${{ needs.build-extension.outputs.new_version }}.zip hiro-wallet/
- name: Release
uses: softprops/action-gh-release@v1
with:
prerelease: false
tag_name: v${{ needs.build-extension.outputs.new_version }}
body_path: release-notes.txt
files: hiro-wallet.v${{ needs.build-extension.outputs.new_version }}.zip
publish_chrome_extension:
name: Publish Chrome extension
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
needs:
- pre-run
- create-github-release
outputs:
publish_status: ${{ steps.publish-chrome.outputs.publish_status }}
env:
MINIFY_PRODUCTION_BUILD: false
TARGET_BROWSER: chromium
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
id: cache-node-modules
with:
path: '**/node_modules'
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}-${{ hashFiles('**/package.json') }}
- uses: actions/setup-node@v3
- name: Install packages
uses: ./.github/actions/provision
if: steps.cache-node-modules.outputs.cache-hit != 'true'
- name: Build project
env:
# We only add the sentry auth token for chrome, as we don't want to
# create a duplicate release during the ff build
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
run: yarn build
- name: Build extension
run: sh build-ext.sh
- name: Sign and Upload Production Chrome extension
continue-on-error: true
id: publish-chrome
run: |
yarn chrome-webstore-upload upload --source stacks-wallet-chromium.zip
echo "::set-output name=publish_status::${?}"
env:
EXTENSION_ID: ${{ secrets.CHROME_APP_ID }}
CLIENT_ID: ${{ secrets.CHROME_CLIENT_ID }}
CLIENT_SECRET: ${{ secrets.CHROME_CLIENT_SECRET }}
REFRESH_TOKEN: ${{ secrets.CHROME_REFRESH_TOKEN }}
publish_firefox_extension:
name: Publish Firefox extension
runs-on: ubuntu-latest
if: false
# if: startsWith(github.ref, 'refs/tags/v')
env:
MINIFY_PRODUCTION_BUILD: true
TARGET_BROWSER: firefox
needs:
- pre-run
- create-github-release
outputs:
publish_status: ${{ steps.publish-firefox.outputs.publish_status }}
steps:
- name: Check out Git repository
uses: actions/checkout@v3
- uses: actions/cache@v3
id: cache-node-modules
with:
path: '**/node_modules'
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}-${{ hashFiles('**/package.json') }}
- uses: actions/setup-node@v3
- name: Install packages
uses: ./.github/actions/provision
if: steps.cache-node-modules.outputs.cache-hit != 'true'
- name: Build project
run: yarn build
- name: Build extension
run: sh build-ext.sh
- name: Sign and Upload Production Firefox extension
continue-on-error: true
id: publish-firefox
run: |
yarn web-ext-submit --channel=listed
echo "::set-output name=publish_status::${?}"
env:
WEB_EXT_API_KEY: ${{ secrets.FIREFOX_API_KEY }}
WEB_EXT_API_SECRET: ${{ secrets.FIREFOX_API_SECRET }}
# post_run:
# runs-on: ubuntu-latest
# needs:
# - publish_chrome_extension
# # - publish_firefox_extension
# steps:
# - name: Publish Statuses
# run: |
# # echo "::warning::Firefox Publish Status: $([[ "${{ needs.publish_firefox_extension.outputs.publish_status }}" = "0" ]] && echo 'SUCCESS' || echo 'FAILED')"
# echo "::warning::Chrome Publish Status: $([[ "${{ needs.publish_chrome_extension.outputs.publish_status }}" = "0" ]] && echo 'SUCCESS' || echo 'FAILED')"