@payfit/nx-core 0.0.0-e2e → 0.0.0-semver
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/README.md +10 -163
- package/dist/src/executors/publisher/docker.d.ts +3 -1
- package/dist/src/executors/publisher/docker.js +12 -57
- package/dist/src/executors/publisher/docker.js.map +1 -1
- package/dist/src/executors/publisher/executor.js +12 -9
- package/dist/src/executors/publisher/executor.js.map +1 -1
- package/dist/src/executors/publisher/helm.d.ts +5 -1
- package/dist/src/executors/publisher/helm.js +11 -40
- package/dist/src/executors/publisher/helm.js.map +1 -1
- package/dist/src/executors/publisher/schema.d.ts +5 -0
- package/dist/src/executors/publisher/schema.json +0 -44
- package/dist/src/index.d.ts +1 -24
- package/dist/src/index.js +11 -67
- package/dist/src/index.js.map +1 -1
- package/dist/src/scripts/version-actions.d.ts +20 -3
- package/dist/src/scripts/version-actions.js +41 -23
- package/dist/src/scripts/version-actions.js.map +1 -1
- package/dist/src/utils/{common/aws-auth.d.ts → aws-auth.d.ts} +8 -16
- package/dist/src/utils/aws-auth.js +84 -0
- package/dist/src/utils/aws-auth.js.map +1 -0
- package/dist/src/utils/docker.d.ts +16 -12
- package/dist/src/utils/docker.js +23 -63
- package/dist/src/utils/docker.js.map +1 -1
- package/dist/src/utils/exec.d.ts +7 -0
- package/dist/src/utils/exec.js +25 -0
- package/dist/src/utils/exec.js.map +1 -0
- package/dist/src/utils/get-version.d.ts +6 -0
- package/dist/src/utils/get-version.js +14 -0
- package/dist/src/utils/get-version.js.map +1 -0
- package/dist/src/utils/github.d.ts +4 -0
- package/dist/src/utils/github.js +17 -0
- package/dist/src/utils/github.js.map +1 -0
- package/dist/src/utils/helm.d.ts +16 -32
- package/dist/src/utils/helm.js +15 -83
- package/dist/src/utils/helm.js.map +1 -1
- package/dist/src/utils/import-esm.js.map +1 -0
- package/dist/src/utils/{common/tsh.d.ts → tsh.d.ts} +0 -1
- package/dist/src/utils/{common/tsh.js → tsh.js} +15 -20
- package/dist/src/utils/tsh.js.map +1 -0
- package/executors.json +2 -12
- package/package.json +18 -42
- package/dist/src/codegen.d.ts +0 -3
- package/dist/src/codegen.js +0 -25
- package/dist/src/codegen.js.map +0 -1
- package/dist/src/executors/preview-deploy/README.md +0 -5
- package/dist/src/executors/preview-deploy/argocdOverride.d.ts +0 -4
- package/dist/src/executors/preview-deploy/argocdOverride.js +0 -22
- package/dist/src/executors/preview-deploy/argocdOverride.js.map +0 -1
- package/dist/src/executors/preview-deploy/executor.d.ts +0 -4
- package/dist/src/executors/preview-deploy/executor.js +0 -143
- package/dist/src/executors/preview-deploy/executor.js.map +0 -1
- package/dist/src/executors/preview-deploy/kargoPolicy.d.ts +0 -14
- package/dist/src/executors/preview-deploy/kargoPolicy.js +0 -69
- package/dist/src/executors/preview-deploy/kargoPolicy.js.map +0 -1
- package/dist/src/executors/preview-deploy/schema.json +0 -28
- package/dist/src/executors/publisher/README.md +0 -3
- package/dist/src/executors/publisher/lambda.d.ts +0 -18
- package/dist/src/executors/publisher/lambda.js +0 -86
- package/dist/src/executors/publisher/lambda.js.map +0 -1
- package/dist/src/executors/release/README.md +0 -15
- package/dist/src/executors/release/executor.d.ts +0 -4
- package/dist/src/executors/release/executor.js +0 -104
- package/dist/src/executors/release/executor.js.map +0 -1
- package/dist/src/executors/release/schema.json +0 -37
- package/dist/src/generators/init/README.md +0 -5
- package/dist/src/generators/init/files/.circleci/config.yml.template +0 -232
- package/dist/src/generators/init/files/.circleci/teleport/shared-charts.conf.template +0 -24
- package/dist/src/generators/init/files/.npmrc.template +0 -1
- package/dist/src/generators/init/init.d.ts +0 -13
- package/dist/src/generators/init/init.js +0 -278
- package/dist/src/generators/init/init.js.map +0 -1
- package/dist/src/generators/init/schema.json +0 -7
- package/dist/src/scripts/codegen-with-auth.js +0 -55
- package/dist/src/scripts/version-actions.mock.d.ts +0 -6
- package/dist/src/scripts/version-actions.mock.js +0 -61
- package/dist/src/scripts/version-actions.mock.js.map +0 -1
- package/dist/src/utils/common/aws-auth.js +0 -145
- package/dist/src/utils/common/aws-auth.js.map +0 -1
- package/dist/src/utils/common/circleci.d.ts +0 -2
- package/dist/src/utils/common/circleci.js +0 -20
- package/dist/src/utils/common/circleci.js.map +0 -1
- package/dist/src/utils/common/exec.d.ts +0 -4
- package/dist/src/utils/common/exec.js +0 -52
- package/dist/src/utils/common/exec.js.map +0 -1
- package/dist/src/utils/common/github.d.ts +0 -20
- package/dist/src/utils/common/github.js +0 -60
- package/dist/src/utils/common/github.js.map +0 -1
- package/dist/src/utils/common/import-esm.js.map +0 -1
- package/dist/src/utils/common/logger.d.ts +0 -1
- package/dist/src/utils/common/logger.js +0 -8
- package/dist/src/utils/common/logger.js.map +0 -1
- package/dist/src/utils/common/nx.d.ts +0 -22
- package/dist/src/utils/common/nx.js +0 -174
- package/dist/src/utils/common/nx.js.map +0 -1
- package/dist/src/utils/common/s3.d.ts +0 -1
- package/dist/src/utils/common/s3.js +0 -18
- package/dist/src/utils/common/s3.js.map +0 -1
- package/dist/src/utils/common/tsh.js.map +0 -1
- package/dist/src/utils/datadog.d.ts +0 -1
- package/dist/src/utils/datadog.js +0 -33
- package/dist/src/utils/datadog.js.map +0 -1
- package/dist/src/utils/helm.mock.d.ts +0 -85
- package/dist/src/utils/helm.mock.js +0 -100
- package/dist/src/utils/helm.mock.js.map +0 -1
- package/dist/src/utils/lambda/aws-lambda.d.ts +0 -47
- package/dist/src/utils/lambda/aws-lambda.js +0 -231
- package/dist/src/utils/lambda/aws-lambda.js.map +0 -1
- package/dist/src/utils/lambda/lambda.d.ts +0 -7
- package/dist/src/utils/lambda/lambda.js +0 -20
- package/dist/src/utils/lambda/lambda.js.map +0 -1
- package/dist/src/utils/lambda/oci.d.ts +0 -8
- package/dist/src/utils/lambda/oci.js +0 -22
- package/dist/src/utils/lambda/oci.js.map +0 -1
- package/dist/src/utils/lambda/publish.d.ts +0 -14
- package/dist/src/utils/lambda/publish.js +0 -44
- package/dist/src/utils/lambda/publish.js.map +0 -1
- package/dist/src/utils/lambda/spacelift.d.ts +0 -3
- package/dist/src/utils/lambda/spacelift.js +0 -55
- package/dist/src/utils/lambda/spacelift.js.map +0 -1
- package/dist/src/utils/spacelift/lib/__generated__/fragment-masking.d.ts +0 -19
- package/dist/src/utils/spacelift/lib/__generated__/fragment-masking.js +0 -22
- package/dist/src/utils/spacelift/lib/__generated__/fragment-masking.js.map +0 -1
- package/dist/src/utils/spacelift/lib/__generated__/gql.d.ts +0 -15
- package/dist/src/utils/spacelift/lib/__generated__/gql.js +0 -8
- package/dist/src/utils/spacelift/lib/__generated__/gql.js.map +0 -1
- package/dist/src/utils/spacelift/lib/__generated__/graphql.d.ts +0 -9426
- package/dist/src/utils/spacelift/lib/__generated__/graphql.js +0 -819
- package/dist/src/utils/spacelift/lib/__generated__/graphql.js.map +0 -1
- package/dist/src/utils/spacelift/lib/__generated__/index.d.ts +0 -2
- package/dist/src/utils/spacelift/lib/__generated__/index.js +0 -6
- package/dist/src/utils/spacelift/lib/__generated__/index.js.map +0 -1
- package/dist/src/utils/spacelift/lib/graphql.service.d.ts +0 -18
- package/dist/src/utils/spacelift/lib/graphql.service.js +0 -186
- package/dist/src/utils/spacelift/lib/graphql.service.js.map +0 -1
- package/dist/src/utils/spacelift/lib/query/spacelift.queries.d.ts +0 -34
- package/dist/src/utils/spacelift/lib/query/spacelift.queries.js +0 -48
- package/dist/src/utils/spacelift/lib/query/spacelift.queries.js.map +0 -1
- package/dist/src/utils/spacelift/lib/spacelift.error.d.ts +0 -43
- package/dist/src/utils/spacelift/lib/spacelift.error.js +0 -63
- package/dist/src/utils/spacelift/lib/spacelift.error.js.map +0 -1
- package/dist/src/utils/spacelift/lib/spacelift.service.d.ts +0 -16
- package/dist/src/utils/spacelift/lib/spacelift.service.js +0 -58
- package/dist/src/utils/spacelift/lib/spacelift.service.js.map +0 -1
- package/dist/src/utils/spacelift/lib/utils.d.ts +0 -4
- package/dist/src/utils/spacelift/lib/utils.js +0 -32
- package/dist/src/utils/spacelift/lib/utils.js.map +0 -1
- package/generators.json +0 -9
- /package/dist/src/utils/{common/import-esm.d.ts → import-esm.d.ts} +0 -0
- /package/dist/src/utils/{common/import-esm.js → import-esm.js} +0 -0
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.updateKargoPolicy = updateKargoPolicy;
|
|
4
|
-
const github_1 = require("../../utils/common/github");
|
|
5
|
-
/**
|
|
6
|
-
* Ensures the service structure exists in the kargo policy
|
|
7
|
-
* Returns true if any structure was created, false otherwise
|
|
8
|
-
*/
|
|
9
|
-
function ensureServiceStructure(kargoPolicy, appName, env) {
|
|
10
|
-
const service = kargoPolicy.services[appName];
|
|
11
|
-
if (!service.stages) {
|
|
12
|
-
service.stages = {};
|
|
13
|
-
}
|
|
14
|
-
if (!service.stages[env]) {
|
|
15
|
-
service.stages[env] = {};
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Removes ephemeral branch configuration and cleans up empty objects
|
|
20
|
-
* Returns true if any changes were made, false otherwise
|
|
21
|
-
*/
|
|
22
|
-
function resetKargoPolicyForDefaultBranch(kargoPolicy, appName, env) {
|
|
23
|
-
const service = kargoPolicy.services[appName];
|
|
24
|
-
let hasChanged = false;
|
|
25
|
-
// Remove ephemeral branch if it exists
|
|
26
|
-
if (service.stages[env].ephemeralBranch) {
|
|
27
|
-
delete service.stages[env].ephemeralBranch;
|
|
28
|
-
hasChanged = true; // only commit file if we made an actual change
|
|
29
|
-
}
|
|
30
|
-
// Clean up empty env stage
|
|
31
|
-
if (Object.keys(service.stages[env]).length === 0) {
|
|
32
|
-
delete service.stages[env];
|
|
33
|
-
}
|
|
34
|
-
// Clean up empty stages object
|
|
35
|
-
if (Object.keys(service.stages).length === 0) {
|
|
36
|
-
delete service.stages;
|
|
37
|
-
}
|
|
38
|
-
return hasChanged;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Sets the ephemeral branch for feature branch deployment
|
|
42
|
-
* Returns true if the value changed, false if it was already set to the same value
|
|
43
|
-
*/
|
|
44
|
-
function setEphemeralBranch(kargoPolicy, appName, env, branchName) {
|
|
45
|
-
const currentValue = kargoPolicy.services[appName].stages[env].ephemeralBranch;
|
|
46
|
-
kargoPolicy.services[appName].stages[env].ephemeralBranch = branchName;
|
|
47
|
-
return currentValue !== branchName;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Updates the Kargo policy configuration based on the target branch
|
|
51
|
-
*/
|
|
52
|
-
function updateKargoPolicy(kargoPolicy, targetBranchName, targetEnv, targetAppName) {
|
|
53
|
-
// Early return if service doesn't exist
|
|
54
|
-
if (!kargoPolicy.services || !kargoPolicy.services[targetAppName]) {
|
|
55
|
-
throw new Error('Unable to update kargo policy, service does not exist in the configuration');
|
|
56
|
-
}
|
|
57
|
-
let hasChanged = false;
|
|
58
|
-
// Ensure structure exists and track if changes were made
|
|
59
|
-
ensureServiceStructure(kargoPolicy, targetAppName, targetEnv);
|
|
60
|
-
if ((0, github_1.isDefaultBranch)(targetBranchName)) {
|
|
61
|
-
// reset to default branch
|
|
62
|
-
hasChanged = resetKargoPolicyForDefaultBranch(kargoPolicy, targetAppName, targetEnv);
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
hasChanged = setEphemeralBranch(kargoPolicy, targetAppName, targetEnv, targetBranchName);
|
|
66
|
-
}
|
|
67
|
-
return hasChanged ? kargoPolicy : undefined;
|
|
68
|
-
}
|
|
69
|
-
//# sourceMappingURL=kargoPolicy.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kargoPolicy.js","sourceRoot":"","sources":["../../../../src/executors/preview-deploy/kargoPolicy.ts"],"names":[],"mappings":";;AA0FA,8CAmCC;AA7HD,sDAA2D;AAoB3D;;;GAGG;AACH,SAAS,sBAAsB,CAC7B,WAAwB,EACxB,OAAe,EACf,GAAW;IAEX,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAE7C,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,OAAO,CAAC,MAAM,GAAG,EAAE,CAAA;IACrB,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;IAC1B,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,gCAAgC,CACvC,WAAwB,EACxB,OAAe,EACf,GAAW;IAEX,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC7C,IAAI,UAAU,GAAG,KAAK,CAAA;IAEtB,uCAAuC;IACvC,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,eAAe,CAAA;QAC1C,UAAU,GAAG,IAAI,CAAA,CAAC,+CAA+C;IACnE,CAAC;IAED,2BAA2B;IAC3B,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;IAED,+BAA+B;IAC/B,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,OAAO,CAAC,MAAM,CAAA;IACvB,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CACzB,WAAwB,EACxB,OAAe,EACf,GAAW,EACX,UAAkB;IAElB,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,eAAe,CAAA;IAC9E,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,eAAe,GAAG,UAAU,CAAA;IAEtE,OAAO,YAAY,KAAK,UAAU,CAAA;AACpC,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAC/B,WAAwB,EACxB,gBAAwB,EACxB,SAAiB,EACjB,aAAqB;IAErB,wCAAwC;IACxC,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAA;IACH,CAAC;IAED,IAAI,UAAU,GAAG,KAAK,CAAA;IAEtB,yDAAyD;IACzD,sBAAsB,CAAC,WAAW,EAAE,aAAa,EAAE,SAAS,CAAC,CAAA;IAE7D,IAAI,IAAA,wBAAe,EAAC,gBAAgB,CAAC,EAAE,CAAC;QACtC,0BAA0B;QAC1B,UAAU,GAAG,gCAAgC,CAC3C,WAAW,EACX,aAAa,EACb,SAAS,CACV,CAAA;IACH,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,kBAAkB,CAC7B,WAAW,EACX,aAAa,EACb,SAAS,EACT,gBAAgB,CACjB,CAAA;IACH,CAAC;IAED,OAAO,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAA;AAC7C,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://json-schema.org/schema",
|
|
3
|
-
"version": 2,
|
|
4
|
-
"title": "Preview deploy branch",
|
|
5
|
-
"description": "Use it to switch the deployment branch of an app",
|
|
6
|
-
"type": "object",
|
|
7
|
-
"properties": {
|
|
8
|
-
"targetRepo": {
|
|
9
|
-
"type": "string",
|
|
10
|
-
"description": "Target <domain>-deploy repository"
|
|
11
|
-
},
|
|
12
|
-
"targetBranchName": {
|
|
13
|
-
"type": "string",
|
|
14
|
-
"description": "Branch name to deploy"
|
|
15
|
-
},
|
|
16
|
-
"targetEnv": {
|
|
17
|
-
"type": "string",
|
|
18
|
-
"description": "Target environment to deploy to",
|
|
19
|
-
"enum": ["dev", "staging", "prod"],
|
|
20
|
-
"default": "dev"
|
|
21
|
-
},
|
|
22
|
-
"targetAppName": {
|
|
23
|
-
"type": "string",
|
|
24
|
-
"description": "app name to target within the <domain>-deploy repo"
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
"required": ["targetAppName", "targetRepo", "targetBranchName"]
|
|
28
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { ExecutorContext } from '@nx/devkit';
|
|
2
|
-
import { PublisherExecutorOptions } from './schema';
|
|
3
|
-
/**
|
|
4
|
-
* Function called by nx-release-publish, it :
|
|
5
|
-
* - publish zip to S3
|
|
6
|
-
* - creates new version via Spacelift
|
|
7
|
-
* - runs smoke tests
|
|
8
|
-
* - create alias for lambda function
|
|
9
|
-
* - push OCI in ECR registry
|
|
10
|
-
*
|
|
11
|
-
* @param options - Contains lambdaBucket, lambdaFunctions, and lambdaStacks configuration
|
|
12
|
-
* @param context - NX executor context with project information
|
|
13
|
-
* @param version - Version string for deployment
|
|
14
|
-
* @param projectRoot - Project root directory path
|
|
15
|
-
* @param projectDist - Built code directory path
|
|
16
|
-
* @param isDryRun - Skip actual deployment if true
|
|
17
|
-
*/
|
|
18
|
-
export declare function publishLambda(options: PublisherExecutorOptions, context: ExecutorContext, version: string, projectRoot: string, projectDist: string, isDryRun: boolean): Promise<void>;
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.publishLambda = publishLambda;
|
|
4
|
-
const path_1 = require("path");
|
|
5
|
-
const aws_auth_1 = require("../../utils/common/aws-auth");
|
|
6
|
-
const github_1 = require("../../utils/common/github");
|
|
7
|
-
const logger_1 = require("../../utils/common/logger");
|
|
8
|
-
const s3_1 = require("../../utils/common/s3");
|
|
9
|
-
const lambda_1 = require("../../utils/lambda/lambda");
|
|
10
|
-
const oci_1 = require("../../utils/lambda/oci");
|
|
11
|
-
const publish_1 = require("../../utils/lambda/publish");
|
|
12
|
-
/**
|
|
13
|
-
* Function called by nx-release-publish, it :
|
|
14
|
-
* - publish zip to S3
|
|
15
|
-
* - creates new version via Spacelift
|
|
16
|
-
* - runs smoke tests
|
|
17
|
-
* - create alias for lambda function
|
|
18
|
-
* - push OCI in ECR registry
|
|
19
|
-
*
|
|
20
|
-
* @param options - Contains lambdaBucket, lambdaFunctions, and lambdaStacks configuration
|
|
21
|
-
* @param context - NX executor context with project information
|
|
22
|
-
* @param version - Version string for deployment
|
|
23
|
-
* @param projectRoot - Project root directory path
|
|
24
|
-
* @param projectDist - Built code directory path
|
|
25
|
-
* @param isDryRun - Skip actual deployment if true
|
|
26
|
-
*/
|
|
27
|
-
async function publishLambda(options, context, version, projectRoot, projectDist, isDryRun) {
|
|
28
|
-
const gitBranchName = await (0, github_1.getSanitizedCurrentGitBranch)();
|
|
29
|
-
const repoUrl = await (0, github_1.getSanitizedCurrentGitRepoUrl)();
|
|
30
|
-
const repoName = repoUrl.split('/').pop() ?? 'unknown-repo';
|
|
31
|
-
// Sanitize project name to ensure it is a valid S3 key
|
|
32
|
-
// Remove any characters that are not alphanumeric, hyphen, or underscore
|
|
33
|
-
// remove the @payfit/ prefix if it exists
|
|
34
|
-
const sanitizedProjectName = context.projectName
|
|
35
|
-
.replace(/^@payfit\//, '')
|
|
36
|
-
.replace(/[^a-zA-Z0-9-_]/g, '-');
|
|
37
|
-
const zipName = `${version}.zip`;
|
|
38
|
-
const zipFileNameS3 = `${options.lambdaBucket}/${repoName}/${sanitizedProjectName}/${zipName}`;
|
|
39
|
-
if (!gitBranchName)
|
|
40
|
-
throw new Error('Unable to get current Git branch');
|
|
41
|
-
if (!options.lambdaFunctions) {
|
|
42
|
-
logger_1.consola.info(`No lambda functions provided in project ${context.projectName} no "lambdaFunctions" parameter in project.json metadata, skipping`);
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
if (!options.lambdaStacks) {
|
|
46
|
-
logger_1.consola.error('No lambda spacelift stacks provided, add "lambdaStacks" to your project.json metadata');
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
if (!options.lambdaHealthCheckPayload) {
|
|
50
|
-
logger_1.consola.error('A healthCheck payload should be defined to run smoke test before releasing the lambda', 'Add "lambdaHealthCheckPayload" to your project.json metadata');
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
const lambdaPayload = options.lambdaHealthCheckPayload;
|
|
55
|
-
try {
|
|
56
|
-
JSON.parse(lambdaPayload);
|
|
57
|
-
}
|
|
58
|
-
catch (error) {
|
|
59
|
-
logger_1.consola.error(`lambdaHealthCheckPayload should be a JSON string, got ${lambdaPayload}`);
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
if (isDryRun) {
|
|
64
|
-
logger_1.consola.box(`Would have published lambda artefact to S3 ${zipFileNameS3} but --dry-run is enabled`);
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
await (0, aws_auth_1.checkAwsAuth)();
|
|
68
|
-
logger_1.consola.box(`Publishing the lambda artefact ${zipFileNameS3}`);
|
|
69
|
-
logger_1.consola.info(`Zipping ${zipName} from ${projectDist}`);
|
|
70
|
-
await (0, lambda_1.createZip)(projectDist, zipName);
|
|
71
|
-
const zipPath = (0, path_1.join)(projectDist, zipName);
|
|
72
|
-
logger_1.consola.info(`Uploading ${zipPath} to S3 at ${zipFileNameS3}`);
|
|
73
|
-
await (0, s3_1.pushToS3)(zipPath, zipFileNameS3);
|
|
74
|
-
logger_1.consola.success(`Lambda artefact successfully pushed to S3 at ${zipFileNameS3}`);
|
|
75
|
-
logger_1.consola.box(`Creating new Lambda version and running smoke tests`);
|
|
76
|
-
await (0, publish_1.createLambdaVersion)(options.lambdaStacks, options.lambdaFunctions, version, options.lambdaHealthCheckPayload);
|
|
77
|
-
const packageJsonPath = (0, path_1.join)(projectDist, 'package.json');
|
|
78
|
-
for (const registry of options.lambdaFunctions) {
|
|
79
|
-
logger_1.consola.info(`Pushing empty image to ECR ${process.env.AWS_ECR_REGISTRY}/${registry}:${version}`);
|
|
80
|
-
await (0, aws_auth_1.loginToEcr)(process.env.AWS_ECR_REGISTRY);
|
|
81
|
-
await (0, oci_1.pushImageToEcr)(registry, version, packageJsonPath);
|
|
82
|
-
}
|
|
83
|
-
logger_1.consola.success('Lambda artifact successfully pushed to S3!');
|
|
84
|
-
logger_1.consola.success(`Lambda version ${version} successfully created and smoke tests passed, you're lambda is ready to be promoted in Kargo !`);
|
|
85
|
-
}
|
|
86
|
-
//# sourceMappingURL=lambda.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../../src/executors/publisher/lambda.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# nx-core release executor
|
|
2
|
-
|
|
3
|
-
It is handling all the release using the SDK of Nx
|
|
4
|
-
|
|
5
|
-
https://nx.dev/features/manage-releases#using-the-programmatic-api-for-nx-release
|
|
6
|
-
|
|
7
|
-
```mermaid
|
|
8
|
-
flowchart LR
|
|
9
|
-
A(["releaseVersion"]) --> B(["releaseChangelog"])
|
|
10
|
-
B --> C(["releasePublish"])
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
1. **releaseVersion**: will define affected apps & calculate new versions based on the version actions defined (so semver, calver, ...)
|
|
14
|
-
2. **releaseChangelog**: will generate the changelog based on the git history
|
|
15
|
-
3. **releasePublish**: will trigger the `nx-release-publish` target on all the affected apps
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { ExecutorContext } from '@nx/devkit';
|
|
2
|
-
import { ReleaseExecutorOptions, ReleaseExecutorSchema } from './schema';
|
|
3
|
-
declare const runExecutor: (options: ReleaseExecutorOptions, context: ExecutorContext) => Promise<ReleaseExecutorSchema>;
|
|
4
|
-
export default runExecutor;
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const release_1 = require("nx/release");
|
|
4
|
-
const circleci_1 = require("../../utils/common/circleci");
|
|
5
|
-
const github_1 = require("../../utils/common/github");
|
|
6
|
-
const logger_1 = require("../../utils/common/logger");
|
|
7
|
-
const nx_1 = require("../../utils/common/nx");
|
|
8
|
-
const tsh_1 = require("../../utils/common/tsh");
|
|
9
|
-
const runExecutor = async (options, context) => {
|
|
10
|
-
const dryRun = process.env.NX_DRY_RUN === 'true' || options.dryRun || false;
|
|
11
|
-
if ((0, circleci_1.isCircleCIRunner)()) {
|
|
12
|
-
logger_1.consola.start('CircleCI runner detected, setting it up!');
|
|
13
|
-
await (0, circleci_1.setupCircleCIRunner)();
|
|
14
|
-
await (0, tsh_1.startTbot)();
|
|
15
|
-
logger_1.consola.success('CircleCI runner setup successfully!');
|
|
16
|
-
}
|
|
17
|
-
const branchName = await (0, github_1.getSanitizedCurrentGitBranch)();
|
|
18
|
-
const commit = await (0, github_1.getCurrentGitCommitSha)();
|
|
19
|
-
const isPreRelease = options?.preRelease != null
|
|
20
|
-
? options.preRelease
|
|
21
|
-
: branchName != 'main' && branchName != 'master';
|
|
22
|
-
const specifier = isPreRelease ? 'prerelease' : options.specifier;
|
|
23
|
-
const groups = options.groups && options.groups.length > 0 ? options.groups : undefined;
|
|
24
|
-
if (isPreRelease)
|
|
25
|
-
logger_1.consola.warn('This is an ephemeral release');
|
|
26
|
-
const allProjects = await (0, nx_1.getAffectedProjects)(groups);
|
|
27
|
-
if (allProjects.length === 0) {
|
|
28
|
-
logger_1.consola.warn('No projects to publish');
|
|
29
|
-
return {
|
|
30
|
-
success: true,
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
logger_1.consola.success(`Found ${allProjects.length} affected projects: ${allProjects.join(', ')}`);
|
|
34
|
-
// Step 1: Version Release
|
|
35
|
-
logger_1.consola.start('Calculating new versions');
|
|
36
|
-
const { projectsVersionData } = await (0, release_1.releaseVersion)({
|
|
37
|
-
dryRun,
|
|
38
|
-
verbose: options.verbose,
|
|
39
|
-
specifier,
|
|
40
|
-
projects: allProjects,
|
|
41
|
-
preid: isPreRelease
|
|
42
|
-
? `ephemeral-${branchName.substring(0, 100)}-${commit.substring(0, 7)}`
|
|
43
|
-
: undefined,
|
|
44
|
-
});
|
|
45
|
-
logger_1.consola.success('New versions calculated successfully!');
|
|
46
|
-
// iterate over `projectsVersionData` to extract changed projects
|
|
47
|
-
const changedProjects = Object.entries(projectsVersionData)
|
|
48
|
-
.map(([projectName, versionData]) => {
|
|
49
|
-
if (versionData?.newVersion) {
|
|
50
|
-
logger_1.consola.info(`Project '${projectName}' will be updated to version ${versionData.newVersion}`);
|
|
51
|
-
return projectName;
|
|
52
|
-
}
|
|
53
|
-
return null; // filter out projects that didn't change
|
|
54
|
-
})
|
|
55
|
-
.filter(Boolean);
|
|
56
|
-
if (changedProjects.length === 0) {
|
|
57
|
-
logger_1.consola.warn('No project to publish');
|
|
58
|
-
return {
|
|
59
|
-
success: true,
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
// Step 2: Changelog Release
|
|
63
|
-
logger_1.consola.start('Generating & pushing changelogs');
|
|
64
|
-
await (0, release_1.releaseChangelog)({
|
|
65
|
-
versionData: projectsVersionData,
|
|
66
|
-
dryRun,
|
|
67
|
-
verbose: options.verbose,
|
|
68
|
-
projects: changedProjects,
|
|
69
|
-
createRelease: isPreRelease ? false : 'github',
|
|
70
|
-
});
|
|
71
|
-
logger_1.consola.success('Generated & pushed changelogs successfully!');
|
|
72
|
-
if (options.skipPublish) {
|
|
73
|
-
logger_1.consola.warn('Skipping publishing step as skipPublish = true');
|
|
74
|
-
return {
|
|
75
|
-
success: true,
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
// Step 3: Publish Release
|
|
79
|
-
logger_1.consola.start('Publishing packages');
|
|
80
|
-
const publishResults = await (0, release_1.releasePublish)({
|
|
81
|
-
projects: changedProjects,
|
|
82
|
-
dryRun,
|
|
83
|
-
verbose: options.verbose,
|
|
84
|
-
tag: isPreRelease ? 'ephemeral' : undefined,
|
|
85
|
-
});
|
|
86
|
-
// Log publish results
|
|
87
|
-
let publishError = false;
|
|
88
|
-
Object.entries(publishResults).forEach(([projectName, result]) => {
|
|
89
|
-
if (result.code === 0) {
|
|
90
|
-
logger_1.consola.success(`Published ${projectName} successfully!`);
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
publishError = true;
|
|
94
|
-
logger_1.consola.fail(`Failed to publish ${projectName} with exit code ${result.code}`);
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
if (publishError)
|
|
98
|
-
throw new Error('We got errors when publishing, check the logs');
|
|
99
|
-
return {
|
|
100
|
-
success: true,
|
|
101
|
-
};
|
|
102
|
-
};
|
|
103
|
-
exports.default = runExecutor;
|
|
104
|
-
//# sourceMappingURL=executor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/release/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://json-schema.org/schema",
|
|
3
|
-
"version": 2,
|
|
4
|
-
"title": "Publisher executor",
|
|
5
|
-
"description": "Publish the helm chart to the chartmuseum and docker image to ECR",
|
|
6
|
-
"type": "object",
|
|
7
|
-
"properties": {
|
|
8
|
-
"preRelease": {
|
|
9
|
-
"type": "boolean",
|
|
10
|
-
"description": "The release is an ephemeral/rc"
|
|
11
|
-
},
|
|
12
|
-
"skipPublish": {
|
|
13
|
-
"type": "boolean",
|
|
14
|
-
"description": "Should skip publish"
|
|
15
|
-
},
|
|
16
|
-
"dryRun": {
|
|
17
|
-
"type": "boolean",
|
|
18
|
-
"description": "Is dry run"
|
|
19
|
-
},
|
|
20
|
-
"verbose": {
|
|
21
|
-
"type": "boolean",
|
|
22
|
-
"description": "Is verbose"
|
|
23
|
-
},
|
|
24
|
-
"groups": {
|
|
25
|
-
"type": "array",
|
|
26
|
-
"items": {
|
|
27
|
-
"type": "string"
|
|
28
|
-
},
|
|
29
|
-
"description": "Release groups to target (optional). If not specified, all configured projects will be released."
|
|
30
|
-
},
|
|
31
|
-
"specifier": {
|
|
32
|
-
"type": "string",
|
|
33
|
-
"description": "Exact version or semver keyword to apply (e.g., 'patch', 'minor', 'major', '1.2.3')"
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
"required": []
|
|
37
|
-
}
|
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
version: 2.1
|
|
2
|
-
<% if (keepContinuationJobs) { %>
|
|
3
|
-
setup: true
|
|
4
|
-
<% } %>
|
|
5
|
-
orbs:
|
|
6
|
-
nx: nrwl/nx@1.7
|
|
7
|
-
aws-cli: circleci/aws-cli@5.4
|
|
8
|
-
github: payfit/github@0.9
|
|
9
|
-
node: circleci/node@7.1
|
|
10
|
-
<% if (keepContinuationJobs) { %>
|
|
11
|
-
continuation: circleci/continuation@1.0
|
|
12
|
-
payfit-nx: payfit/nx@2
|
|
13
|
-
<% } %>
|
|
14
|
-
|
|
15
|
-
references:
|
|
16
|
-
setup_env_node: &setup_env_node
|
|
17
|
-
docker:
|
|
18
|
-
- image: cimg/node:22.16
|
|
19
|
-
setup_env_machine: &setup_env_machine # Used for getting docker cli
|
|
20
|
-
machine:
|
|
21
|
-
image: ubuntu-2204:current
|
|
22
|
-
install_packages: &install_packages
|
|
23
|
-
check-cache: always
|
|
24
|
-
pkg-manager: yarn-berry
|
|
25
|
-
attach_workspace: &attach_workspace
|
|
26
|
-
at: ~/project
|
|
27
|
-
nx/set-shas: &nx_set_shas_option
|
|
28
|
-
error-on-no-successful-workflow: false
|
|
29
|
-
main-branch-name: main
|
|
30
|
-
workflow-name: build-test-deploy
|
|
31
|
-
<% if (keepContinuationJobs) { %>
|
|
32
|
-
only_main_and_deploy_branches: &only_main_and_deploy_branches
|
|
33
|
-
branches:
|
|
34
|
-
only:
|
|
35
|
-
- main
|
|
36
|
-
- /^deploy.*/
|
|
37
|
-
<% } %>
|
|
38
|
-
|
|
39
|
-
jobs:
|
|
40
|
-
install_packages:
|
|
41
|
-
<<: *setup_env_node
|
|
42
|
-
steps:
|
|
43
|
-
- checkout
|
|
44
|
-
- node/install-packages: *install_packages
|
|
45
|
-
|
|
46
|
-
lint:
|
|
47
|
-
<<: *setup_env_node
|
|
48
|
-
steps:
|
|
49
|
-
- checkout
|
|
50
|
-
- node/install-packages: *install_packages
|
|
51
|
-
- nx/set-shas: *nx_set_shas_option
|
|
52
|
-
- run: npx nx affected -t lint
|
|
53
|
-
|
|
54
|
-
nx-conformance:
|
|
55
|
-
<<: *setup_env_node
|
|
56
|
-
steps:
|
|
57
|
-
- checkout
|
|
58
|
-
- node/install-packages: *install_packages
|
|
59
|
-
- run: npx nx-cloud record -- npx nx-cloud conformance:check
|
|
60
|
-
|
|
61
|
-
nx-sync:
|
|
62
|
-
<<: *setup_env_node
|
|
63
|
-
steps:
|
|
64
|
-
- checkout
|
|
65
|
-
- node/install-packages: *install_packages
|
|
66
|
-
- run: npx nx-cloud record -- npx nx sync:check
|
|
67
|
-
|
|
68
|
-
format:
|
|
69
|
-
<<: *setup_env_node
|
|
70
|
-
steps:
|
|
71
|
-
- checkout
|
|
72
|
-
- node/install-packages: *install_packages
|
|
73
|
-
- run: npx nx-cloud record -- npx nx format:check
|
|
74
|
-
|
|
75
|
-
build:
|
|
76
|
-
<<: *setup_env_node
|
|
77
|
-
steps:
|
|
78
|
-
- checkout
|
|
79
|
-
- node/install-packages: *install_packages
|
|
80
|
-
- nx/set-shas: *nx_set_shas_option
|
|
81
|
-
- run: npx nx run-many -t build
|
|
82
|
-
- persist_to_workspace:
|
|
83
|
-
root: '.'
|
|
84
|
-
paths:
|
|
85
|
-
- dist
|
|
86
|
-
- apps/*/dist
|
|
87
|
-
- packages/*/dist
|
|
88
|
-
- libs/*/dist
|
|
89
|
-
|
|
90
|
-
test:
|
|
91
|
-
<<: *setup_env_node
|
|
92
|
-
steps:
|
|
93
|
-
- checkout
|
|
94
|
-
- node/install-packages: *install_packages
|
|
95
|
-
- nx/set-shas: *nx_set_shas_option
|
|
96
|
-
- run: npx nx affected -t test
|
|
97
|
-
|
|
98
|
-
publish:
|
|
99
|
-
<<: *setup_env_machine
|
|
100
|
-
steps:
|
|
101
|
-
- checkout
|
|
102
|
-
- attach_workspace: *attach_workspace
|
|
103
|
-
- node/install:
|
|
104
|
-
install-yarn: true
|
|
105
|
-
- node/install-packages: *install_packages
|
|
106
|
-
- nx/set-shas: *nx_set_shas_option
|
|
107
|
-
- aws-cli/setup:
|
|
108
|
-
role_arn: ${PUBLISH_ROLE_ARN}
|
|
109
|
-
profile_name: 'OIDC-PROFILE'
|
|
110
|
-
- run:
|
|
111
|
-
name: 'Install Helm 3'
|
|
112
|
-
command: |
|
|
113
|
-
curl -sSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
|
|
114
|
-
- run:
|
|
115
|
-
name: 'Install Tsh'
|
|
116
|
-
command: |
|
|
117
|
-
curl -LsSO https://cdn.teleport.dev/teleport-${TELEPORT_VERSION}-linux-amd64-bin.tar.gz
|
|
118
|
-
tar -xzf teleport-${TELEPORT_VERSION}-linux-amd64-bin.tar.gz
|
|
119
|
-
cd teleport
|
|
120
|
-
sudo ./install
|
|
121
|
-
- run:
|
|
122
|
-
name: 'Install Oras'
|
|
123
|
-
command: |
|
|
124
|
-
VERSION="1.2.2"
|
|
125
|
-
curl -LO "https://github.com/oras-project/oras/releases/download/v${VERSION}/oras_${VERSION}_linux_amd64.tar.gz"
|
|
126
|
-
mkdir -p oras-install/
|
|
127
|
-
tar -zxf oras_${VERSION}_*.tar.gz -C oras-install/
|
|
128
|
-
sudo mv oras-install/oras /usr/local/bin/
|
|
129
|
-
rm -rf oras_${VERSION}_*.tar.gz oras-install/
|
|
130
|
-
- run:
|
|
131
|
-
name: Release
|
|
132
|
-
command: |
|
|
133
|
-
export GH_TOKEN="$(cat github_token)"
|
|
134
|
-
export GITHUB_TOKEN="$(cat github_token)"
|
|
135
|
-
git remote set-url origin https://x-access-token:${GH_TOKEN}@github.com/PayFit/${CIRCLE_PROJECT_REPONAME}.git
|
|
136
|
-
npx nx run <%= packageJsonName %>:release
|
|
137
|
-
|
|
138
|
-
<% if (keepContinuationJobs) { %>
|
|
139
|
-
affected-merge-continuation:
|
|
140
|
-
<<: *setup_env_node
|
|
141
|
-
steps:
|
|
142
|
-
- checkout
|
|
143
|
-
- node/install-packages: *install_packages
|
|
144
|
-
- nx/set-shas: *nx_set_shas_option
|
|
145
|
-
- payfit-nx/affected-apps:
|
|
146
|
-
output-file: affected-list.txt
|
|
147
|
-
main-branch-name: main
|
|
148
|
-
allow-on-hold-workflow: true
|
|
149
|
-
nx-ci-execution-id: $CIRCLE_WORKFLOW_ID
|
|
150
|
-
projects-to-exclude: '<%= packageJsonName %>'
|
|
151
|
-
- payfit-nx/merge-circle-config:
|
|
152
|
-
shared-config-file: .circleci/shared-config.yml
|
|
153
|
-
affected-list-file: affected-list.txt
|
|
154
|
-
config-output: .circleci/continue-config.yml
|
|
155
|
-
- run:
|
|
156
|
-
name: skip if no affected-apps
|
|
157
|
-
command: |
|
|
158
|
-
# If `affected-apps` is unavailable, stop this job without continuation
|
|
159
|
-
if [ ! -f ".circleci/continue-config.yml" ] || [ ! -s ".circleci/continue-config.yml" ]
|
|
160
|
-
then
|
|
161
|
-
echo 'No affected apps, nothing to do.'
|
|
162
|
-
circleci-agent step halt
|
|
163
|
-
exit
|
|
164
|
-
fi
|
|
165
|
-
- run:
|
|
166
|
-
name: Setup parameters
|
|
167
|
-
command: |
|
|
168
|
-
echo "{\"workflow-id\": \"$CIRCLE_WORKFLOW_ID\"}" > parameters.json
|
|
169
|
-
- continuation/continue:
|
|
170
|
-
configuration_path: .circleci/continue-config.yml
|
|
171
|
-
parameters: parameters.json
|
|
172
|
-
<% } %>
|
|
173
|
-
|
|
174
|
-
workflows:
|
|
175
|
-
build-test-deploy:
|
|
176
|
-
jobs:
|
|
177
|
-
- github/auth:
|
|
178
|
-
outputFile: github_token
|
|
179
|
-
name: github_authenticate
|
|
180
|
-
context:
|
|
181
|
-
- NX_COMMON_PACKAGES # TSH config / AWS credentials / NPM token
|
|
182
|
-
- install_packages:
|
|
183
|
-
context: NX_COMMON_PACKAGES # TSH config / AWS credentials / NPM token
|
|
184
|
-
|
|
185
|
-
- lint:
|
|
186
|
-
context: NX_COMMON_PACKAGES # TSH config / AWS credentials / NPM token
|
|
187
|
-
requires:
|
|
188
|
-
- install_packages
|
|
189
|
-
|
|
190
|
-
- nx-sync:
|
|
191
|
-
context: NX_COMMON_PACKAGES # TSH config / AWS credentials / NPM token
|
|
192
|
-
requires:
|
|
193
|
-
- install_packages
|
|
194
|
-
|
|
195
|
-
- format:
|
|
196
|
-
context: NX_COMMON_PACKAGES # TSH config / AWS credentials / NPM token
|
|
197
|
-
requires:
|
|
198
|
-
- install_packages
|
|
199
|
-
|
|
200
|
-
- nx-conformance:
|
|
201
|
-
context: NX_COMMON_PACKAGES # TSH config / AWS credentials / NPM token
|
|
202
|
-
requires:
|
|
203
|
-
- install_packages
|
|
204
|
-
|
|
205
|
-
- build:
|
|
206
|
-
context: NX_COMMON_PACKAGES # TSH config / AWS credentials / NPM token
|
|
207
|
-
requires:
|
|
208
|
-
- install_packages
|
|
209
|
-
|
|
210
|
-
- test:
|
|
211
|
-
context: NX_COMMON_PACKAGES # TSH config / AWS credentials / NPM token
|
|
212
|
-
requires:
|
|
213
|
-
- install_packages
|
|
214
|
-
|
|
215
|
-
- publish:
|
|
216
|
-
name: Publish
|
|
217
|
-
requires:
|
|
218
|
-
- github_authenticate
|
|
219
|
-
- test
|
|
220
|
-
- build
|
|
221
|
-
context:
|
|
222
|
-
- NX_COMMON_PACKAGES # TSH config / AWS credentials / NPM token
|
|
223
|
-
|
|
224
|
-
<% if (keepContinuationJobs) { %>
|
|
225
|
-
- affected-merge-continuation:
|
|
226
|
-
requires:
|
|
227
|
-
- build
|
|
228
|
-
- test
|
|
229
|
-
context:
|
|
230
|
-
- NX_COMMON_PACKAGES # TSH config / AWS credentials / NPM token
|
|
231
|
-
filters: *only_main_and_deploy_branches
|
|
232
|
-
<% } %>
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
version: v2
|
|
2
|
-
onboarding:
|
|
3
|
-
token: "nx-common-packages"
|
|
4
|
-
join_method: "circleci"
|
|
5
|
-
storage:
|
|
6
|
-
type: "directory"
|
|
7
|
-
path: "/tmp/tbot-data"
|
|
8
|
-
symlinks: "try-secure"
|
|
9
|
-
acls: "off"
|
|
10
|
-
outputs:
|
|
11
|
-
- type: "application"
|
|
12
|
-
destination:
|
|
13
|
-
type: "directory"
|
|
14
|
-
path: "./certs"
|
|
15
|
-
symlinks: "try-secure"
|
|
16
|
-
acls: "off"
|
|
17
|
-
app_name: "charts-shared"
|
|
18
|
-
specific_tls_naming: false
|
|
19
|
-
debug: false
|
|
20
|
-
auth_server: "payfit.teleport.sh:443"
|
|
21
|
-
certificate_ttl: "1h0m0s"
|
|
22
|
-
renewal_interval: "20m0s"
|
|
23
|
-
oneshot: true
|
|
24
|
-
fips: false
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
|