@epoch-protocol/inventory-sdk 1.0.4 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/safe-ops/index.d.ts.map +1 -1
- package/dist/safe-ops/index.js +0 -4
- package/dist/safe-ops/index.js.map +1 -1
- package/dist/token/index.d.ts.map +1 -1
- package/dist/token/index.js +0 -2
- package/dist/token/index.js.map +1 -1
- package/package.json +2 -1
- package/src/safe-ops/index.ts +28 -27
- package/src/token/index.ts +11 -9
- package/src/token/models.ts +14 -2
- package/.github/workflows/main.yml +0 -91
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/safe-ops/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAA0B,MAAM,2BAA2B,CAAC;AACnE,OAAO,EACL,aAAa,EACb,eAAe,EACf,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAI3E,eAAO,MAAM,YAAY,GACvB,MAAM,IAAI,EACV,QAAQ,KAAK,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC,KACD,OAAO,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/safe-ops/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAA0B,MAAM,2BAA2B,CAAC;AACnE,OAAO,EACL,aAAa,EACb,eAAe,EACf,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAI3E,eAAO,MAAM,YAAY,GACvB,MAAM,IAAI,EACV,QAAQ,KAAK,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC,KACD,OAAO,CAAC,eAAe,CAQzB,CAAC;AAEF,eAAO,MAAM,UAAU,GACrB,MAAM,IAAI,EACV,QAAQ,eAAe,KACtB,OAAO,CAAC,eAAe,CAQzB,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,aAAa,MAAM,EACnB,QAAQ,MAAM,KACb,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,MAAM,IAAI,EACV,QAAQ,eAAe,EACvB,mBAAmB,MAAM,KACxB,OAAO,CAAC,eAAe,CAsBzB,CAAC;AAaF,eAAO,MAAM,eAAe,GAC1B,aAAa,MAAM,EACnB,YAAY,MAAM,EAClB,QAAQ,MAAM,KACb,OAAO,CAAC,IAAI,CASd,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,iBAAiB,eAAe,KAC/B,OAAO,CAAC;IACT,cAAc,EAAE,mBAAmB,CAAC;IACpC,UAAU,EAAE,0BAA0B,EAAE,CAAC;CAC1C,CAgBA,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,qBAAqB,mBAAmB,EACxC,6BAA6B,0BAA0B,EAAE,KACxD,OAAO,CAAC;IACT,MAAM,EAAE,mBAAmB,CAAC;IAC5B,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC,CAgBA,CAAC"}
|
package/dist/safe-ops/index.js
CHANGED
|
@@ -39,7 +39,6 @@ const kms_signing_1 = require("../kms-signing");
|
|
|
39
39
|
const createSafeTx = async (safe, txList) => {
|
|
40
40
|
try {
|
|
41
41
|
const safeTx = await safe.createTransaction({ transactions: txList });
|
|
42
|
-
console.log("safeTx", safeTx);
|
|
43
42
|
return safeTx;
|
|
44
43
|
}
|
|
45
44
|
catch (error) {
|
|
@@ -51,7 +50,6 @@ exports.createSafeTx = createSafeTx;
|
|
|
51
50
|
const signSafeTx = async (safe, safeTx) => {
|
|
52
51
|
try {
|
|
53
52
|
const signedSafeTx = await safe.signTransaction(safeTx);
|
|
54
|
-
console.log("signedSafeTx", signedSafeTx);
|
|
55
53
|
return signedSafeTx;
|
|
56
54
|
}
|
|
57
55
|
catch (error) {
|
|
@@ -110,11 +108,9 @@ const getSafeInstance = async (safeAddress, privateKey, rpcUrl) => {
|
|
|
110
108
|
};
|
|
111
109
|
exports.getSafeInstance = getSafeInstance;
|
|
112
110
|
const deconstructSafeTx = async (SafeTransaction) => {
|
|
113
|
-
console.log("SafeTransaction: ", SafeTransaction);
|
|
114
111
|
const safeTxElements = SafeTransaction.data;
|
|
115
112
|
const signatures = [];
|
|
116
113
|
Array.from(SafeTransaction.signatures.entries()).forEach(([key, signature]) => {
|
|
117
|
-
console.log("[key, signature]: ", [key, signature]);
|
|
118
114
|
signatures.push({
|
|
119
115
|
signer: key,
|
|
120
116
|
signature: signature.data,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/safe-ops/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0EAAmE;AAQnE,gDAA6D;AAEtD,MAAM,YAAY,GAAG,KAAK,EAC/B,IAAU,EACV,MAKE,EACwB,EAAE;IAC5B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;QACtE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/safe-ops/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/token/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAU,MAAM,QAAQ,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/token/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAU,MAAM,QAAQ,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAQ5C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,IAAI,MAAM,2BAA2B,CAAC;AAE7C,eAAO,MAAM,eAAe,GAC1B,SAAS,MAAM,EACf,OAAO,KAAK,EACZ,UAAU,QAAQ,KACjB,OAAO,CAAC,SAAS,CAkCnB,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,QAAQ,KAAK,EAAE,EACf,SAAS,MAAM,EACf,UAAU,QAAQ,KACjB,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAQ1B,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAC3C,cAAc,IAAI,EAClB,cAAc,MAAM,EACpB,kBAAkB,MAAM,EACxB,QAAQ,MAAM,EACd,QAAQ,OAAO,EACf,oBAAoB,MAAM,KACzB,OAAO,CAAC,eAAe,CAsCzB,CAAC;AAEF,eAAO,MAAM,WAAW,GAAU,OAAO,KAAK,EAAE,UAAU,QAAQ,iBAOjE,CAAC"}
|
package/dist/token/index.js
CHANGED
|
@@ -67,7 +67,6 @@ const getSignedTransferCalldataForSafe = async (safeInstance, tokenAddress, reci
|
|
|
67
67
|
else {
|
|
68
68
|
const tokenContract = new ethers_1.Contract(tokenAddress, erc20_abi_1.ERC20_ABI);
|
|
69
69
|
const encodedFunctionCall = tokenContract.interface.encodeFunctionData("transfer", [recipientAddress, amount]);
|
|
70
|
-
console.log("encodedFunctionCall", encodedFunctionCall);
|
|
71
70
|
let safeTx = await (0, safe_ops_1.createSafeTx)(safeInstance, [
|
|
72
71
|
{
|
|
73
72
|
to: tokenAddress,
|
|
@@ -82,7 +81,6 @@ const getSignedTransferCalldataForSafe = async (safeInstance, tokenAddress, reci
|
|
|
82
81
|
else {
|
|
83
82
|
safeTx = await (0, safe_ops_1.signSafeTx)(safeInstance, safeTx);
|
|
84
83
|
}
|
|
85
|
-
console.log("safeTx signed", safeTx);
|
|
86
84
|
return safeTx;
|
|
87
85
|
}
|
|
88
86
|
};
|
package/dist/token/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/token/index.ts"],"names":[],"mappings":";;;AAAA,mCAAoD;AAEpD,2CAAwC;AACxC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/token/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@epoch-protocol/inventory-sdk",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"scripts": {
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@safe-global/protocol-kit": "^6.1.1",
|
|
20
|
+
"@safe-global/types-kit": "^3.0.0",
|
|
20
21
|
"ethers": "6.15.0"
|
|
21
22
|
}
|
|
22
23
|
}
|
package/src/safe-ops/index.ts
CHANGED
|
@@ -15,11 +15,10 @@ export const createSafeTx = async (
|
|
|
15
15
|
value: string;
|
|
16
16
|
data: string;
|
|
17
17
|
operation: number;
|
|
18
|
-
}
|
|
18
|
+
}>,
|
|
19
19
|
): Promise<SafeTransaction> => {
|
|
20
20
|
try {
|
|
21
21
|
const safeTx = await safe.createTransaction({ transactions: txList });
|
|
22
|
-
console.log("safeTx", safeTx);
|
|
23
22
|
return safeTx;
|
|
24
23
|
} catch (error) {
|
|
25
24
|
console.log("error", error);
|
|
@@ -29,11 +28,10 @@ export const createSafeTx = async (
|
|
|
29
28
|
|
|
30
29
|
export const signSafeTx = async (
|
|
31
30
|
safe: Safe,
|
|
32
|
-
safeTx: SafeTransaction
|
|
31
|
+
safeTx: SafeTransaction,
|
|
33
32
|
): Promise<SafeTransaction> => {
|
|
34
33
|
try {
|
|
35
34
|
const signedSafeTx = await safe.signTransaction(safeTx);
|
|
36
|
-
console.log("signedSafeTx", signedSafeTx);
|
|
37
35
|
return signedSafeTx;
|
|
38
36
|
} catch (error) {
|
|
39
37
|
console.log("error", error);
|
|
@@ -43,7 +41,7 @@ export const signSafeTx = async (
|
|
|
43
41
|
|
|
44
42
|
export const getReadOnlySafeInstance = async (
|
|
45
43
|
safeAddress: string,
|
|
46
|
-
rpcUrl: string
|
|
44
|
+
rpcUrl: string,
|
|
47
45
|
): Promise<Safe> => {
|
|
48
46
|
const safe = await Safe.init({
|
|
49
47
|
safeAddress,
|
|
@@ -52,7 +50,11 @@ export const getReadOnlySafeInstance = async (
|
|
|
52
50
|
return safe;
|
|
53
51
|
};
|
|
54
52
|
|
|
55
|
-
export const signSafeTxFromKms = async (
|
|
53
|
+
export const signSafeTxFromKms = async (
|
|
54
|
+
safe: Safe,
|
|
55
|
+
safeTx: SafeTransaction,
|
|
56
|
+
signingServiceUrl: string,
|
|
57
|
+
): Promise<SafeTransaction> => {
|
|
56
58
|
try {
|
|
57
59
|
// Make an API call to the signing service endpoint to sign the safeTx message hash.
|
|
58
60
|
// We'll use fetch to POST to signingServiceUrl, sending { messageHash } in the body.
|
|
@@ -62,7 +64,10 @@ export const signSafeTxFromKms = async (safe: Safe, safeTx: SafeTransaction, sig
|
|
|
62
64
|
const txHash = await safe.getTransactionHash(safeTx);
|
|
63
65
|
|
|
64
66
|
// Call the signing service with the txHash:
|
|
65
|
-
const { signer, signature } = await getSignedMessageHashFromKms(
|
|
67
|
+
const { signer, signature } = await getSignedMessageHashFromKms(
|
|
68
|
+
signingServiceUrl,
|
|
69
|
+
txHash,
|
|
70
|
+
);
|
|
66
71
|
// The signing service responds with { signature }
|
|
67
72
|
|
|
68
73
|
safeTx.addSignature(new EthSafeSignature(signer, signature));
|
|
@@ -71,10 +76,7 @@ export const signSafeTxFromKms = async (safe: Safe, safeTx: SafeTransaction, sig
|
|
|
71
76
|
console.log("error", error);
|
|
72
77
|
throw error;
|
|
73
78
|
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
79
|
+
};
|
|
78
80
|
|
|
79
81
|
const getSafeTxHash = async (safe: Safe, safeTx: SafeTransaction) => {
|
|
80
82
|
try {
|
|
@@ -85,12 +87,12 @@ const getSafeTxHash = async (safe: Safe, safeTx: SafeTransaction) => {
|
|
|
85
87
|
console.log("error", error);
|
|
86
88
|
throw error;
|
|
87
89
|
}
|
|
88
|
-
}
|
|
90
|
+
};
|
|
89
91
|
|
|
90
92
|
export const getSafeInstance = async (
|
|
91
93
|
safeAddress: string,
|
|
92
94
|
privateKey: string,
|
|
93
|
-
rpcUrl: string
|
|
95
|
+
rpcUrl: string,
|
|
94
96
|
): Promise<Safe> => {
|
|
95
97
|
const safe = await Safe.init({
|
|
96
98
|
safeAddress,
|
|
@@ -102,24 +104,23 @@ export const getSafeInstance = async (
|
|
|
102
104
|
return safe;
|
|
103
105
|
};
|
|
104
106
|
|
|
105
|
-
|
|
106
107
|
export const deconstructSafeTx = async (
|
|
107
|
-
SafeTransaction: SafeTransaction
|
|
108
|
+
SafeTransaction: SafeTransaction,
|
|
108
109
|
): Promise<{
|
|
109
110
|
safeTxElements: DeconstructedSafeTx;
|
|
110
111
|
signatures: DeconstructedSafeSignature[];
|
|
111
112
|
}> => {
|
|
112
|
-
console.log("SafeTransaction: ", SafeTransaction);
|
|
113
113
|
const safeTxElements: DeconstructedSafeTx = SafeTransaction.data;
|
|
114
114
|
const signatures: DeconstructedSafeSignature[] = [];
|
|
115
|
-
Array.from(SafeTransaction.signatures.entries()).forEach(
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
115
|
+
Array.from(SafeTransaction.signatures.entries()).forEach(
|
|
116
|
+
([key, signature]) => {
|
|
117
|
+
signatures.push({
|
|
118
|
+
signer: key,
|
|
119
|
+
signature: signature.data,
|
|
120
|
+
isContractSignature: signature.isContractSignature,
|
|
121
|
+
});
|
|
122
|
+
},
|
|
123
|
+
);
|
|
123
124
|
return {
|
|
124
125
|
safeTxElements,
|
|
125
126
|
signatures,
|
|
@@ -128,7 +129,7 @@ export const deconstructSafeTx = async (
|
|
|
128
129
|
|
|
129
130
|
export const reconstructSafeTx = async (
|
|
130
131
|
deconstructedSafeTx: DeconstructedSafeTx,
|
|
131
|
-
deconstructedSafeSignatures: DeconstructedSafeSignature[]
|
|
132
|
+
deconstructedSafeSignatures: DeconstructedSafeSignature[],
|
|
132
133
|
): Promise<{
|
|
133
134
|
safeTx: SafeTransactionData;
|
|
134
135
|
safeSignatures: SafeSignature[];
|
|
@@ -140,8 +141,8 @@ export const reconstructSafeTx = async (
|
|
|
140
141
|
new EthSafeSignature(
|
|
141
142
|
deconstructedSafeSignature.signer,
|
|
142
143
|
deconstructedSafeSignature.signature,
|
|
143
|
-
deconstructedSafeSignature.isContractSignature
|
|
144
|
-
)
|
|
144
|
+
deconstructedSafeSignature.isContractSignature,
|
|
145
|
+
),
|
|
145
146
|
);
|
|
146
147
|
});
|
|
147
148
|
return {
|
package/src/token/index.ts
CHANGED
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import { Contract, Provider, Wallet } from "ethers";
|
|
2
2
|
import { Token, TokenInfo } from "./models";
|
|
3
3
|
import { ERC20_ABI } from "./erc20-abi";
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
createSafeTx,
|
|
6
|
+
getSafeInstance,
|
|
7
|
+
signSafeTx,
|
|
8
|
+
signSafeTxFromKms,
|
|
9
|
+
} from "../safe-ops";
|
|
5
10
|
import { SafeTransaction } from "@safe-global/types-kit";
|
|
6
11
|
import Safe from "@safe-global/protocol-kit";
|
|
7
12
|
|
|
8
13
|
export const getTokenBalance = async (
|
|
9
14
|
address: string,
|
|
10
15
|
token: Token,
|
|
11
|
-
provider: Provider
|
|
16
|
+
provider: Provider,
|
|
12
17
|
): Promise<TokenInfo> => {
|
|
13
18
|
if (token.address === "0x0000000000000000000000000000000000000000") {
|
|
14
19
|
const balance = await provider.getBalance(address);
|
|
@@ -48,10 +53,10 @@ export const getTokenBalance = async (
|
|
|
48
53
|
export const getMultipleTokenBalances = async (
|
|
49
54
|
tokens: Token[],
|
|
50
55
|
address: string,
|
|
51
|
-
provider: Provider
|
|
56
|
+
provider: Provider,
|
|
52
57
|
): Promise<Array<TokenInfo>> => {
|
|
53
58
|
const promises = tokens.map((token) =>
|
|
54
|
-
getTokenBalance(address, token, provider)
|
|
59
|
+
getTokenBalance(address, token, provider),
|
|
55
60
|
);
|
|
56
61
|
|
|
57
62
|
const results = await Promise.all(promises);
|
|
@@ -65,7 +70,7 @@ export const getSignedTransferCalldataForSafe = async (
|
|
|
65
70
|
recipientAddress: string,
|
|
66
71
|
amount: BigInt,
|
|
67
72
|
useKms: boolean,
|
|
68
|
-
signingServiceUrl?: string
|
|
73
|
+
signingServiceUrl?: string,
|
|
69
74
|
): Promise<SafeTransaction> => {
|
|
70
75
|
if (tokenAddress === "0x0000000000000000000000000000000000000000") {
|
|
71
76
|
let safeTx = await createSafeTx(safeInstance, [
|
|
@@ -86,9 +91,8 @@ export const getSignedTransferCalldataForSafe = async (
|
|
|
86
91
|
const tokenContract = new Contract(tokenAddress, ERC20_ABI);
|
|
87
92
|
const encodedFunctionCall = tokenContract.interface.encodeFunctionData(
|
|
88
93
|
"transfer",
|
|
89
|
-
[recipientAddress, amount]
|
|
94
|
+
[recipientAddress, amount],
|
|
90
95
|
);
|
|
91
|
-
console.log("encodedFunctionCall", encodedFunctionCall);
|
|
92
96
|
let safeTx = await createSafeTx(safeInstance, [
|
|
93
97
|
{
|
|
94
98
|
to: tokenAddress,
|
|
@@ -103,12 +107,10 @@ export const getSignedTransferCalldataForSafe = async (
|
|
|
103
107
|
} else {
|
|
104
108
|
safeTx = await signSafeTx(safeInstance, safeTx);
|
|
105
109
|
}
|
|
106
|
-
console.log("safeTx signed", safeTx);
|
|
107
110
|
return safeTx;
|
|
108
111
|
}
|
|
109
112
|
};
|
|
110
113
|
|
|
111
|
-
|
|
112
114
|
export const getDecimals = async (token: Token, provider: Provider) => {
|
|
113
115
|
const erc20 = new Contract(token.address, ERC20_ABI, provider);
|
|
114
116
|
const decimals = await erc20?.decimals?.();
|
package/src/token/models.ts
CHANGED
|
@@ -18,15 +18,27 @@ export interface TokenInfo {
|
|
|
18
18
|
export interface Token {
|
|
19
19
|
address: string;
|
|
20
20
|
chainId: number;
|
|
21
|
+
chainName?: string,
|
|
22
|
+
decimals?: number,
|
|
23
|
+
name?: string,
|
|
24
|
+
symbol?: string,
|
|
21
25
|
priceFeed: {
|
|
22
26
|
priceFeedAddress: string;
|
|
23
27
|
priceFeedDecimals?: number;
|
|
24
28
|
priceFeedChainId: number;
|
|
25
29
|
};
|
|
26
30
|
}
|
|
31
|
+
|
|
32
|
+
export interface ExtraDataInterface{
|
|
33
|
+
safeTx?: SafeTransactionData;
|
|
34
|
+
safeSignatures?: DeconstructedSafeSignature[];
|
|
35
|
+
noteid?: string;
|
|
36
|
+
provenTxBytes?: string;
|
|
37
|
+
txResultBytes?: string;
|
|
38
|
+
}
|
|
39
|
+
|
|
27
40
|
export interface OptimalTokenWithCalldata {
|
|
28
41
|
token: TokenInfo;
|
|
29
|
-
safeTx: SafeTransactionData;
|
|
30
|
-
safeSignatures: DeconstructedSafeSignature[];
|
|
31
42
|
treasuryAddress: string;
|
|
43
|
+
extraData: ExtraDataInterface
|
|
32
44
|
}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
name: Deploy to Server
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches:
|
|
6
|
-
- main
|
|
7
|
-
|
|
8
|
-
jobs:
|
|
9
|
-
deploy:
|
|
10
|
-
runs-on: ubuntu-latest
|
|
11
|
-
|
|
12
|
-
steps:
|
|
13
|
-
- name: Checkout code
|
|
14
|
-
uses: actions/checkout@v4
|
|
15
|
-
|
|
16
|
-
- name: Setup SSH key
|
|
17
|
-
uses: webfactory/ssh-agent@v0.8.0
|
|
18
|
-
with:
|
|
19
|
-
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY_DEV }}
|
|
20
|
-
|
|
21
|
-
- name: Add server to known hosts
|
|
22
|
-
run: |
|
|
23
|
-
ssh-keyscan -H ${{ secrets.SERVER_HOST_DEV }} >> ~/.ssh/known_hosts
|
|
24
|
-
|
|
25
|
-
- name: Deploy to server
|
|
26
|
-
run: |
|
|
27
|
-
# Set project name - use workflow input if available, otherwise default
|
|
28
|
-
PROJECT_NAME="${{ github.event.repository.name }}"
|
|
29
|
-
BRANCH="${{ github.ref_name }}"
|
|
30
|
-
|
|
31
|
-
echo "Deploying project: $PROJECT_NAME on branch: $BRANCH"
|
|
32
|
-
|
|
33
|
-
# SSH into server and run deployment command
|
|
34
|
-
# Using nohup to ensure command continues after SSH disconnection
|
|
35
|
-
# Redirecting output to a log file for monitoring
|
|
36
|
-
LC_PROJECT_NAME=$PROJECT_NAME LC_BRANCH=$BRANCH ssh -o StrictHostKeyChecking=no ${{ secrets.SSH_USERNAME }}@${{ secrets.SERVER_HOST_DEV }} << 'ENDSSH'
|
|
37
|
-
set -e
|
|
38
|
-
# Navigate to deployment directory
|
|
39
|
-
cd /home/ubuntu
|
|
40
|
-
|
|
41
|
-
# Create log directory if it doesn't exist
|
|
42
|
-
mkdir -p logs
|
|
43
|
-
|
|
44
|
-
# Generate timestamp for log file
|
|
45
|
-
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
|
|
46
|
-
LOG_FILE="logs/deployment_${LC_PROJECT_NAME}_${TIMESTAMP}.log"
|
|
47
|
-
|
|
48
|
-
echo "Starting deployment at $(date)" > $LOG_FILE
|
|
49
|
-
echo "Project: ${LC_PROJECT_NAME}" >> $LOG_FILE
|
|
50
|
-
echo "Branch: ${LC_BRANCH}" >> $LOG_FILE
|
|
51
|
-
echo "----------------------------------------" >> $LOG_FILE
|
|
52
|
-
|
|
53
|
-
# Run deployment script with nohup to ensure it continues after SSH disconnection
|
|
54
|
-
# The script will run in background and output will be logged
|
|
55
|
-
nohup bash -c "
|
|
56
|
-
export PATH="/home/ubuntu/.nvm/versions/node/v22.18.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
|
|
57
|
-
# Run the deployment script
|
|
58
|
-
./deploy.sh '${LC_PROJECT_NAME}' '${LC_BRANCH}' 2>&1
|
|
59
|
-
|
|
60
|
-
# Log completion
|
|
61
|
-
echo 'Deployment completed at $(date)'
|
|
62
|
-
echo 'Process finished successfully'
|
|
63
|
-
|
|
64
|
-
# Exit bash after completion
|
|
65
|
-
exit 0
|
|
66
|
-
" >> $LOG_FILE 2>&1 &
|
|
67
|
-
|
|
68
|
-
# Get the process ID
|
|
69
|
-
DEPLOY_PID=$!
|
|
70
|
-
echo "Deployment started with PID: $DEPLOY_PID"
|
|
71
|
-
echo "Deployment PID: $DEPLOY_PID" >> $LOG_FILE
|
|
72
|
-
|
|
73
|
-
# Wait a moment to ensure the process started properly
|
|
74
|
-
sleep 5
|
|
75
|
-
|
|
76
|
-
# Check if process is still running (indicates successful start)
|
|
77
|
-
if kill -0 $DEPLOY_PID 2>/dev/null; then
|
|
78
|
-
echo "Deployment process is running successfully"
|
|
79
|
-
echo "Logs will be available at: $LOG_FILE"
|
|
80
|
-
echo "You can monitor progress with: tail -f $LOG_FILE"
|
|
81
|
-
else
|
|
82
|
-
echo "Warning: Deployment process may have finished quickly or encountered an error"
|
|
83
|
-
echo "Check the log file: $LOG_FILE"
|
|
84
|
-
fi
|
|
85
|
-
# The SSH session will end here, but the deployment continues
|
|
86
|
-
echo "SSH session ending - deployment continues in background"
|
|
87
|
-
ENDSSH
|
|
88
|
-
|
|
89
|
-
# These messages are shown after the SSH session ends, on the GitHub Actions runner
|
|
90
|
-
echo "Deployment initiated successfully!"
|
|
91
|
-
echo "The deployment process is now running on the server in the background."
|