forked from liquality/wallet
-
Notifications
You must be signed in to change notification settings - Fork 0
137 lines (121 loc) · 4.89 KB
/
Copy pathrelease.yml
File metadata and controls
137 lines (121 loc) · 4.89 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
on:
push:
tags:
- 'v*'
name: TAG Release
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2.3.5
with:
fetch-depth: 0
- uses: actions/setup-node@v2.4.1
env:
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: 'true'
with:
node-version: '14'
# Create screenshots directory
- run: mkdir screenshots
- uses: actions/cache@v2.1.6
env:
node-version: 14.1.0
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-node${{ env.node-version }}
- name: Get Current Tag
id: get_current_tag
run: echo ::set-output name=tag::${GITHUB_REF#refs/tags/}
- name: Get Previous tag
id: previous_tag
run: echo ::set-output name=tag::$(git tag --sort v:refname | tail -n 2 | head -n 1)
- name: Get next version
id: semvers
uses: WyriHaximus/github-action-next-semvers@v1.0
with:
version: ${{ steps.previous_tag.outputs.tag }}
# Minor PROD releases.
- name: Set production agents (minor for PROD)
if: steps.semvers.outputs.v_minor == steps.get_current_tag.outputs.tag
env:
VUE_APP_AMPLITUDE_API_KEY: ${{ secrets.VUE_APP_AMPLITUDE_API_KEY }}
run: |
echo VUE_APP_AMPLITUDE_API_KEY =${{ secrets.VUE_APP_AMPLITUDE_API_KEY_PROD }} >> .env
sed -i "s/\/swap-testnet-dev\/agent/\/swap-testnet\/agent/g; s/\/swap-dev\/agent/\/swap\/agent/g" src/build.config.js
npm ci
npm run lint
npm run build
# Patch DEV release.
- name: Set development manifest (patch for DEV)
if: steps.semvers.outputs.v_patch == steps.get_current_tag.outputs.tag
env:
VUE_APP_AMPLITUDE_API_KEY: ${{ secrets.VUE_APP_AMPLITUDE_API_KEY_DEV }}
run: |
echo VUE_APP_AMPLITUDE_API_KEY =${{ secrets.VUE_APP_AMPLITUDE_API_KEY_DEV }} >> .env
jq --argjson icons "{\"16\": \"icons/dev/16x16.png\",\"48\": \"icons/dev/48x48.png\",\"128\": \"icons/dev/128x128.png\"}" '.icons = $icons | .browser_action.default_icon = $icons | .name = "Liquality Wallet - Dev"' ./src/manifest.json > ./src/manifest.tmp
mv ./src/manifest.tmp ./src/manifest.json
npm ci
npm run lint
npm run build
- name: E2E tests against Dev Mainnet Agent
if: steps.semvers.outputs.v_patch == steps.get_current_tag.outputs.tag
uses: beemi/puppeteer-headful@v1.0.6
env:
CI: 'true'
DISPLAY: :99
SEED_WORDS: ${{ secrets.TEST_NET_SEED_WORDS }}
TWENTY_FOUR_SEEDS: ${{ secrets.TWENTY_FOUR_SEEDS }}
with:
args: npm run test:mainnet:devagent #Run tests against dev mainnet
- name: E2E tests against Prod Mainnet Agent
if: steps.semvers.outputs.v_minor == steps.get_current_tag.outputs.tag
uses: beemi/puppeteer-headful@v1.0.6
env:
CI: 'true'
DISPLAY: :99
SEED_WORDS: ${{ secrets.TEST_NET_SEED_WORDS }}
TWENTY_FOUR_SEEDS: ${{ secrets.TWENTY_FOUR_SEEDS }}
with:
args: npm run test:mainnet:prodagent #Run tests against Prod mainnet
- name: Archive Mocha HTML report
uses: actions/upload-artifact@v2.2.4
if: always()
with:
name: mocha-html-test-report
path: mochawesome-report
- name: Save Screenshots
uses: actions/upload-artifact@v2.2.4
if: always()
with:
name: screenshots
path: screenshots
if-no-files-found: ignore
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
- name: Upload release
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./artifacts/liquality-wallet-${{ steps.get_current_tag.outputs.tag }}-production.zip
asset_name: liquality-wallet-${{ steps.get_current_tag.outputs.tag }}.zip
asset_content_type: application/zip
- name: Chrome Extension Publish
uses: SebastienGllmt/chrome-addon@v3
if: steps.semvers.outputs.v_patch == steps.get_current_tag.outputs.tag
with:
client-id: ${{ secrets.WEB_STORE_CLIENT_ID }}
client-secret: ${{ secrets.WEB_STORE_CLIENT_SECRET }}
refresh-token: ${{ secrets.WEB_STORE_REFRESH_TOKEN }}
zip: ./artifacts/liquality-wallet-${{ steps.get_current_tag.outputs.tag }}-production.zip
extension: bkhfdnhibdhkbfihmljakbgnldoikgbm
publishTarget: trustedTesters