@microsoft/teamsfx-core 1.6.0-rc.2 → 1.6.0-rc.3

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.
@@ -4,7 +4,7 @@
4
4
  * @param key A string.
5
5
  * @return The stored value or `undefined`.
6
6
  */
7
- export declare function globalStateGet(key: string, defaultValue?: any): any;
7
+ export declare function globalStateGet(key: string, defaultValue?: any): Promise<any>;
8
8
  /**
9
9
  * Store a value. The value must be JSON-stringifyable.
10
10
  *
@@ -1 +1 @@
1
- {"version":3,"file":"globalState.d.ts","sourceRoot":"","sources":["../../src/common/globalState.ts"],"names":[],"mappings":"AAUA;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,GAAG,GAAG,CAUnE;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAO9E"}
1
+ {"version":3,"file":"globalState.d.ts","sourceRoot":"","sources":["../../src/common/globalState.ts"],"names":[],"mappings":"AAaA;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CA+BlF;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B9E"}
@@ -7,7 +7,10 @@ const tslib_1 = require("tslib");
7
7
  const os = tslib_1.__importStar(require("os"));
8
8
  const path = tslib_1.__importStar(require("path"));
9
9
  const fs = tslib_1.__importStar(require("fs-extra"));
10
+ const crypto_1 = tslib_1.__importDefault(require("crypto"));
10
11
  const teamsfx_api_1 = require("@microsoft/teamsfx-api");
12
+ const proper_lockfile_1 = tslib_1.__importDefault(require("proper-lockfile"));
13
+ const tools_1 = require("./tools");
11
14
  const GlobalStateFileName = "state.json";
12
15
  /**
13
16
  * Return a value.
@@ -15,15 +18,37 @@ const GlobalStateFileName = "state.json";
15
18
  * @param key A string.
16
19
  * @return The stored value or `undefined`.
17
20
  */
18
- function globalStateGet(key, defaultValue) {
21
+ async function globalStateGet(key, defaultValue) {
19
22
  const filePath = getGlobalStateFile();
20
23
  ensureGlobalStateFileExists(filePath);
21
- const config = fs.readJSONSync(filePath);
22
- let value = config[key];
23
- if (value === undefined) {
24
- value = defaultValue;
24
+ const lockFileDir = getLockFolder(filePath);
25
+ const lockfilePath = path.join(lockFileDir, `${teamsfx_api_1.ConfigFolderName}.lock`);
26
+ await fs.ensureDir(lockFileDir);
27
+ const retryNum = 10;
28
+ for (let i = 0; i < retryNum; ++i) {
29
+ try {
30
+ await proper_lockfile_1.default.lock(filePath, { lockfilePath: lockfilePath });
31
+ let value = undefined;
32
+ try {
33
+ const config = await fs.readJSON(filePath);
34
+ value = config[key];
35
+ if (value === undefined) {
36
+ value = defaultValue;
37
+ }
38
+ }
39
+ finally {
40
+ await proper_lockfile_1.default.unlock(filePath, { lockfilePath: lockfilePath });
41
+ }
42
+ return value;
43
+ }
44
+ catch (e) {
45
+ if (e["code"] === "ELOCKED") {
46
+ await tools_1.waitSeconds(1);
47
+ continue;
48
+ }
49
+ return undefined;
50
+ }
25
51
  }
26
- return value;
27
52
  }
28
53
  exports.globalStateGet = globalStateGet;
29
54
  /**
@@ -35,9 +60,31 @@ exports.globalStateGet = globalStateGet;
35
60
  async function globalStateUpdate(key, value) {
36
61
  const filePath = getGlobalStateFile();
37
62
  ensureGlobalStateFileExists(filePath);
38
- const config = await fs.readJSON(filePath);
39
- config[key] = value;
40
- await fs.writeJson(filePath, config);
63
+ const lockFileDir = getLockFolder(filePath);
64
+ const lockfilePath = path.join(lockFileDir, `${teamsfx_api_1.ConfigFolderName}.lock`);
65
+ await fs.ensureDir(lockFileDir);
66
+ const retryNum = 10;
67
+ for (let i = 0; i < retryNum; ++i) {
68
+ try {
69
+ await proper_lockfile_1.default.lock(filePath, { lockfilePath: lockfilePath });
70
+ try {
71
+ const config = await fs.readJSON(filePath);
72
+ config[key] = value;
73
+ await fs.writeJson(filePath, config);
74
+ }
75
+ finally {
76
+ await proper_lockfile_1.default.unlock(filePath, { lockfilePath: lockfilePath });
77
+ }
78
+ break;
79
+ }
80
+ catch (e) {
81
+ if (e["code"] === "ELOCKED") {
82
+ await tools_1.waitSeconds(1);
83
+ continue;
84
+ }
85
+ throw e;
86
+ }
87
+ }
41
88
  }
42
89
  exports.globalStateUpdate = globalStateUpdate;
43
90
  function getGlobalStateFile() {
@@ -52,4 +99,7 @@ function ensureGlobalStateFileExists(filePath) {
52
99
  fs.writeJSONSync(filePath, {});
53
100
  }
54
101
  }
102
+ function getLockFolder(projectPath) {
103
+ return path.join(os.tmpdir(), `${teamsfx_api_1.ProductName}-${crypto_1.default.createHash("md5").update(projectPath).digest("hex")}`);
104
+ }
55
105
  //# sourceMappingURL=globalState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"globalState.js","sourceRoot":"","sources":["../../src/common/globalState.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;;AAElC,+CAAyB;AACzB,mDAA6B;AAC7B,qDAA+B;AAC/B,wDAA0D;AAE1D,MAAM,mBAAmB,GAAG,YAAY,CAAC;AAEzC;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,GAAW,EAAE,YAAkB;IAC5D,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,KAAK,GAAG,YAAY,CAAC;KACtB;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAVD,wCAUC;AAED;;;;;GAKG;AACI,KAAK,UAAU,iBAAiB,CAAC,GAAW,EAAE,KAAU;IAC7D,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACpB,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAPD,8CAOC;AAED,SAAS,kBAAkB;IACzB,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,8BAAgB,EAAE,EAAE,mBAAmB,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,2BAA2B,CAAC,QAAgB;IACnD,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE;QAC9C,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;KACvC;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QAC5B,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;KAChC;AACH,CAAC"}
1
+ {"version":3,"file":"globalState.js","sourceRoot":"","sources":["../../src/common/globalState.ts"],"names":[],"mappings":"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"}
@@ -12,21 +12,21 @@ function generateBuildScript(projectSettings) {
12
12
  const hostType = solutionSettings === null || solutionSettings === void 0 ? void 0 : solutionSettings["hostType"];
13
13
  if (capabilities === null || capabilities === void 0 ? void 0 : capabilities.includes("Tab")) {
14
14
  if (hostType && hostType === "Azure")
15
- parts.push("cd tabs; npm install; npm run build; cd -;");
15
+ parts.push("cd tabs; npm ci; npm run build; cd -;");
16
16
  if (hostType && hostType === "SPFx")
17
- parts.push("cd SPFx; npm install; npm run build; cd -;");
17
+ parts.push("cd SPFx; npm ci; npm run build; cd -;");
18
18
  }
19
19
  if ((capabilities === null || capabilities === void 0 ? void 0 : capabilities.includes("Bot")) || capabilities.includes("MessagingExtension")) {
20
20
  if (projectSettings.programmingLanguage === "typescript") {
21
- parts.push("cd bot; npm install; npm run build; cd -;");
21
+ parts.push("cd bot; npm ci; npm run build; cd -;");
22
22
  }
23
23
  else {
24
- parts.push("cd bot; npm install; cd -;");
24
+ parts.push("cd bot; npm ci; cd -;");
25
25
  }
26
26
  }
27
27
  if ((azureResources === null || azureResources === void 0 ? void 0 : azureResources.includes("function")) &&
28
28
  projectSettings.programmingLanguage === "typescript") {
29
- parts.push("cd api; npm install; npm run build; cd -;");
29
+ parts.push("cd api; npm ci; npm run build; cd -;");
30
30
  }
31
31
  return parts.join("");
32
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"buildScripts.js","sourceRoot":"","sources":["../../../../../src/plugins/resource/cicd/utils/buildScripts.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAIlC,0CAA0C;AAC1C,SAAgB,mBAAmB,CAAC,eAAgC;IAClE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM,gBAAgB,GAAG,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,gBAAgB,CAAC;IAC3D,MAAM,YAAY,GAAG,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAG,cAAc,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAG,gBAAgB,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAG,UAAU,CAAC,CAAC;IAEhD,IAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,CAAC,KAAK,CAAC,EAAE;QACjC,IAAI,QAAQ,IAAI,QAAQ,KAAK,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC/F,IAAI,QAAQ,IAAI,QAAQ,KAAK,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;KAC/F;IAED,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,CAAC,KAAK,CAAC,KAAI,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;QAChF,IAAI,eAAe,CAAC,mBAAmB,KAAK,YAAY,EAAE;YACxD,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;SACzD;aAAM;YACL,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;SAC1C;KACF;IAED,IACE,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,CAAC,UAAU,CAAC;QACpC,eAAe,CAAC,mBAAmB,KAAK,YAAY,EACpD;QACA,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;KACzD;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxB,CAAC;AA7BD,kDA6BC"}
1
+ {"version":3,"file":"buildScripts.js","sourceRoot":"","sources":["../../../../../src/plugins/resource/cicd/utils/buildScripts.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAIlC,0CAA0C;AAC1C,SAAgB,mBAAmB,CAAC,eAAgC;IAClE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM,gBAAgB,GAAG,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,gBAAgB,CAAC;IAC3D,MAAM,YAAY,GAAG,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAG,cAAc,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAG,gBAAgB,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAG,UAAU,CAAC,CAAC;IAEhD,IAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,CAAC,KAAK,CAAC,EAAE;QACjC,IAAI,QAAQ,IAAI,QAAQ,KAAK,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QAC1F,IAAI,QAAQ,IAAI,QAAQ,KAAK,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;KAC1F;IAED,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,CAAC,KAAK,CAAC,KAAI,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;QAChF,IAAI,eAAe,CAAC,mBAAmB,KAAK,YAAY,EAAE;YACxD,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;SACpD;aAAM;YACL,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;SACrC;KACF;IAED,IACE,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,CAAC,UAAU,CAAC;QACpC,eAAe,CAAC,mBAAmB,KAAK,YAAY,EACpD;QACA,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;KACpD;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxB,CAAC;AA7BD,kDA6BC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@microsoft/teamsfx-core",
3
- "version": "1.6.0-rc.2",
3
+ "version": "1.6.0-rc.3",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "license": "MIT",
@@ -182,7 +182,7 @@
182
182
  "resource/**/*",
183
183
  "templates/**/*"
184
184
  ],
185
- "gitHead": "1a45449e8b7ece6f8d48f7a76d47fcba25e5bff6",
185
+ "gitHead": "4b99f53197b4eee508e0d52baf0e98aca78c5e70",
186
186
  "publishConfig": {
187
187
  "access": "public"
188
188
  },
@@ -26,6 +26,7 @@ steps:
26
26
  TEAMSFX_ENV_NAME: <%env_name%>
27
27
  inputs:
28
28
  targetType: 'inline'
29
+ failOnStderr: true
29
30
  script: |
30
31
  set -vuxo pipefail
31
32
 
@@ -18,8 +18,9 @@ steps:
18
18
  - task: Bash@3
19
19
  inputs:
20
20
  targetType: 'inline'
21
+ failOnStderr: true
21
22
  script: |
22
- set -euxo pipefail
23
+ set -vuxo pipefail
23
24
 
24
25
  # This is just an example workflow for continuous integration.
25
26
  # You should customize it to meet your own requirements.
@@ -1,9 +1,8 @@
1
1
  {{=<% %>=}}
2
2
  # This is just an example workflow for provision.
3
3
  # You should customize it to meet your own requirements.
4
- trigger:
4
+ trigger: none
5
5
  # Manually trigger this workflow, and you should pick the right branch.
6
- - main
7
6
 
8
7
  pool:
9
8
  vmImage: ubuntu-latest
@@ -28,6 +27,7 @@ steps:
28
27
  TEAMSFX_ENV_NAME: <%env_name%>
29
28
  inputs:
30
29
  targetType: 'inline'
30
+ failOnStderr: true
31
31
  script: |
32
32
  set -vuxo pipefail
33
33
 
@@ -1,9 +1,8 @@
1
1
  {{=<% %>=}}
2
2
  # This is just an example workflow for publishing Teams app.
3
3
  # You should customize it to meet your own requirements.
4
- trigger:
4
+ trigger: none
5
5
  # Manually trigger this workflow, and you should pick the right branch.
6
- - main
7
6
 
8
7
  pool:
9
8
  vmImage: ubuntu-latest
@@ -25,6 +24,7 @@ steps:
25
24
  TEAMSFX_ENV_NAME: <%env_name%>
26
25
  inputs:
27
26
  targetType: 'inline'
27
+ failOnStderr: true
28
28
  script: |
29
29
  set -vuxo pipefail
30
30