Skip to content

Commit 249db02

Browse files
authored
Merge pull request #958 from input-output-hk/fix/ci-build
fix: ci build + upload
2 parents fd87c68 + 6ead300 commit 249db02

File tree

8 files changed

+2362
-85
lines changed

8 files changed

+2362
-85
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
run: npm test
2525
- name: Generates Secrets File
2626
run: |
27-
echo "export default { PROJECT_ID_MAINNET: '${{ secrets.PROJECT_ID_MAINNET }}', PROJECT_ID_PREVIEW: '${{ secrets.PROJECT_ID_PREVIEW }}', PROJECT_ID_PREPROD: '${{ secrets.PROJECT_ID_PREPROD }}', POSTHOG_API_KEY:'${{ secrets.POSTHOG_API_KEY_PRODUCTION }}', POSTHOG_PROJECT_ID: '${{ secrets.POSTHOG_PROJECT_ID_PRODUCTION }}'};" > secrets.production.js
27+
echo "export default { PROJECT_ID_MAINNET: '${{ secrets.PROJECT_ID_MAINNET }}', PROJECT_ID_PREVIEW: '${{ secrets.PROJECT_ID_PREVIEW }}', PROJECT_ID_PREPROD: '${{ secrets.PROJECT_ID_PREPROD }}', POSTHOG_API_KEY:'${{ secrets.POSTHOG_API_KEY }}', POSTHOG_PROJECT_ID: '${{ secrets.POSTHOG_PROJECT_ID }}', LACE_EXTENSION_ID: '${{ secrets.LACE_EXTENSION_ID }}'};" > secrets.production.js
2828
- name: Build
2929
run: npm run build
3030
env:

package-lock.json

Lines changed: 2278 additions & 22 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
"@blaze-cardano/sdk": "^0.1.32",
2020
"@cardano-foundation/ledgerjs-hw-app-cardano": "^7.1.3",
2121
"@cardano-sdk/core": "^0.39.2",
22+
"@chakra-ui/button": "^2.1.0",
23+
"@chakra-ui/checkbox": "^2.3.2",
2224
"@chakra-ui/css-reset": "^2.3.0",
2325
"@chakra-ui/icons": "^2.1.1",
2426
"@chakra-ui/react": "^2.8.2",
@@ -94,6 +96,7 @@
9496
"clean-webpack-plugin": "^4.0.0",
9597
"copy-webpack-plugin": "^11.0.0",
9698
"css-loader": "^6.8.1",
99+
"dotenv": "^16.4.5",
97100
"dotenv-defaults": "^5.0.2",
98101
"eslint": "^8.54.0",
99102
"eslint-config-react-app": "^7.0.1",
@@ -110,6 +113,7 @@
110113
"html-webpack-plugin": "^5.2.0",
111114
"jest": "^29.7.0",
112115
"jest-environment-jsdom": "^29.7.0",
116+
"jest-webextension-mock": "^3.9.0",
113117
"prettier": "^3.1.0",
114118
"react-refresh": "^0.14.0",
115119
"sass": "1.69.5",
@@ -124,9 +128,7 @@
124128
"typescript": "^5.3.2",
125129
"webpack": "^5.88.1",
126130
"webpack-cli": "^5.1.4",
127-
"webpack-dev-server": "^4.15.1",
128-
"dotenv": "^16.4.5",
129-
"jest-webextension-mock": "^3.9.0"
131+
"webpack-dev-server": "^4.15.1"
130132
},
131133
"resolutions": {
132134
"nan": "2.17.0"

secrets.testing.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ export default {
55
PROJECT_ID_PREPROD: 'DUMMY_PREPROD',
66
POSTHOG_API_KEY: 'DUMMY_POSTHOG_API_KEY',
77
POSTHOG_PROJECT_ID: 'DUMMY_POSTHOG_PROJECT_ID',
8+
LACE_EXTENSION_ID: 'DUMMY_EXT_ID',
89
};
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
if (process.env.LACE_EXTENSION_ID === undefined) {
1+
import secrets from '../../../../config/provider';
2+
3+
if (secrets.LACE_EXTENSION_ID === undefined) {
24
throw new Error('process.env.LACE_EXTENSION_ID must be defined');
35
}
4-
export const LACE_EXTENSION_ID = process.env.LACE_EXTENSION_ID;
6+
export const LACE_EXTENSION_ID = secrets.LACE_EXTENSION_ID;

src/config/provider.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,5 @@ export default {
2626
},
2727
posthog_api_token: secrets.POSTHOG_API_KEY,
2828
posthog_project_id: secrets.POSTHOG_PROJECT_ID,
29+
LACE_EXTENSION_ID: secrets.LACE_EXTENSION_ID,
2930
};

src/features/sentry.js

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,28 @@
11
import * as Sentry from '@sentry/react';
22

33
Sentry.init({
4-
environment: process.env.NODE_ENV,
5-
dsn: process.env.SENTRY_DSN,
6-
integrations: [
7-
Sentry.browserTracingIntegration(),
8-
Sentry.browserProfilingIntegration(),
9-
Sentry.replayIntegration(),
10-
],
11-
// Set `tracePropagationTargets` to control for which URLs trace propagation should be enabled
12-
tracePropagationTargets: ["localhost", "chrome-extension://bpmphiofbkjfgclgimheipflhladbngo"],
13-
// .5%
14-
tracesSampleRate: 0.05,
15-
profilesSampleRate: 0.05,
16-
// Since profilesSampleRate is relative to tracesSampleRate,
17-
// the final profiling rate can be computed as tracesSampleRate * profilesSampleRate
18-
// A tracesSampleRate of 0.05 and profilesSampleRate of 0.05 results in 2.5% of
19-
// transactions being profiled (0.05*0.05=0.0025)
4+
environment: process.env.NODE_ENV,
5+
dsn: process.env.SENTRY_DSN,
6+
integrations: [
7+
Sentry.browserTracingIntegration(),
8+
Sentry.browserProfilingIntegration(),
9+
Sentry.replayIntegration(),
10+
],
11+
// Set `tracePropagationTargets` to control for which URLs trace propagation should be enabled
12+
tracePropagationTargets: [
13+
'localhost',
14+
'chrome-extension://lpfcbjknijpeeillifnkikgncikgfhdo',
15+
],
16+
// .5%
17+
tracesSampleRate: 0.05,
18+
profilesSampleRate: 0.05,
19+
// Since profilesSampleRate is relative to tracesSampleRate,
20+
// the final profiling rate can be computed as tracesSampleRate * profilesSampleRate
21+
// A tracesSampleRate of 0.05 and profilesSampleRate of 0.05 results in 2.5% of
22+
// transactions being profiled (0.05*0.05=0.0025)
2023

21-
// Capture Replay for 0.5% of all sessions,
22-
replaysSessionSampleRate: 0.005,
23-
// ...plus for 100% of sessions with an error
24-
replaysOnErrorSampleRate: 1.0,
24+
// Capture Replay for 0.5% of all sessions,
25+
replaysSessionSampleRate: 0.005,
26+
// ...plus for 100% of sessions with an error
27+
replaysOnErrorSampleRate: 1.0,
2528
});

webpack.config.js

Lines changed: 49 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ var webpack = require('webpack'),
88
TerserPlugin = require('terser-webpack-plugin'),
99
NodePolyfillPlugin = require('node-polyfill-webpack-plugin'),
1010
ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin');
11-
const { sentryWebpackPlugin } = require("@sentry/webpack-plugin");
11+
const { sentryWebpackPlugin } = require('@sentry/webpack-plugin');
1212

1313
require('dotenv').config();
1414

@@ -21,7 +21,7 @@ var secretsPath = path.join(__dirname, 'secrets.' + env.NODE_ENV + '.js');
2121

2222
require('dotenv-defaults').config({
2323
path: './.env',
24-
encoding: 'utf8'
24+
encoding: 'utf8',
2525
});
2626

2727
var fileExtensions = [
@@ -44,14 +44,17 @@ if (fileSystem.existsSync(secretsPath)) {
4444
const isDevelopment = process.env.NODE_ENV === 'development';
4545

4646
const hasSentryConfig =
47-
!!process.env.SENTRY_AUTH_TOKEN &&
48-
!!process.env.SENTRY_ORG &&
49-
!!process.env.SENTRY_PROJECT &&
50-
!!process.env.SENTRY_DSN
47+
!!process.env.SENTRY_AUTH_TOKEN &&
48+
!!process.env.SENTRY_ORG &&
49+
!!process.env.SENTRY_PROJECT &&
50+
!!process.env.SENTRY_DSN;
5151

52-
const withMaybeSentry = (p) => hasSentryConfig ? [ path.join(__dirname, 'src', 'features', 'sentry.js'), p ] : p;
52+
const withMaybeSentry = (p) =>
53+
hasSentryConfig
54+
? [path.join(__dirname, 'src', 'features', 'sentry.js'), p]
55+
: p;
5356

54-
const envsToExpose = ['NODE_ENV', 'LACE_EXTENSION_ID', 'NAMI_EXTENSION_ID'];
57+
const envsToExpose = ['NODE_ENV'];
5558
if (hasSentryConfig) envsToExpose.push('SENTRY_DSN');
5659

5760
var options = {
@@ -61,28 +64,31 @@ var options = {
6164
},
6265
mode: process.env.NODE_ENV || 'development',
6366
entry: {
64-
mainPopup: withMaybeSentry(path.join(__dirname, 'src', 'ui', 'indexMain.jsx')),
65-
internalPopup: withMaybeSentry(path.join(__dirname, 'src', 'ui', 'indexInternal.jsx')),
66-
hwTab: withMaybeSentry(path.join(__dirname, 'src', 'ui', 'app', 'tabs', 'hw.jsx')),
67-
createWalletTab: withMaybeSentry(path.join(
68-
__dirname,
69-
'src',
70-
'ui',
71-
'app',
72-
'tabs',
73-
'createWallet.jsx'
74-
)),
75-
trezorTx: withMaybeSentry(path.join(__dirname, 'src', 'ui', 'app', 'tabs', 'trezorTx.jsx')),
76-
background: withMaybeSentry(path.join(__dirname, 'src', 'pages', 'Background', 'index.js')),
77-
contentScript: withMaybeSentry(path.join(__dirname, 'src', 'pages', 'Content', 'index.js')),
78-
injected: withMaybeSentry(path.join(__dirname, 'src', 'pages', 'Content', 'injected.js')),
79-
trezorContentScript: withMaybeSentry(path.join(
80-
__dirname,
81-
'src',
82-
'pages',
83-
'Content',
84-
'trezorContentScript.js'
85-
))
67+
mainPopup: withMaybeSentry(
68+
path.join(__dirname, 'src', 'ui', 'indexMain.jsx')
69+
),
70+
internalPopup: withMaybeSentry(
71+
path.join(__dirname, 'src', 'ui', 'indexInternal.jsx')
72+
),
73+
hwTab: withMaybeSentry(
74+
path.join(__dirname, 'src', 'ui', 'app', 'tabs', 'hw.jsx')
75+
),
76+
createWalletTab: withMaybeSentry(
77+
path.join(__dirname, 'src', 'ui', 'app', 'tabs', 'createWallet.jsx')
78+
),
79+
trezorTx: withMaybeSentry(
80+
path.join(__dirname, 'src', 'ui', 'app', 'tabs', 'trezorTx.jsx')
81+
),
82+
background: path.join(__dirname, 'src', 'pages', 'Background', 'index.js'),
83+
contentScript: withMaybeSentry(
84+
path.join(__dirname, 'src', 'pages', 'Content', 'index.js')
85+
),
86+
injected: withMaybeSentry(
87+
path.join(__dirname, 'src', 'pages', 'Content', 'injected.js')
88+
),
89+
trezorContentScript: withMaybeSentry(
90+
path.join(__dirname, 'src', 'pages', 'Content', 'trezorContentScript.js')
91+
),
8692
},
8793
chromeExtensionBoilerplate: {
8894
notHotReload: ['contentScript', 'devtools', 'injected'],
@@ -193,13 +199,19 @@ var options = {
193199
},
194200
plugins: [
195201
...(isDevelopment ? [new ReactRefreshWebpackPlugin()] : []),
196-
...(hasSentryConfig ? [sentryWebpackPlugin({
197-
authToken: process.env.SENTRY_AUTH_TOKEN,
198-
org: process.env.SENTRY_ORG,
199-
project: process.env.SENTRY_PROJECT,
200-
telemetry: false,
201-
url: 'https://sentry.io/'
202-
})] : []),
202+
...(hasSentryConfig
203+
? [
204+
sentryWebpackPlugin({
205+
authToken: process.env.SENTRY_AUTH_TOKEN,
206+
org: process.env.SENTRY_ORG,
207+
project: process.env.SENTRY_PROJECT,
208+
telemetry: false,
209+
include: './build',
210+
url: 'https://sentry.io/',
211+
ignore: ['node_modules', 'webpack.config.js'],
212+
}),
213+
]
214+
: []),
203215
new webpack.BannerPlugin({
204216
banner: () => {
205217
return 'globalThis.document={getElementsByTagName:()=>[],createElement:()=>({ setAttribute:()=>{}}),head:{appendChild:()=>{}}};';

0 commit comments

Comments
 (0)