Skip to content

Commit ca2f7ed

Browse files
authored
Merge pull request #1852 from RedisInsight/build/mac_apple_store
#RI-4284 - Prepare RedisInsight for the Apple Store
2 parents e1e5bf7 + 58ff4ea commit ca2f7ed

File tree

12 files changed

+436
-385
lines changed

12 files changed

+436
-385
lines changed

.circleci/config.yml

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ aliases:
88
security create-keychain -p mysecretpassword $KEYCHAIN
99
security default-keychain -s $KEYCHAIN
1010
security unlock-keychain -p mysecretpassword $KEYCHAIN
11-
security import certs/cert.p12 -k $KEYCHAIN -P "$CSC_KEY_PASSWORD" -T /usr/bin/codesign
11+
security set-keychain-settings -u -t 10000000 $KEYCHAIN
12+
security import certs/mac-developer.p12 -k $KEYCHAIN -P "$CSC_KEY_PASSWORD" -T /usr/bin/codesign -T /usr/bin/productbuild
13+
security import certs/mas-distribution.p12 -k $KEYCHAIN -P "$CSC_MAS_PASSWORD" -T /usr/bin/codesign -T /usr/bin/productbuild
14+
security import certs/mac-installer.p12 -k $KEYCHAIN -P "$CSC_MAC_INSTALLER_PASSWORD" -T /usr/bin/codesign -T /usr/bin/productbuild
1215
security set-key-partition-list -S apple-tool:,apple: -s -k mysecretpassword $KEYCHAIN
1316
environment:
1417
KEYCHAIN: redisinsight.keychain
@@ -129,7 +132,7 @@ aliases:
129132
key: v1-ui-deps-{{ checksum "redisinsight/api/yarn.lock" }}
130133

131134
orbs:
132-
win: circleci/[email protected].0
135+
win: circleci/[email protected].1
133136
node: circleci/[email protected]
134137
aws: circleci/[email protected]
135138

@@ -447,7 +450,9 @@ jobs:
447450
name: Setup sign certificates
448451
command: |
449452
mkdir -p certs
450-
echo "$CSC_P12_BASE64" | base64 -id > certs/cert.p12
453+
echo "$CSC_P12_BASE64" | base64 -id > certs/mac-developer.p12
454+
echo "$CSC_MAC_INSTALLER_P12_BASE64" | base64 -id > certs/mac-installer.p12
455+
echo "$CSC_MAS_P12_BASE64" | base64 -id > certs/mas-distribution.p12
451456
echo "$WIN_CSC_PFX_BASE64" | base64 -id > certs/redislabs_win.pfx
452457
- persist_to_workspace:
453458
root: .
@@ -469,19 +474,11 @@ jobs:
469474
mkdir electron
470475
471476
CURRENT_VERSION=$(jq -r ".version" redisinsight/package.json)
472-
echo "Version: ${CURRENT_VERSION}"
473-
474-
if [ << parameters.env >> == "prod" ]; then
475-
echo "Build version: $CURRENT_VERSION"
476-
cp ./redisinsight/package.json ./electron/package.json
477-
echo "$VERSION" > electron/version
478-
exit 0
479-
fi
480-
481-
VERSION=$CURRENT_VERSION-<< parameters.env >>-$CIRCLE_BUILD_NUM
482-
echo "Build version: $VERSION"
477+
echo "Build version: $CURRENT_VERSION"
478+
cp ./redisinsight/package.json ./electron/package.json
483479
echo "$VERSION" > electron/version
484-
echo $(jq ".version=\"$VERSION\"" redisinsight/package.json) > electron/package.json
480+
exit 0
481+
485482
- persist_to_workspace:
486483
root: /root/project
487484
paths:
@@ -568,7 +565,7 @@ jobs:
568565
- release/redisstack
569566
macosx:
570567
macos:
571-
xcode: 13.2.1
568+
xcode: 14.2.0
572569
parameters:
573570
env:
574571
description: Build environment (stage || prod)
@@ -595,6 +592,10 @@ jobs:
595592
- run:
596593
name: Build macos dmg
597594
command: |
595+
unset CSC_LINK
596+
export CSC_IDENTITY_AUTO_DISCOVERY=true
597+
export CSC_KEYCHAIN=redisinsight.keychain
598+
598599
if [ << parameters.env >> == 'prod' ]; then
599600
yarn package:prod
600601
rm -rf release/mac
@@ -609,7 +610,7 @@ jobs:
609610
610611
UPGRADES_LINK='' SEGMENT_WRITE_KEY='' yarn package:stage
611612
rm -rf release/mac
612-
no_output_timeout: 15m
613+
no_output_timeout: 60m
613614

614615
- run:
615616
name: Repack dmg to tar
@@ -622,6 +623,7 @@ jobs:
622623
- release/RedisInsight*.zip
623624
- release/RedisInsight*.dmg
624625
- release/RedisInsight*.dmg.blockmap
626+
- release/**/*.pkg
625627
- release/*-mac.yml
626628
- release/redisstack
627629
windows:

dev.provisionprofile

12.5 KB
Binary file not shown.

electron-builder.json

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,76 @@
1414
"afterSign": "electron-builder-notarize",
1515
"artifactName": "${productName}-${os}-${arch}.${ext}",
1616
"compression": "normal",
17+
"asarUnpack": [
18+
"node_modules/keytar",
19+
"node_modules/sqlite3",
20+
"node_modules/cpu-features"
21+
],
1722
"mac": {
1823
"target": [
1924
{
2025
"target": "dmg",
2126
"arch": ["x64", "arm64"]
22-
}, {
27+
},
28+
{
2329
"target": "zip",
2430
"arch": ["x64", "arm64"]
31+
},
32+
{
33+
"target": "mas",
34+
"arch": ["universal"]
2535
}
2636
],
2737
"type": "distribution",
2838
"hardenedRuntime": true,
2939
"darkModeSupport": true,
40+
"bundleVersion": "0.0.57",
41+
"icon": "resources/icon.icns",
42+
"artifactName": "${productName}-${os}-${arch}.${ext}",
3043
"entitlements": "resources/entitlements.mac.plist",
3144
"entitlementsInherit": "resources/entitlements.mac.plist",
3245
"gatekeeperAssess": false
3346
},
47+
"mas": {
48+
"mergeASARs": false,
49+
"entitlements": "resources/entitlements.mas.plist",
50+
"entitlementsInherit": "resources/entitlements.mas.inherit.plist",
51+
"entitlementsLoginHelper": "resources/entitlements.mas.loginhelper.plist",
52+
"hardenedRuntime": false,
53+
"asarUnpack": ["node_modules"],
54+
"provisioningProfile": "embedded.provisionprofile",
55+
"binaries": [
56+
"Contents/Resources/app-x64.asar.unpacked/node_modules/sqlite3/lib/binding/napi-v6-darwin-unknown-arm64/node_sqlite3.node",
57+
"Contents/Resources/app-x64.asar.unpacked/node_modules/sqlite3/lib/binding/napi-v6-darwin-unknown-x64/node_sqlite3.node",
58+
"Contents/Resources/app-arm64.asar.unpacked/node_modules/sqlite3/lib/binding/napi-v6-darwin-unknown-arm64/node_sqlite3.node",
59+
"Contents/Resources/app-arm64.asar.unpacked/node_modules/sqlite3/lib/binding/napi-v6-darwin-unknown-x64/node_sqlite3.node",
60+
"Contents/Resources/app-arm64.asar.unpacked/node_modules/keytar/build/Release/keytar.node",
61+
"Contents/Resources/app-x64.asar.unpacked/node_modules/keytar/build/Release/keytar.node",
62+
"Contents/Resources/app-arm64.asar.unpacked/node_modules/cpu-features/build/Release/cpufeatures.node",
63+
"Contents/Resources/app-x64.asar.unpacked/node_modules/cpu-features/build/Release/cpufeatures.node"
64+
],
65+
"artifactName": "${productName}-${os}-${arch}-mas.${ext}"
66+
},
67+
"masDev": {
68+
"mergeASARs": false,
69+
"entitlements": "resources/entitlements.mas.plist",
70+
"entitlementsInherit": "resources/entitlements.mas.inherit.plist",
71+
"entitlementsLoginHelper": "resources/entitlements.mas.loginhelper.plist",
72+
"hardenedRuntime": false,
73+
"asarUnpack": ["node_modules"],
74+
"provisioningProfile": "dev.provisionprofile",
75+
"binaries": [
76+
"Contents/Resources/app-x64.asar.unpacked/node_modules/sqlite3/lib/binding/napi-v6-darwin-unknown-arm64/node_sqlite3.node",
77+
"Contents/Resources/app-x64.asar.unpacked/node_modules/sqlite3/lib/binding/napi-v6-darwin-unknown-x64/node_sqlite3.node",
78+
"Contents/Resources/app-arm64.asar.unpacked/node_modules/sqlite3/lib/binding/napi-v6-darwin-unknown-arm64/node_sqlite3.node",
79+
"Contents/Resources/app-arm64.asar.unpacked/node_modules/sqlite3/lib/binding/napi-v6-darwin-unknown-x64/node_sqlite3.node",
80+
"Contents/Resources/app-arm64.asar.unpacked/node_modules/keytar/build/Release/keytar.node",
81+
"Contents/Resources/app-x64.asar.unpacked/node_modules/keytar/build/Release/keytar.node",
82+
"Contents/Resources/app-arm64.asar.unpacked/node_modules/cpu-features/build/Release/cpufeatures.node",
83+
"Contents/Resources/app-x64.asar.unpacked/node_modules/cpu-features/build/Release/cpufeatures.node"
84+
],
85+
"artifactName": "${productName}-${os}-${arch}-masDev.${ext}"
86+
},
3487
"dmg": {
3588
"contents": [
3689
{
@@ -48,6 +101,7 @@
48101
"win": {
49102
"target": ["nsis"],
50103
"artifactName": "${productName}-${os}-installer.${ext}",
104+
"icon": "resources/icon.ico",
51105
"publisherName": [
52106
"Redis Inc.",
53107
"Redis Labs Inc."

embedded.provisionprofile

12.1 KB
Binary file not shown.

package.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
"package": "yarn package:dev",
2727
"package:prod": "yarn build:prod && electron-builder build -p never",
2828
"package:stage": "yarn build:stage && electron-builder build -p never",
29+
"build:mas": "electron-builder build -p never -m mas:universal",
30+
"build:mas:dev": "electron-builder build -p never -m mas-dev:universal",
2931
"package:dev": "yarn build && cross-env DEBUG=electron-builder electron-builder build -p never",
3032
"package:win": "yarn build:prod && electron-builder build --win --x64 -p never",
3133
"package:mac": "yarn build:prod && electron-builder build --mac -p never",
@@ -152,11 +154,11 @@
152154
"css-loader": "^5.0.1",
153155
"css-minimizer-webpack-plugin": "^1.2.0",
154156
"electron": "^19.0.7",
155-
"electron-builder": "^23.1.0",
156-
"electron-builder-notarize": "^1.5.0",
157+
"electron-builder": "^23.6.0",
158+
"electron-builder-notarize": "^1.5.1",
157159
"electron-debug": "^3.2.0",
158160
"electron-devtools-installer": "^3.2.0",
159-
"electron-rebuild": "^3.2.7",
161+
"electron-rebuild": "^3.2.9",
160162
"eslint": "^7.5.0",
161163
"eslint-config-airbnb": "^18.2.1",
162164
"eslint-config-airbnb-typescript": "^12.0.0",

redisinsight/about-panel.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ const ICON_PATH = app.isPackaged
77

88
export default {
99
applicationName: 'RedisInsight-v2',
10-
applicationVersion: app.getVersion() || '2.20.0',
10+
applicationVersion:
11+
`${app.getVersion() || '2.20.0'}${process.env.NODE_ENV !== 'production' && `-dev-${process.getCreationTime()}`}`,
1112
copyright: `Copyright © ${new Date().getFullYear()} Redis Ltd.`,
1213
iconPath: ICON_PATH,
1314
};

redisinsight/main.dev.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ const bootstrap = async () => {
141141

142142
const upgradeUrl = process.env.MANUAL_UPGRADES_LINK || process.env.UPGRADES_LINK;
143143

144-
if (upgradeUrl) {
144+
if (upgradeUrl && !process.mas) {
145145
new AppUpdater(upgradeUrl);
146146
}
147147

redisinsight/ui/src/packages/redisgraph/src/styles/styles.less

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
@charset "UTF-8";
2-
@import "_dark_theme.less";
3-
@import "_light_theme.less";
2+
@import (less) "_dark_theme.less";
3+
@import (less) "_light_theme.less";
44

55
* {
66
margin: 0px;
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>com.apple.security.app-sandbox</key>
6+
<true/>
7+
<key>com.apple.security.inherit</key>
8+
<true/>
9+
</dict>
10+
</plist>
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>com.apple.security.app-sandbox</key>
6+
<true/>
7+
<key>com.apple.security.inherit</key>
8+
<true/>
9+
</dict>
10+
</plist>

0 commit comments

Comments
 (0)