Skip to content

Commit 5a737c1

Browse files
chore: update deployment scripts for new workflow compatibility
1 parent 1db62f0 commit 5a737c1

File tree

7 files changed

+52
-279
lines changed

7 files changed

+52
-279
lines changed
Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
//hosting url
2-
export const HOST = 'https://bellecour.iex.ec';
32

43
//deployment parameters
54
export const APP_NAME = 'web3mail';
@@ -11,21 +10,6 @@ export const DEFAULT_APP_PRICE = 0;
1110
export const DEFAULT_APP_VOLUME = 1000000;
1211
export const APP_TAG = ['tee', 'scone'];
1312

14-
//ENS name
15-
export const WEB3_MAIL_ENS_NAME_DEV = 'web3mail-dev.apps.iexec.eth';
16-
export const WEB3_MAIL_ENS_NAME_PROD = 'web3mail.apps.iexec.eth';
17-
1813
export const DOCKER_IMAGE_NAMESPACE = 'iexechub';
1914
export const DOCKER_IMAGE_REPOSITORY = 'web3mail-dapp';
2015

21-
//GitHub Actions environment variables
22-
export const GITHUB_DEPLOY_ENVIRONMENT =
23-
process.env.DEPLOY_ENVIRONMENT || 'dapp-dev';
24-
export const GITHUB_DEPLOY_TO_DEV = 'dapp-dev';
25-
export const GITHUB_DEPLOY_TO_PROD = 'dapp-prod';
26-
27-
//Previous Web3mail dapp addresses
28-
export const WEB3MAIL_WHITELISTED_APPS_DEV =
29-
'["0x600dc5ad1fdb376a37777298ff2c75a48fd220d2"]';
30-
export const WEB3MAIL_WHITELISTED_APPS_PROD =
31-
'["0x0d8b899f2faa0fe9f0b17bcf4debd0cbc9e574ef"]';

deployment-dapp/src/configureEnsNameScript.ts

Lines changed: 8 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,19 @@
1-
import {
2-
GITHUB_DEPLOY_TO_DEV,
3-
GITHUB_DEPLOY_TO_PROD,
4-
WEB3_MAIL_ENS_NAME_DEV,
5-
WEB3_MAIL_ENS_NAME_PROD,
6-
} from './config/config.js';
7-
import { getIExec, loadAppAddress } from './utils/utils.js';
81
import { configureEnsName } from './singleFunction/configureEnsName.js';
2+
import { getIExec, loadAppAddress } from './utils/utils.js';
93

104
const main = async () => {
11-
// get env variables from GitHub Actions
12-
const {
13-
DEPLOY_ENVIRONMENT,
14-
WALLET_PRIVATE_KEY_DEV,
15-
WALLET_PRIVATE_KEY_PROD,
16-
} = process.env;
17-
18-
// Determine deployment environment
19-
const deployEnvironment = DEPLOY_ENVIRONMENT || GITHUB_DEPLOY_TO_DEV;
20-
21-
if (
22-
deployEnvironment !== GITHUB_DEPLOY_TO_DEV &&
23-
deployEnvironment !== GITHUB_DEPLOY_TO_PROD
24-
) {
25-
throw Error(`Invalid deployment environment ${deployEnvironment}`);
26-
}
5+
const { RPC_URL, WALLET_PRIVATE_KEY, DAPP_ENS_NAME } = process.env;
276

287
const appAddress = await loadAppAddress();
298

30-
let privateKey;
31-
let ensName;
32-
if (deployEnvironment === GITHUB_DEPLOY_TO_DEV) {
33-
privateKey = WALLET_PRIVATE_KEY_DEV;
34-
ensName = WEB3_MAIL_ENS_NAME_DEV;
35-
} else if (deployEnvironment === GITHUB_DEPLOY_TO_PROD) {
36-
privateKey = WALLET_PRIVATE_KEY_PROD;
37-
ensName = WEB3_MAIL_ENS_NAME_PROD;
38-
}
39-
40-
if (!privateKey)
41-
throw Error(
42-
`Failed to get privateKey for environment ${deployEnvironment}`
43-
);
44-
45-
if (!ensName)
46-
throw Error(`Failed to get ens name for environment ${deployEnvironment}`);
9+
if (!WALLET_PRIVATE_KEY)
10+
throw Error(`Failed to get privateKey from environment variables`);
4711

48-
const iexec = getIExec(privateKey);
12+
if (!DAPP_ENS_NAME)
13+
throw Error(`Failed to get DAPP_ENS_NAME from environment variables`);
4914

50-
await configureEnsName(iexec, appAddress, ensName);
15+
const iexec = getIExec(WALLET_PRIVATE_KEY, RPC_URL);
16+
await configureEnsName(iexec, appAddress, DAPP_ENS_NAME);
5117
};
5218

5319
main().catch((e) => {

deployment-dapp/src/deployScript.ts

Lines changed: 13 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,30 @@
1-
import {
2-
GITHUB_DEPLOY_TO_DEV,
3-
GITHUB_DEPLOY_TO_PROD,
4-
} from './config/config.js';
51
import { deployApp } from './singleFunction/deployApp.js';
62
import { getIExec, saveAppAddress } from './utils/utils.js';
73

84
const main = async () => {
95
// get env variables from GitHub Actions
106
const {
11-
DEPLOY_ENVIRONMENT,
12-
WALLET_PRIVATE_KEY_DEV,
13-
WALLET_PRIVATE_KEY_PROD,
14-
DOCKER_IMAGE_DEV_TAG,
15-
DOCKER_IMAGE_PROD_TAG,
7+
RPC_URL,
8+
WALLET_PRIVATE_KEY,
9+
DOCKER_IMAGE_TAG,
10+
CHECKSUM,
11+
FINGERPRINT,
1612
} = process.env;
1713

18-
// Determine deployment environment
19-
const deployEnvironment = DEPLOY_ENVIRONMENT || GITHUB_DEPLOY_TO_DEV;
14+
if (!WALLET_PRIVATE_KEY)
15+
throw Error(`Missing WALLET_PRIVATE_KEY environment variable`);
2016

21-
if (
22-
deployEnvironment !== GITHUB_DEPLOY_TO_DEV &&
23-
deployEnvironment !== GITHUB_DEPLOY_TO_PROD
24-
) {
25-
throw Error(`Invalid deployment environment ${deployEnvironment}`);
26-
}
27-
28-
let privateKey;
29-
if (deployEnvironment === GITHUB_DEPLOY_TO_DEV) {
30-
privateKey = WALLET_PRIVATE_KEY_DEV;
31-
} else if (deployEnvironment === GITHUB_DEPLOY_TO_PROD) {
32-
privateKey = WALLET_PRIVATE_KEY_PROD;
33-
}
34-
35-
if (!privateKey)
36-
throw Error(
37-
`Failed to get privateKey for environment ${deployEnvironment}`
38-
);
39-
40-
const iexec = getIExec(privateKey);
41-
42-
const dockerImageTag =
43-
deployEnvironment === GITHUB_DEPLOY_TO_DEV
44-
? DOCKER_IMAGE_DEV_TAG
45-
: DOCKER_IMAGE_PROD_TAG;
17+
const iexec = getIExec(WALLET_PRIVATE_KEY, RPC_URL);
4618

47-
if (!dockerImageTag) {
48-
throw Error(
49-
`Missing docker image tag for environment ${deployEnvironment}`
50-
);
19+
if (!DOCKER_IMAGE_TAG) {
20+
throw Error(`Missing DOCKER_IMAGE_TAG environment variable.`);
5121
}
5222

53-
//deploy app
5423
const address = await deployApp({
5524
iexec,
56-
dockerTag: dockerImageTag,
25+
dockerTag: DOCKER_IMAGE_TAG,
26+
checksum: CHECKSUM,
27+
fingerprint: FINGERPRINT,
5728
});
5829
await saveAppAddress(address);
5930
};

deployment-dapp/src/publishSellOrderScript.ts

Lines changed: 6 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,17 @@
1-
import { getIExec, loadAppAddress } from './utils/utils.js';
1+
import { DEFAULT_APP_PRICE, DEFAULT_APP_VOLUME } from './config/config.js';
22
import { publishSellOrder } from './singleFunction/publishSellOrder.js';
3-
import { resolveName } from './singleFunction/resolveName.js';
4-
import {
5-
GITHUB_DEPLOY_TO_DEV,
6-
GITHUB_DEPLOY_TO_PROD,
7-
WEB3_MAIL_ENS_NAME_DEV,
8-
WEB3_MAIL_ENS_NAME_PROD,
9-
DEFAULT_APP_PRICE,
10-
DEFAULT_APP_VOLUME,
11-
} from './config/config.js';
3+
import { getIExec, loadAppAddress } from './utils/utils.js';
124
import {
13-
positiveStrictIntegerSchema,
145
positiveNumberSchema,
6+
positiveStrictIntegerSchema,
157
} from './utils/validator.js';
168

179
const main = async () => {
18-
// get env variables from GitHub Actions
19-
const {
20-
DEPLOY_ENVIRONMENT,
21-
WALLET_PRIVATE_KEY_DEV,
22-
WALLET_PRIVATE_KEY_PROD,
23-
PRICE,
24-
VOLUME,
25-
} = process.env;
26-
27-
// Determine deployment environment
28-
const deployEnvironment = DEPLOY_ENVIRONMENT || GITHUB_DEPLOY_TO_DEV;
29-
30-
if (
31-
deployEnvironment !== GITHUB_DEPLOY_TO_DEV &&
32-
deployEnvironment !== GITHUB_DEPLOY_TO_PROD
33-
) {
34-
throw Error(`Invalid deployment environment ${deployEnvironment}`);
35-
}
36-
37-
let privateKey;
38-
if (deployEnvironment === GITHUB_DEPLOY_TO_DEV) {
39-
privateKey = WALLET_PRIVATE_KEY_DEV;
40-
} else if (deployEnvironment === GITHUB_DEPLOY_TO_PROD) {
41-
privateKey = WALLET_PRIVATE_KEY_PROD;
42-
}
43-
44-
if (!privateKey)
45-
throw Error(
46-
`Failed to get privateKey for environment ${deployEnvironment}`
47-
);
10+
const { RPC_URL, WALLET_PRIVATE_KEY, PRICE, VOLUME } = process.env;
4811

49-
const iexec = getIExec(privateKey);
12+
const iexec = getIExec(WALLET_PRIVATE_KEY, RPC_URL);
5013

51-
const appAddress = await loadAppAddress().catch(() => {
52-
console.log('No app address found falling back to ENS');
53-
let ensName;
54-
if (deployEnvironment === GITHUB_DEPLOY_TO_DEV) {
55-
ensName = WEB3_MAIL_ENS_NAME_DEV;
56-
} else if (deployEnvironment === GITHUB_DEPLOY_TO_PROD) {
57-
ensName = WEB3_MAIL_ENS_NAME_PROD;
58-
}
59-
if (!ensName)
60-
throw Error(
61-
`Failed to get ens name for environment ${deployEnvironment}`
62-
);
63-
return resolveName(iexec, ensName);
64-
});
14+
const appAddress = await loadAppAddress();
6515

6616
if (!appAddress) throw Error('Failed to get app address'); // If the app was not deployed, do not continue
6717

deployment-dapp/src/pushSecretScript.ts

Lines changed: 13 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,86 +1,38 @@
1-
import {
2-
GITHUB_DEPLOY_TO_DEV,
3-
GITHUB_DEPLOY_TO_PROD,
4-
WEB3_MAIL_ENS_NAME_DEV,
5-
WEB3_MAIL_ENS_NAME_PROD,
6-
WEB3MAIL_WHITELISTED_APPS_DEV,
7-
WEB3MAIL_WHITELISTED_APPS_PROD,
8-
} from './config/config.js';
91
import { pushSecret } from './singleFunction/pushSecret.js';
10-
import { resolveName } from './singleFunction/resolveName.js';
112
import { getIExec, loadAppAddress } from './utils/utils.js';
123

134
const main = async () => {
14-
// get env variables from GitHub Actions
155
const {
16-
DEPLOY_ENVIRONMENT,
17-
WALLET_PRIVATE_KEY_DEV,
18-
WALLET_PRIVATE_KEY_PROD,
6+
RPC_URL,
7+
WALLET_PRIVATE_KEY,
198
MJ_APIKEY_PUBLIC,
209
MJ_APIKEY_PRIVATE,
2110
MJ_SENDER,
2211
MAILGUN_APIKEY,
12+
WEB3MAIL_WHITELISTED_APPS,
2313
} = process.env;
2414

25-
// Determine deployment environment
26-
const deployEnvironment = DEPLOY_ENVIRONMENT || GITHUB_DEPLOY_TO_DEV;
27-
28-
if (
29-
deployEnvironment !== GITHUB_DEPLOY_TO_DEV &&
30-
deployEnvironment !== GITHUB_DEPLOY_TO_PROD
31-
) {
32-
throw Error(`Invalid deployment environment ${deployEnvironment}`);
33-
}
34-
15+
if (!WALLET_PRIVATE_KEY)
16+
throw Error(`Missing WALLET_PRIVATE_KEY environment variable`);
3517
if (!MJ_APIKEY_PUBLIC) throw Error('Missing env MJ_APIKEY_PUBLIC');
3618
if (!MJ_APIKEY_PRIVATE) throw Error('Missing env MJ_APIKEY_PRIVATE');
3719
if (!MJ_SENDER) throw Error('Missing env MJ_SENDER');
3820
if (!MAILGUN_APIKEY) throw Error('Missing env MAILGUN_APIKEY');
21+
if (!WEB3MAIL_WHITELISTED_APPS)
22+
throw Error('Missing env WEB3MAIL_WHITELISTED_APPS');
3923

40-
let privateKey;
41-
let baseWhitelistedApps;
42-
43-
if (deployEnvironment === GITHUB_DEPLOY_TO_DEV) {
44-
privateKey = WALLET_PRIVATE_KEY_DEV;
45-
baseWhitelistedApps = JSON.parse(
46-
process.env.WEB3MAIL_WHITELISTED_APPS_DEV || WEB3MAIL_WHITELISTED_APPS_DEV
47-
);
48-
} else if (deployEnvironment === GITHUB_DEPLOY_TO_PROD) {
49-
privateKey = WALLET_PRIVATE_KEY_PROD;
50-
baseWhitelistedApps = JSON.parse(
51-
process.env.WEB3MAIL_WHITELISTED_APPS_PROD ||
52-
WEB3MAIL_WHITELISTED_APPS_PROD
53-
);
54-
}
24+
if (!WALLET_PRIVATE_KEY)
25+
throw Error(`Missing WALLET_PRIVATE_KEY environment variable`);
5526

56-
if (!privateKey)
57-
throw Error(
58-
`Failed to get privateKey for environment ${deployEnvironment}`
59-
);
27+
const iexec = getIExec(WALLET_PRIVATE_KEY, RPC_URL);
6028

61-
const iexec = getIExec(privateKey);
62-
63-
const appAddress = await loadAppAddress().catch(() => {
64-
console.log('No app address found falling back to ENS');
65-
let ensName;
66-
if (deployEnvironment === GITHUB_DEPLOY_TO_DEV) {
67-
ensName = WEB3_MAIL_ENS_NAME_DEV;
68-
} else if (deployEnvironment === GITHUB_DEPLOY_TO_PROD) {
69-
ensName = WEB3_MAIL_ENS_NAME_PROD;
70-
}
71-
if (!ensName)
72-
throw Error(
73-
`Failed to get ens name for environment ${deployEnvironment}`
74-
);
75-
return resolveName(iexec, ensName);
76-
});
29+
const appAddress = await loadAppAddress();
7730

7831
if (!appAddress) throw Error('Failed to get app address'); // If the app was not deployed, do not continue
7932
const fullWhitelistedApps = [
80-
...new Set([...baseWhitelistedApps, appAddress]),
33+
...new Set([...WEB3MAIL_WHITELISTED_APPS.split(','), appAddress]),
8134
];
82-
//deploy app
83-
//push app secret to the secret management
35+
8436
const jsonSecret = JSON.stringify({
8537
MJ_APIKEY_PUBLIC,
8638
MJ_APIKEY_PRIVATE,

0 commit comments

Comments
 (0)