@rushstack/rush-http-build-cache-plugin 5.109.2 → 5.110.0

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.
Files changed (37) hide show
  1. package/.rush/temp/operation/_phase_build/all.log +6 -6
  2. package/.rush/temp/operation/_phase_build/state.json +1 -1
  3. package/.rush/temp/operation/_phase_test/all.log +15 -15
  4. package/.rush/temp/operation/_phase_test/state.json +1 -1
  5. package/.rush/temp/{rushstack+rush-http-build-cache-plugin-_phase_build-a54fa33e112a2bf1d9a56a3bbddaf090e3f76881.tar.log → rushstack+rush-http-build-cache-plugin-_phase_build-6123140279635b4e69641307e04c82615d4a5778.tar.log} +2 -2
  6. package/.rush/temp/rushstack+rush-http-build-cache-plugin-_phase_build-6123140279635b4e69641307e04c82615d4a5778.untar.log +10 -0
  7. package/.rush/temp/{rushstack+rush-http-build-cache-plugin-_phase_test-ea1f6e9f8a47341e02cdcd9e55a9da439c6424a7.tar.log → rushstack+rush-http-build-cache-plugin-_phase_test-78333a9310f75472822f70554dee637804eb3b97.tar.log} +2 -2
  8. package/.rush/temp/rushstack+rush-http-build-cache-plugin-_phase_test-78333a9310f75472822f70554dee637804eb3b97.untar.log +10 -0
  9. package/README.md +116 -116
  10. package/config/jest.config.json +14 -14
  11. package/config/rig.json +18 -18
  12. package/coverage/HttpBuildCacheProvider.ts.html +1 -1
  13. package/coverage/RushHttpBuildCachePlugin.ts.html +1 -1
  14. package/coverage/cobertura-coverage.xml +5 -5
  15. package/coverage/index.html +1 -1
  16. package/coverage/index.ts.html +1 -1
  17. package/coverage/junit.xml +4 -4
  18. package/lib/HttpBuildCacheProvider.js.map +1 -1
  19. package/lib/RushHttpBuildCachePlugin.js.map +1 -1
  20. package/lib/index.js.map +1 -1
  21. package/lib/schemas/plugin-config.schema.json +52 -52
  22. package/lib/test/HttpBuildCacheProvider.test.js.map +1 -1
  23. package/package.json +4 -4
  24. package/rush-logs/rush-http-build-cache-plugin._phase_build.cache.log +8 -8
  25. package/rush-logs/rush-http-build-cache-plugin._phase_build.log +6 -6
  26. package/rush-logs/rush-http-build-cache-plugin._phase_test.cache.log +17 -17
  27. package/rush-logs/rush-http-build-cache-plugin._phase_test.log +15 -15
  28. package/rush-plugin-manifest.json +11 -11
  29. package/src/HttpBuildCacheProvider.ts +424 -424
  30. package/src/RushHttpBuildCachePlugin.ts +81 -81
  31. package/src/index.ts +4 -4
  32. package/src/schemas/plugin-config.schema.json +52 -52
  33. package/src/test/HttpBuildCacheProvider.test.ts +115 -115
  34. package/temp/build/typescript/ts_l9Fw4VUO.json +1 -1
  35. package/tsconfig.json +3 -3
  36. package/.rush/temp/rushstack+rush-http-build-cache-plugin-_phase_build-a54fa33e112a2bf1d9a56a3bbddaf090e3f76881.untar.log +0 -10
  37. package/.rush/temp/rushstack+rush-http-build-cache-plugin-_phase_test-ea1f6e9f8a47341e02cdcd9e55a9da439c6424a7.untar.log +0 -10
@@ -1 +1 @@
1
- {"version":3,"file":"RushHttpBuildCachePlugin.js","sourceRoot":"","sources":["../src/RushHttpBuildCachePlugin.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;;;;;;;;;;;;;;;;;;;;;;;;AAK3D,MAAM,WAAW,GAAW,sBAAsB,CAAC;AAyCnD;;GAEG;AACH,MAAa,wBAAwB;IAArC;QACkB,eAAU,GAAW,WAAW,CAAC;IA6BnD,CAAC;IA3BQ,KAAK,CAAC,WAAwB,EAAE,UAA6B;QAClE,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE;YACrD,WAAW,CAAC,sCAAsC,CAAC,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE;gBACpF,MAAM,MAAM,GACV,gBAGD,CAAC,iBAAiB,CAAC;gBAEpB,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAAC;gBAEjG,MAAM,OAAO,GAAmC;oBAC9C,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,cAAc,EAAE,UAAU,CAAC,cAAc;oBACzC,GAAG,EAAE,GAAG;oBACR,YAAY,EAAE,YAAY;oBAC1B,OAAO,EAAE,OAAO;oBAChB,YAAY,EAAE,YAAY;oBAC1B,cAAc,EAAE,cAAc;oBAC9B,mBAAmB,EAAE,CAAC,CAAC,mBAAmB;iBAC3C,CAAC;gBAEF,MAAM,EAAE,sBAAsB,EAAE,GAAG,wDAAa,0BAA0B,GAAC,CAAC;gBAC5E,OAAO,IAAI,sBAAsB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA9BD,4DA8BC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport type { IRushPlugin, RushSession, RushConfiguration } from '@rushstack/rush-sdk';\nimport type { HttpBuildCacheProvider, IHttpBuildCacheProviderOptions } from './HttpBuildCacheProvider';\n\nconst PLUGIN_NAME: string = 'HttpBuildCachePlugin';\n\n/**\n * @public\n */\nexport interface IRushHttpBuildCachePluginConfig {\n /**\n * The URL of the server that stores the caches (e.g. \"https://build-caches.example.com\").\n */\n url: string;\n\n /**\n * The HTTP method to use when writing to the cache (defaults to PUT).\n */\n uploadMethod?: string;\n\n /**\n * An optional set of HTTP headers to pass to the cache server.\n */\n headers?: Record<string, string>;\n\n /**\n * An optional command that prints the endpoint's credentials to stdout. Provide the\n * command or script to execute and, optionally, any arguments to pass to the script.\n */\n tokenHandler?: {\n exec: string;\n args?: string[];\n };\n\n /**\n * Prefix for cache keys.\n */\n cacheKeyPrefix?: string;\n\n /**\n * If set to true, allow writing to the cache. Defaults to false.\n */\n isCacheWriteAllowed?: boolean;\n}\n\n/**\n * @public\n */\nexport class RushHttpBuildCachePlugin implements IRushPlugin {\n public readonly pluginName: string = PLUGIN_NAME;\n\n public apply(rushSession: RushSession, rushConfig: RushConfiguration): void {\n rushSession.hooks.initialize.tap(this.pluginName, () => {\n rushSession.registerCloudBuildCacheProviderFactory('http', async (buildCacheConfig) => {\n const config: IRushHttpBuildCachePluginConfig = (\n buildCacheConfig as typeof buildCacheConfig & {\n httpConfiguration: IRushHttpBuildCachePluginConfig;\n }\n ).httpConfiguration;\n\n const { url, uploadMethod, headers, tokenHandler, cacheKeyPrefix, isCacheWriteAllowed } = config;\n\n const options: IHttpBuildCacheProviderOptions = {\n pluginName: this.pluginName,\n rushJsonFolder: rushConfig.rushJsonFolder,\n url: url,\n uploadMethod: uploadMethod,\n headers: headers,\n tokenHandler: tokenHandler,\n cacheKeyPrefix: cacheKeyPrefix,\n isCacheWriteAllowed: !!isCacheWriteAllowed\n };\n\n const { HttpBuildCacheProvider } = await import('./HttpBuildCacheProvider');\n return new HttpBuildCacheProvider(options, rushSession);\n });\n });\n }\n}\n"]}
1
+ {"version":3,"file":"RushHttpBuildCachePlugin.js","sourceRoot":"","sources":["../src/RushHttpBuildCachePlugin.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;;;;;;;;;;;;;;;;;;;;;;;;AAK3D,MAAM,WAAW,GAAW,sBAAsB,CAAC;AAyCnD;;GAEG;AACH,MAAa,wBAAwB;IAArC;QACkB,eAAU,GAAW,WAAW,CAAC;IA6BnD,CAAC;IA3BQ,KAAK,CAAC,WAAwB,EAAE,UAA6B;QAClE,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE;YACrD,WAAW,CAAC,sCAAsC,CAAC,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE;gBACpF,MAAM,MAAM,GACV,gBAGD,CAAC,iBAAiB,CAAC;gBAEpB,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAAC;gBAEjG,MAAM,OAAO,GAAmC;oBAC9C,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,cAAc,EAAE,UAAU,CAAC,cAAc;oBACzC,GAAG,EAAE,GAAG;oBACR,YAAY,EAAE,YAAY;oBAC1B,OAAO,EAAE,OAAO;oBAChB,YAAY,EAAE,YAAY;oBAC1B,cAAc,EAAE,cAAc;oBAC9B,mBAAmB,EAAE,CAAC,CAAC,mBAAmB;iBAC3C,CAAC;gBAEF,MAAM,EAAE,sBAAsB,EAAE,GAAG,wDAAa,0BAA0B,GAAC,CAAC;gBAC5E,OAAO,IAAI,sBAAsB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA9BD,4DA8BC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\r\n// See LICENSE in the project root for license information.\r\n\r\nimport type { IRushPlugin, RushSession, RushConfiguration } from '@rushstack/rush-sdk';\r\nimport type { HttpBuildCacheProvider, IHttpBuildCacheProviderOptions } from './HttpBuildCacheProvider';\r\n\r\nconst PLUGIN_NAME: string = 'HttpBuildCachePlugin';\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface IRushHttpBuildCachePluginConfig {\r\n /**\r\n * The URL of the server that stores the caches (e.g. \"https://build-caches.example.com\").\r\n */\r\n url: string;\r\n\r\n /**\r\n * The HTTP method to use when writing to the cache (defaults to PUT).\r\n */\r\n uploadMethod?: string;\r\n\r\n /**\r\n * An optional set of HTTP headers to pass to the cache server.\r\n */\r\n headers?: Record<string, string>;\r\n\r\n /**\r\n * An optional command that prints the endpoint's credentials to stdout. Provide the\r\n * command or script to execute and, optionally, any arguments to pass to the script.\r\n */\r\n tokenHandler?: {\r\n exec: string;\r\n args?: string[];\r\n };\r\n\r\n /**\r\n * Prefix for cache keys.\r\n */\r\n cacheKeyPrefix?: string;\r\n\r\n /**\r\n * If set to true, allow writing to the cache. Defaults to false.\r\n */\r\n isCacheWriteAllowed?: boolean;\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport class RushHttpBuildCachePlugin implements IRushPlugin {\r\n public readonly pluginName: string = PLUGIN_NAME;\r\n\r\n public apply(rushSession: RushSession, rushConfig: RushConfiguration): void {\r\n rushSession.hooks.initialize.tap(this.pluginName, () => {\r\n rushSession.registerCloudBuildCacheProviderFactory('http', async (buildCacheConfig) => {\r\n const config: IRushHttpBuildCachePluginConfig = (\r\n buildCacheConfig as typeof buildCacheConfig & {\r\n httpConfiguration: IRushHttpBuildCachePluginConfig;\r\n }\r\n ).httpConfiguration;\r\n\r\n const { url, uploadMethod, headers, tokenHandler, cacheKeyPrefix, isCacheWriteAllowed } = config;\r\n\r\n const options: IHttpBuildCacheProviderOptions = {\r\n pluginName: this.pluginName,\r\n rushJsonFolder: rushConfig.rushJsonFolder,\r\n url: url,\r\n uploadMethod: uploadMethod,\r\n headers: headers,\r\n tokenHandler: tokenHandler,\r\n cacheKeyPrefix: cacheKeyPrefix,\r\n isCacheWriteAllowed: !!isCacheWriteAllowed\r\n };\r\n\r\n const { HttpBuildCacheProvider } = await import('./HttpBuildCacheProvider');\r\n return new HttpBuildCacheProvider(options, rushSession);\r\n });\r\n });\r\n }\r\n}\r\n"]}
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,yEAAsE;AAEtE,kBAAe,mDAAwB,CAAC","sourcesContent":["import { RushHttpBuildCachePlugin } from './RushHttpBuildCachePlugin';\n\nexport default RushHttpBuildCachePlugin;\nexport { IHttpBuildCacheProviderOptions } from './HttpBuildCacheProvider';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,yEAAsE;AAEtE,kBAAe,mDAAwB,CAAC","sourcesContent":["import { RushHttpBuildCachePlugin } from './RushHttpBuildCachePlugin';\r\n\r\nexport default RushHttpBuildCachePlugin;\r\nexport { IHttpBuildCacheProviderOptions } from './HttpBuildCacheProvider';\r\n"]}
@@ -1,52 +1,52 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-04/schema#",
3
- "title": "Configuration for build cache with HTTPS server",
4
- "type": "object",
5
- "required": ["url"],
6
- "properties": {
7
- "url": {
8
- "type": "string",
9
- "description": "(Required) The URL of the server that stores the caches (e.g. \"https://build-caches.example.com\").",
10
- "format": "uri"
11
- },
12
- "uploadMethod": {
13
- "type": "string",
14
- "description": "(Optional) The HTTP method to use when writing to the cache (defaults to PUT).",
15
- "enum": ["PUT", "POST", "PATCH"],
16
- "default": "PUT"
17
- },
18
- "headers": {
19
- "type": "object",
20
- "description": "(Optional) HTTP headers to pass to the cache server",
21
- "properties": {},
22
- "additionalProperties": {
23
- "type": "string"
24
- }
25
- },
26
- "tokenHandler": {
27
- "type": "object",
28
- "description": "(Optional) Shell command that prints the authorization token needed to communicate with the HTTPS server and exits with code 0. This command will be executed from the root of the monorepo.",
29
- "properties": {
30
- "exec": {
31
- "type": "string",
32
- "description": "(Required) The command or script to execute."
33
- },
34
- "args": {
35
- "type": "array",
36
- "description": "(Optional) Arguments to pass to the command or script.",
37
- "items": {
38
- "type": "string"
39
- }
40
- }
41
- }
42
- },
43
- "cacheKeyPrefix": {
44
- "type": "string",
45
- "description": "(Optional) prefix for cache keys."
46
- },
47
- "isCacheWriteAllowed": {
48
- "type": "boolean",
49
- "description": "(Optional) If set to true, allow writing to the cache. Defaults to false."
50
- }
51
- }
52
- }
1
+ {
2
+ "$schema": "http://json-schema.org/draft-04/schema#",
3
+ "title": "Configuration for build cache with HTTPS server",
4
+ "type": "object",
5
+ "required": ["url"],
6
+ "properties": {
7
+ "url": {
8
+ "type": "string",
9
+ "description": "(Required) The URL of the server that stores the caches (e.g. \"https://build-caches.example.com\").",
10
+ "format": "uri"
11
+ },
12
+ "uploadMethod": {
13
+ "type": "string",
14
+ "description": "(Optional) The HTTP method to use when writing to the cache (defaults to PUT).",
15
+ "enum": ["PUT", "POST", "PATCH"],
16
+ "default": "PUT"
17
+ },
18
+ "headers": {
19
+ "type": "object",
20
+ "description": "(Optional) HTTP headers to pass to the cache server",
21
+ "properties": {},
22
+ "additionalProperties": {
23
+ "type": "string"
24
+ }
25
+ },
26
+ "tokenHandler": {
27
+ "type": "object",
28
+ "description": "(Optional) Shell command that prints the authorization token needed to communicate with the HTTPS server and exits with code 0. This command will be executed from the root of the monorepo.",
29
+ "properties": {
30
+ "exec": {
31
+ "type": "string",
32
+ "description": "(Required) The command or script to execute."
33
+ },
34
+ "args": {
35
+ "type": "array",
36
+ "description": "(Optional) Arguments to pass to the command or script.",
37
+ "items": {
38
+ "type": "string"
39
+ }
40
+ }
41
+ }
42
+ },
43
+ "cacheKeyPrefix": {
44
+ "type": "string",
45
+ "description": "(Optional) prefix for cache keys."
46
+ },
47
+ "isCacheWriteAllowed": {
48
+ "type": "boolean",
49
+ "description": "(Optional) If set to true, allow writing to the cache. Defaults to false."
50
+ }
51
+ }
52
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"HttpBuildCacheProvider.test.js","sourceRoot":"","sources":["../../src/test/HttpBuildCacheProvider.test.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\njest.mock('node-fetch', function () {\n return Object.assign(jest.fn(), jest.requireActual('node-fetch'));\n});\n\nimport fetch, { Response } from 'node-fetch';\nimport { RushSession, EnvironmentConfiguration } from '@rushstack/rush-sdk';\nimport { StringBufferTerminalProvider, Terminal } from '@rushstack/node-core-library';\n\nimport { HttpBuildCacheProvider, type IHttpBuildCacheProviderOptions } from '../HttpBuildCacheProvider';\n\nconst EXAMPLE_OPTIONS: IHttpBuildCacheProviderOptions = {\n url: 'https://buildcache.example.acme.com',\n tokenHandler: {\n exec: 'node',\n args: ['tokenHandler.js']\n },\n uploadMethod: 'POST',\n isCacheWriteAllowed: false,\n pluginName: 'example-plugin',\n rushJsonFolder: '/repo',\n minHttpRetryDelayMs: 1\n};\n\ndescribe('HttpBuildCacheProvider', () => {\n let terminalBuffer: StringBufferTerminalProvider;\n let terminal!: Terminal;\n\n beforeEach(() => {\n terminalBuffer = new StringBufferTerminalProvider();\n terminal = new Terminal(terminalBuffer);\n });\n\n describe('tryGetCacheEntryBufferByIdAsync', () => {\n it('prints warning if read credentials are not available', async () => {\n jest.spyOn(EnvironmentConfiguration, 'buildCacheCredential', 'get').mockReturnValue(undefined);\n\n const session: RushSession = {} as RushSession;\n const provider = new HttpBuildCacheProvider(EXAMPLE_OPTIONS, session);\n\n mocked(fetch).mockResolvedValue(\n new Response('Unauthorized', {\n status: 401,\n statusText: 'Unauthorized'\n })\n );\n\n const result = await provider.tryGetCacheEntryBufferByIdAsync(terminal, 'some-key');\n expect(result).toBe(undefined);\n expect(fetch).toHaveBeenCalledTimes(1);\n expect(fetch).toHaveBeenNthCalledWith(1, 'https://buildcache.example.acme.com/some-key', {\n body: undefined,\n headers: {},\n method: 'GET',\n redirect: 'follow'\n });\n expect(terminalBuffer.getWarningOutput()).toMatchInlineSnapshot(\n `\"Error getting cache entry: Error: Credentials for https://buildcache.example.acme.com/ have not been provided.[n]In CI, verify that RUSH_BUILD_CACHE_CREDENTIAL contains a valid Authorization header value.[n][n]For local developers, run:[n][n] rush update-cloud-credentials --interactive[n][n]\"`\n );\n });\n\n it('attempts up to 3 times to download a cache entry', async () => {\n jest.spyOn(EnvironmentConfiguration, 'buildCacheCredential', 'get').mockReturnValue(undefined);\n\n const session: RushSession = {} as RushSession;\n const provider = new HttpBuildCacheProvider(EXAMPLE_OPTIONS, session);\n\n mocked(fetch).mockResolvedValueOnce(\n new Response('InternalServiceError', {\n status: 500,\n statusText: 'InternalServiceError'\n })\n );\n mocked(fetch).mockResolvedValueOnce(\n new Response('ServiceUnavailable', {\n status: 503,\n statusText: 'ServiceUnavailable'\n })\n );\n mocked(fetch).mockResolvedValueOnce(\n new Response('BadGateway', {\n status: 504,\n statusText: 'BadGateway'\n })\n );\n\n const result = await provider.tryGetCacheEntryBufferByIdAsync(terminal, 'some-key');\n expect(result).toBe(undefined);\n expect(fetch).toHaveBeenCalledTimes(3);\n expect(fetch).toHaveBeenNthCalledWith(1, 'https://buildcache.example.acme.com/some-key', {\n body: undefined,\n headers: {},\n method: 'GET',\n redirect: 'follow'\n });\n expect(fetch).toHaveBeenNthCalledWith(2, 'https://buildcache.example.acme.com/some-key', {\n body: undefined,\n headers: {},\n method: 'GET',\n redirect: 'follow'\n });\n expect(fetch).toHaveBeenNthCalledWith(3, 'https://buildcache.example.acme.com/some-key', {\n body: undefined,\n headers: {},\n method: 'GET',\n redirect: 'follow'\n });\n expect(terminalBuffer.getWarningOutput()).toMatchInlineSnapshot(\n `\"Could not get cache entry: HTTP 504: BadGateway[n]\"`\n );\n });\n });\n});\n"]}
1
+ {"version":3,"file":"HttpBuildCacheProvider.test.js","sourceRoot":"","sources":["../../src/test/HttpBuildCacheProvider.test.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\r\n// See LICENSE in the project root for license information.\r\n\r\njest.mock('node-fetch', function () {\r\n return Object.assign(jest.fn(), jest.requireActual('node-fetch'));\r\n});\r\n\r\nimport fetch, { Response } from 'node-fetch';\r\nimport { RushSession, EnvironmentConfiguration } from '@rushstack/rush-sdk';\r\nimport { StringBufferTerminalProvider, Terminal } from '@rushstack/node-core-library';\r\n\r\nimport { HttpBuildCacheProvider, type IHttpBuildCacheProviderOptions } from '../HttpBuildCacheProvider';\r\n\r\nconst EXAMPLE_OPTIONS: IHttpBuildCacheProviderOptions = {\r\n url: 'https://buildcache.example.acme.com',\r\n tokenHandler: {\r\n exec: 'node',\r\n args: ['tokenHandler.js']\r\n },\r\n uploadMethod: 'POST',\r\n isCacheWriteAllowed: false,\r\n pluginName: 'example-plugin',\r\n rushJsonFolder: '/repo',\r\n minHttpRetryDelayMs: 1\r\n};\r\n\r\ndescribe('HttpBuildCacheProvider', () => {\r\n let terminalBuffer: StringBufferTerminalProvider;\r\n let terminal!: Terminal;\r\n\r\n beforeEach(() => {\r\n terminalBuffer = new StringBufferTerminalProvider();\r\n terminal = new Terminal(terminalBuffer);\r\n });\r\n\r\n describe('tryGetCacheEntryBufferByIdAsync', () => {\r\n it('prints warning if read credentials are not available', async () => {\r\n jest.spyOn(EnvironmentConfiguration, 'buildCacheCredential', 'get').mockReturnValue(undefined);\r\n\r\n const session: RushSession = {} as RushSession;\r\n const provider = new HttpBuildCacheProvider(EXAMPLE_OPTIONS, session);\r\n\r\n mocked(fetch).mockResolvedValue(\r\n new Response('Unauthorized', {\r\n status: 401,\r\n statusText: 'Unauthorized'\r\n })\r\n );\r\n\r\n const result = await provider.tryGetCacheEntryBufferByIdAsync(terminal, 'some-key');\r\n expect(result).toBe(undefined);\r\n expect(fetch).toHaveBeenCalledTimes(1);\r\n expect(fetch).toHaveBeenNthCalledWith(1, 'https://buildcache.example.acme.com/some-key', {\r\n body: undefined,\r\n headers: {},\r\n method: 'GET',\r\n redirect: 'follow'\r\n });\r\n expect(terminalBuffer.getWarningOutput()).toMatchInlineSnapshot(\r\n `\"Error getting cache entry: Error: Credentials for https://buildcache.example.acme.com/ have not been provided.[n]In CI, verify that RUSH_BUILD_CACHE_CREDENTIAL contains a valid Authorization header value.[n][n]For local developers, run:[n][n] rush update-cloud-credentials --interactive[n][n]\"`\r\n );\r\n });\r\n\r\n it('attempts up to 3 times to download a cache entry', async () => {\r\n jest.spyOn(EnvironmentConfiguration, 'buildCacheCredential', 'get').mockReturnValue(undefined);\r\n\r\n const session: RushSession = {} as RushSession;\r\n const provider = new HttpBuildCacheProvider(EXAMPLE_OPTIONS, session);\r\n\r\n mocked(fetch).mockResolvedValueOnce(\r\n new Response('InternalServiceError', {\r\n status: 500,\r\n statusText: 'InternalServiceError'\r\n })\r\n );\r\n mocked(fetch).mockResolvedValueOnce(\r\n new Response('ServiceUnavailable', {\r\n status: 503,\r\n statusText: 'ServiceUnavailable'\r\n })\r\n );\r\n mocked(fetch).mockResolvedValueOnce(\r\n new Response('BadGateway', {\r\n status: 504,\r\n statusText: 'BadGateway'\r\n })\r\n );\r\n\r\n const result = await provider.tryGetCacheEntryBufferByIdAsync(terminal, 'some-key');\r\n expect(result).toBe(undefined);\r\n expect(fetch).toHaveBeenCalledTimes(3);\r\n expect(fetch).toHaveBeenNthCalledWith(1, 'https://buildcache.example.acme.com/some-key', {\r\n body: undefined,\r\n headers: {},\r\n method: 'GET',\r\n redirect: 'follow'\r\n });\r\n expect(fetch).toHaveBeenNthCalledWith(2, 'https://buildcache.example.acme.com/some-key', {\r\n body: undefined,\r\n headers: {},\r\n method: 'GET',\r\n redirect: 'follow'\r\n });\r\n expect(fetch).toHaveBeenNthCalledWith(3, 'https://buildcache.example.acme.com/some-key', {\r\n body: undefined,\r\n headers: {},\r\n method: 'GET',\r\n redirect: 'follow'\r\n });\r\n expect(terminalBuffer.getWarningOutput()).toMatchInlineSnapshot(\r\n `\"Could not get cache entry: HTTP 504: BadGateway[n]\"`\r\n );\r\n });\r\n });\r\n});\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rushstack/rush-http-build-cache-plugin",
3
- "version": "5.109.2",
3
+ "version": "5.110.0",
4
4
  "description": "Rush plugin for generic HTTP cloud build cache",
5
5
  "repository": {
6
6
  "type": "git",
@@ -15,12 +15,12 @@
15
15
  "https-proxy-agent": "~5.0.0",
16
16
  "node-fetch": "2.6.7",
17
17
  "@rushstack/node-core-library": "3.61.0",
18
- "@rushstack/rush-sdk": "5.109.2"
18
+ "@rushstack/rush-sdk": "5.110.0"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@types/node-fetch": "2.6.2",
22
- "@microsoft/rush-lib": "5.109.2",
23
- "@rushstack/heft": "0.62.3",
22
+ "@microsoft/rush-lib": "5.110.0",
23
+ "@rushstack/heft": "0.63.0",
24
24
  "local-node-rig": "1.0.0"
25
25
  },
26
26
  "scripts": {
@@ -1,11 +1,11 @@
1
1
  Build cache hit.
2
- Cache key: rushstack+rush-http-build-cache-plugin-_phase_build-a54fa33e112a2bf1d9a56a3bbddaf090e3f76881
2
+ Cache key: rushstack+rush-http-build-cache-plugin-_phase_build-6123140279635b4e69641307e04c82615d4a5778
3
3
  Clearing cached folders: dist, lib, lib-commonjs, temp, .heft
4
4
  Successfully restored output from the build cache.
5
- Restoring cached log file at /home/vsts/work/1/s/rush-plugins/rush-http-build-cache-plugin/.rush/temp/operation/_phase_build/all.log
6
- Invoking: heft run --only build -- --clean --production
7
- ---- build started ----
8
- [build:typescript] Using TypeScript version 5.0.4
9
- [build:typescript] Copied 1 folder or file and linked 0 files
10
- ---- build finished (6.889s) ----
11
- -------------------- Finished (6.894s) --------------------
5
+ Restoring cached log file at D:\a\_work\1\s\rush-plugins\rush-http-build-cache-plugin/.rush/temp/operation/_phase_build/all.log
6
+ Invoking: heft run --only build -- --clean --production
7
+ ---- build started ----
8
+ [build:typescript] Using TypeScript version 5.0.4
9
+ [build:typescript] Copied 1 folder or file and linked 0 files
10
+ ---- build finished (4.156s) ----
11
+ -------------------- Finished (4.163s) --------------------
@@ -1,6 +1,6 @@
1
- Invoking: heft run --only build -- --clean --production
2
- ---- build started ----
3
- [build:typescript] Using TypeScript version 5.0.4
4
- [build:typescript] Copied 1 folder or file and linked 0 files
5
- ---- build finished (6.889s) ----
6
- -------------------- Finished (6.894s) --------------------
1
+ Invoking: heft run --only build -- --clean --production
2
+ ---- build started ----
3
+ [build:typescript] Using TypeScript version 5.0.4
4
+ [build:typescript] Copied 1 folder or file and linked 0 files
5
+ ---- build finished (4.156s) ----
6
+ -------------------- Finished (4.163s) --------------------
@@ -1,20 +1,20 @@
1
1
  Build cache hit.
2
- Cache key: rushstack+rush-http-build-cache-plugin-_phase_test-ea1f6e9f8a47341e02cdcd9e55a9da439c6424a7
2
+ Cache key: rushstack+rush-http-build-cache-plugin-_phase_test-78333a9310f75472822f70554dee637804eb3b97
3
3
  Clearing cached folders: coverage
4
4
  Successfully restored output from the build cache.
5
- Restoring cached log file at /home/vsts/work/1/s/rush-plugins/rush-http-build-cache-plugin/.rush/temp/operation/_phase_test/all.log
6
- Invoking: heft run --only test -- --clean --production
7
- The provided list of phases does not contain all phase dependencies. You may need to run the excluded phases manually.
8
- ---- test started ----
9
- [test:jest] Using Jest version 29.5.0
10
- [test:jest]
11
- [test:jest] Run start. 1 test suite
12
- [test:jest] START lib/test/HttpBuildCacheProvider.test.js
13
- [test:jest] PASS lib/test/HttpBuildCacheProvider.test.js (duration: 0.930s, 2 passed, 0 failed)
14
- [test:jest]
15
- [test:jest] Tests finished:
16
- [test:jest] Successes: 2
17
- [test:jest] Failures: 0
18
- [test:jest] Total: 2
19
- ---- test finished (1.754s) ----
20
- -------------------- Finished (1.76s) --------------------
5
+ Restoring cached log file at D:\a\_work\1\s\rush-plugins\rush-http-build-cache-plugin/.rush/temp/operation/_phase_test/all.log
6
+ Invoking: heft run --only test -- --clean --production
7
+ The provided list of phases does not contain all phase dependencies. You may need to run the excluded phases manually.
8
+ ---- test started ----
9
+ [test:jest] Using Jest version 29.5.0
10
+ [test:jest]
11
+ [test:jest] Run start. 1 test suite
12
+ [test:jest] START lib\test\HttpBuildCacheProvider.test.js
13
+ [test:jest] PASS lib\test\HttpBuildCacheProvider.test.js (duration: 0.976s, 2 passed, 0 failed)
14
+ [test:jest]
15
+ [test:jest] Tests finished:
16
+ [test:jest] Successes: 2
17
+ [test:jest] Failures: 0
18
+ [test:jest] Total: 2
19
+ ---- test finished (1.860s) ----
20
+ -------------------- Finished (1.866s) --------------------
@@ -1,15 +1,15 @@
1
- Invoking: heft run --only test -- --clean --production
2
- The provided list of phases does not contain all phase dependencies. You may need to run the excluded phases manually.
3
- ---- test started ----
4
- [test:jest] Using Jest version 29.5.0
5
- [test:jest]
6
- [test:jest] Run start. 1 test suite
7
- [test:jest] START lib/test/HttpBuildCacheProvider.test.js
8
- [test:jest] PASS lib/test/HttpBuildCacheProvider.test.js (duration: 0.930s, 2 passed, 0 failed)
9
- [test:jest]
10
- [test:jest] Tests finished:
11
- [test:jest] Successes: 2
12
- [test:jest] Failures: 0
13
- [test:jest] Total: 2
14
- ---- test finished (1.754s) ----
15
- -------------------- Finished (1.76s) --------------------
1
+ Invoking: heft run --only test -- --clean --production
2
+ The provided list of phases does not contain all phase dependencies. You may need to run the excluded phases manually.
3
+ ---- test started ----
4
+ [test:jest] Using Jest version 29.5.0
5
+ [test:jest]
6
+ [test:jest] Run start. 1 test suite
7
+ [test:jest] START lib\test\HttpBuildCacheProvider.test.js
8
+ [test:jest] PASS lib\test\HttpBuildCacheProvider.test.js (duration: 0.976s, 2 passed, 0 failed)
9
+ [test:jest]
10
+ [test:jest] Tests finished:
11
+ [test:jest] Successes: 2
12
+ [test:jest] Failures: 0
13
+ [test:jest] Total: 2
14
+ ---- test finished (1.860s) ----
15
+ -------------------- Finished (1.866s) --------------------
@@ -1,11 +1,11 @@
1
- {
2
- "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/rush-plugin-manifest.schema.json",
3
- "plugins": [
4
- {
5
- "pluginName": "rush-http-build-cache-plugin",
6
- "description": "Rush plugin for generic HTTP build cache",
7
- "entryPoint": "lib/index.js",
8
- "optionsSchema": "lib/schemas/plugin-config.schema.json"
9
- }
10
- ]
11
- }
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/rush-plugin-manifest.schema.json",
3
+ "plugins": [
4
+ {
5
+ "pluginName": "rush-http-build-cache-plugin",
6
+ "description": "Rush plugin for generic HTTP build cache",
7
+ "entryPoint": "lib/index.js",
8
+ "optionsSchema": "lib/schemas/plugin-config.schema.json"
9
+ }
10
+ ]
11
+ }