@payfit/nx-core 5.15.3 → 5.15.4-ephemeral-release-rerun.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.
- package/README.md +39 -2
- package/dist/src/executors/publisher/schema.d.ts +1 -0
- package/dist/src/executors/release/executor.js +7 -3
- package/dist/src/executors/release/executor.js.map +1 -1
- package/dist/src/index.js +72 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/utils/common/constants.d.ts +1 -0
- package/dist/src/utils/common/constants.js +1 -0
- package/dist/src/utils/common/constants.js.map +1 -1
- package/dist/src/utils/common/github.d.ts +4 -0
- package/dist/src/utils/common/github.js +22 -0
- package/dist/src/utils/common/github.js.map +1 -1
- package/dist/src/utils/common/nx.js +4 -0
- package/dist/src/utils/common/nx.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,6 +8,7 @@ A Nx plugin that simplifies Docker image, Helm chart, lambda, frontend, and Open
|
|
|
8
8
|
- Helm chart packaging and versioning
|
|
9
9
|
- AWS Lambda function packaging and deployment (ZIP and Docker-based)
|
|
10
10
|
- Frontend publishing to S3 with CDN-optimized caching
|
|
11
|
+
- OpenTofu/Terraform module formatting and linting
|
|
11
12
|
- Transparent version management through Nx's versionActions (CalVer by default)
|
|
12
13
|
- Seamless integration with your Nx workspace
|
|
13
14
|
- Auto setup using init generator to update your repository at plugin installation
|
|
@@ -141,6 +142,39 @@ These fields are used to:
|
|
|
141
142
|
- `frontendFilesWithoutCache`: Files that should be served without cache headers (defaults to `["index.html", "favicon.ico"]`)
|
|
142
143
|
- `frontendFoldersWithoutCache`: Folders that should be served without cache headers (defaults to `[]`)
|
|
143
144
|
|
|
145
|
+
### OpenTofu/Terraform Module Management
|
|
146
|
+
|
|
147
|
+
The plugin provides automatic formatting and linting for OpenTofu/Terraform modules:
|
|
148
|
+
|
|
149
|
+
- Running `tofu fmt` to format code
|
|
150
|
+
- Running `tflint` for linting
|
|
151
|
+
- Running `tofu validate` for validation
|
|
152
|
+
- Automatic version management for modules
|
|
153
|
+
|
|
154
|
+
#### OpenTofu/Terraform Detection
|
|
155
|
+
|
|
156
|
+
The plugin automatically detects OpenTofu/Terraform modules by looking for both:
|
|
157
|
+
|
|
158
|
+
- A `.spacelift/config.yml` file
|
|
159
|
+
- A `main.tf` file in your project root
|
|
160
|
+
|
|
161
|
+
When these files are present, the plugin will configure the following targets:
|
|
162
|
+
|
|
163
|
+
- `tofu-format`: Format OpenTofu code (with `check` and `write` configurations)
|
|
164
|
+
- `lint`: Lint and validate OpenTofu code using tflint and tofu validate
|
|
165
|
+
|
|
166
|
+
#### TFLint Configuration
|
|
167
|
+
|
|
168
|
+
By default, the plugin looks for a `.tflint.hcl` file at the workspace root. You can customize this location by adding a `tflintConfigFile` metadata to your project's `project.json`:
|
|
169
|
+
|
|
170
|
+
```json
|
|
171
|
+
{
|
|
172
|
+
"metadata": {
|
|
173
|
+
"tflintConfigFile": "path/to/custom/.tflint.hcl"
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
144
178
|
## Automatic Release Target Inference
|
|
145
179
|
|
|
146
180
|
The plugin automatically infers release targets for your projects based on the presence of deployment files and metadata:
|
|
@@ -166,9 +200,12 @@ The plugin automatically infers release targets for your projects based on the p
|
|
|
166
200
|
- Set up cache headers for optimal CDN caching
|
|
167
201
|
- Create and push an OCI artifact to ECR for versioning (for Kargo promotion)
|
|
168
202
|
|
|
169
|
-
|
|
203
|
+
5. **OpenTofu/Terraform Module Release**: If both `.spacelift/config.yml` and `main.tf` exist in your project root, the plugin will automatically:
|
|
204
|
+
- Configure OpenTofu code formatting with `tofu fmt`
|
|
205
|
+
- Set up linting with `tflint` and validation with `tofu validate`
|
|
206
|
+
- Handle version management for Terraform modules (Spacelift handles deployment from Git tags)
|
|
170
207
|
|
|
171
|
-
|
|
208
|
+
The inference of the `nx-release-publish` target is handled through Nx's plugin system, which automatically adds the necessary targets and version actions to your project configuration. You don't need to manually configure these targets.
|
|
172
209
|
|
|
173
210
|
---
|
|
174
211
|
|
|
@@ -79,16 +79,20 @@ const runExecutor = async (options, context) => {
|
|
|
79
79
|
versionData: projectsVersionData,
|
|
80
80
|
});
|
|
81
81
|
let success = true;
|
|
82
|
-
|
|
82
|
+
for (const [projectName, result] of Object.entries(publishResults)) {
|
|
83
|
+
const newVersion = projectsVersionData[projectName]?.newVersion;
|
|
83
84
|
if (result.code === 0) {
|
|
84
|
-
const newVersion = projectsVersionData[projectName]?.newVersion;
|
|
85
85
|
logger_1.consola.success(`Published ${projectName} in version ${newVersion} successfully!`);
|
|
86
86
|
}
|
|
87
87
|
else {
|
|
88
88
|
logger_1.consola.fail(`Failed to publish ${projectName} with exit code ${result.code}`);
|
|
89
|
+
await (0, github_1.removeTag)(projectName, newVersion);
|
|
89
90
|
success = false;
|
|
90
91
|
}
|
|
91
|
-
}
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
success,
|
|
95
|
+
};
|
|
92
96
|
return {
|
|
93
97
|
success,
|
|
94
98
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/release/executor.ts"],"names":[],"mappings":";;AACA,wCAA6E;AAE7E,0DAGoC;AACpC,
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/release/executor.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -26,6 +26,7 @@ async function createNodesInternal(configFilePath, options, _context) {
|
|
|
26
26
|
const isDockerProject = artifactTypes.includes(constants_1.ArtifactType.DOCKER);
|
|
27
27
|
const isLambdaProject = artifactTypes.includes(constants_1.ArtifactType.LAMBDA);
|
|
28
28
|
const isFrontendProject = artifactTypes.includes(constants_1.ArtifactType.FRONTEND);
|
|
29
|
+
const isTfModuleProject = artifactTypes.includes(constants_1.ArtifactType.TERRAFORM_MODULE);
|
|
29
30
|
const isHelmProject = artifactTypes.includes(constants_1.ArtifactType.HELM);
|
|
30
31
|
// Handle computed values that need special logic
|
|
31
32
|
if (isHelmProject) {
|
|
@@ -50,10 +51,15 @@ async function createNodesInternal(configFilePath, options, _context) {
|
|
|
50
51
|
options.frontendOciRepository = projectConfiguration.name;
|
|
51
52
|
}
|
|
52
53
|
}
|
|
54
|
+
// Computed: tflintConfigFile with fallback
|
|
55
|
+
if (isTfModuleProject && !options.tflintConfigFile) {
|
|
56
|
+
options.tflintConfigFile = (0, path_1.join)((0, devkit_1.offsetFromRoot)(projectRoot), '.tflint.hcl');
|
|
57
|
+
}
|
|
53
58
|
const isRootProject = projectRoot === '.';
|
|
54
59
|
let release = null;
|
|
55
60
|
// Create targets for projects with deployable artifacts (Docker/Lambda/Frontend/Helm)
|
|
56
|
-
if (artifactTypes.length > 0
|
|
61
|
+
if (artifactTypes.length > 0 &&
|
|
62
|
+
!artifactTypes.includes(constants_1.ArtifactType.TERRAFORM_MODULE)) {
|
|
57
63
|
const publisherConfig = (0, devkit_1.readJsonFile)((0, path_1.join)(__dirname, '/executors/publisher/schema.json'));
|
|
58
64
|
if (isDockerProject) {
|
|
59
65
|
const dockerBuildConfig = (0, devkit_1.readJsonFile)((0, path_1.join)(__dirname, '/executors/docker-build/schema.json'));
|
|
@@ -109,6 +115,71 @@ async function createNodesInternal(configFilePath, options, _context) {
|
|
|
109
115
|
},
|
|
110
116
|
};
|
|
111
117
|
}
|
|
118
|
+
if (artifactTypes.length == 1 &&
|
|
119
|
+
artifactTypes[0] == constants_1.ArtifactType.TERRAFORM_MODULE) {
|
|
120
|
+
targets['tofu-format'] = {
|
|
121
|
+
executor: 'nx:run-commands',
|
|
122
|
+
cache: false,
|
|
123
|
+
inputs: ['production', '^production'],
|
|
124
|
+
outputs: [],
|
|
125
|
+
options: {
|
|
126
|
+
cwd: '{projectRoot}',
|
|
127
|
+
command: 'tofu fmt -recursive',
|
|
128
|
+
},
|
|
129
|
+
configurations: {
|
|
130
|
+
check: {
|
|
131
|
+
args: '-check',
|
|
132
|
+
},
|
|
133
|
+
write: {
|
|
134
|
+
args: '-write',
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
defaultConfiguration: 'check',
|
|
138
|
+
metadata: {
|
|
139
|
+
technologies: ['tofu'],
|
|
140
|
+
description: 'Format OpenTofu code',
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
targets['lint'] = {
|
|
144
|
+
executor: 'nx:run-commands',
|
|
145
|
+
cache: false,
|
|
146
|
+
inputs: ['production', '^production'],
|
|
147
|
+
outputs: [],
|
|
148
|
+
options: {
|
|
149
|
+
cwd: '{projectRoot}',
|
|
150
|
+
commands: [
|
|
151
|
+
'tofu init -backend=false',
|
|
152
|
+
'tflint --init',
|
|
153
|
+
'tflint',
|
|
154
|
+
'tofu validate',
|
|
155
|
+
],
|
|
156
|
+
parallel: false,
|
|
157
|
+
},
|
|
158
|
+
env: {
|
|
159
|
+
TFLINT_CONFIG_FILE: options.tflintConfigFile,
|
|
160
|
+
},
|
|
161
|
+
metadata: {
|
|
162
|
+
technologies: ['tofu'],
|
|
163
|
+
description: 'Lint OpenTofu code',
|
|
164
|
+
},
|
|
165
|
+
};
|
|
166
|
+
targets['nx-release-publish'] = {
|
|
167
|
+
executor: 'nx:noop',
|
|
168
|
+
cache: false,
|
|
169
|
+
metadata: {
|
|
170
|
+
technologies: ['tofu'],
|
|
171
|
+
description: 'No release publish, Spacelift handles it from the Git tag',
|
|
172
|
+
},
|
|
173
|
+
};
|
|
174
|
+
if (!projectConfiguration?.release?.version
|
|
175
|
+
?.versionActions) {
|
|
176
|
+
release = {
|
|
177
|
+
version: {
|
|
178
|
+
versionActions: '@nx/js/src/release/version-actions',
|
|
179
|
+
},
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
}
|
|
112
183
|
return {
|
|
113
184
|
projects: {
|
|
114
185
|
[projectRoot]: {
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AA8BA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ export declare const ArtifactType: {
|
|
|
2
2
|
readonly DOCKER: "docker";
|
|
3
3
|
readonly LAMBDA: "lambda";
|
|
4
4
|
readonly FRONTEND: "frontend";
|
|
5
|
+
readonly TERRAFORM_MODULE: "terraform module";
|
|
5
6
|
readonly HELM: "helm chart";
|
|
6
7
|
};
|
|
7
8
|
export type ArtifactType = (typeof ArtifactType)[keyof typeof ArtifactType];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/utils/common/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG;IAC1B,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,YAAY;CACV,CAAA"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/utils/common/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG;IAC1B,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,gBAAgB,EAAE,kBAAkB;IACpC,IAAI,EAAE,YAAY;CACV,CAAA"}
|
|
@@ -16,6 +16,10 @@ export declare function getSanitizedCurrentGitRepoUrl(): Promise<string>;
|
|
|
16
16
|
* Get git repository name from remote origin URL
|
|
17
17
|
*/
|
|
18
18
|
export declare function getGitRepositoryName(): Promise<string | undefined>;
|
|
19
|
+
/**
|
|
20
|
+
* Checks if the current branch is a default branch
|
|
21
|
+
*/
|
|
22
|
+
export declare function removeTag(projectName: string, version: string): Promise<void>;
|
|
19
23
|
/**
|
|
20
24
|
* get the default branch of the Git repository
|
|
21
25
|
*/
|
|
@@ -6,6 +6,7 @@ exports.getSanitizedCurrentGitBranch = getSanitizedCurrentGitBranch;
|
|
|
6
6
|
exports.getCurrentGitCommitSha = getCurrentGitCommitSha;
|
|
7
7
|
exports.getSanitizedCurrentGitRepoUrl = getSanitizedCurrentGitRepoUrl;
|
|
8
8
|
exports.getGitRepositoryName = getGitRepositoryName;
|
|
9
|
+
exports.removeTag = removeTag;
|
|
9
10
|
exports.getDefaultBranch = getDefaultBranch;
|
|
10
11
|
exports.isDefaultBranch = isDefaultBranch;
|
|
11
12
|
exports.throwErrorIfNotOnLatestMain = throwErrorIfNotOnLatestMain;
|
|
@@ -64,6 +65,27 @@ async function getGitRepositoryName() {
|
|
|
64
65
|
}
|
|
65
66
|
return undefined;
|
|
66
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Checks if the current branch is a default branch
|
|
70
|
+
*/
|
|
71
|
+
async function removeTag(projectName, version) {
|
|
72
|
+
const findTags = await (0, exec_1.exec)(`git tag -l ${projectName}*${version}`);
|
|
73
|
+
const tagToRemove = findTags.stdout.trim().split('\n')[0];
|
|
74
|
+
if (!tagToRemove) {
|
|
75
|
+
logger_1.consola.error('Failed to get tags:', findTags.stderr);
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
logger_1.consola.info(`Removing tag ${tagToRemove}`);
|
|
80
|
+
const removeTag = await (0, exec_1.exec)(`git push origin :refs/tags/${tagToRemove}`);
|
|
81
|
+
if (removeTag.exitCode != 0) {
|
|
82
|
+
logger_1.consola.error('Failed to remove tag:', removeTag.stderr);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
logger_1.consola.success('Tag removed successfully! Pipeline can be retried.');
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
67
89
|
/**
|
|
68
90
|
* get the default branch of the Git repository
|
|
69
91
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../../../src/utils/common/github.ts"],"names":[],"mappings":";;AAGA,sDAEC;AAED,gDAMC;AAKD,oEAQC;AAKD,wDAGC;AAKD,sEAWC;AAKD,oDASC;AAKD,4CAMC;AAKD,0CAGC;AAMD,kEAsCC;
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../../../src/utils/common/github.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,8 @@ function getProjectArtifactTypes(projectRoot, projectConfiguration) {
|
|
|
48
48
|
!!projectConfiguration?.metadata?.lambdaStacks &&
|
|
49
49
|
projectConfiguration?.metadata?.lambdaStacks.length > 0;
|
|
50
50
|
const isFrontendProject = !!projectConfiguration?.metadata?.frontendArtifactsBucketName;
|
|
51
|
+
const isTfModuleProject = (0, node_fs_1.existsSync)((0, path_1.join)(projectRoot, '.spacelift', 'config.yml')) &&
|
|
52
|
+
(0, node_fs_1.existsSync)((0, path_1.join)(projectRoot, 'main.tf'));
|
|
51
53
|
// Check for Chart.yaml in: custom folder or .deploy folder (default)
|
|
52
54
|
const helmChartFolder = projectConfiguration?.metadata?.helmChartFolder || '.deploy';
|
|
53
55
|
const chartYamlExists = (0, node_fs_1.existsSync)((0, path_1.join)(projectRoot, helmChartFolder, 'Chart.yaml'));
|
|
@@ -59,6 +61,8 @@ function getProjectArtifactTypes(projectRoot, projectConfiguration) {
|
|
|
59
61
|
artifactTypes.push(constants_1.ArtifactType.DOCKER);
|
|
60
62
|
if (isFrontendProject)
|
|
61
63
|
artifactTypes.push(constants_1.ArtifactType.FRONTEND);
|
|
64
|
+
if (isTfModuleProject)
|
|
65
|
+
artifactTypes.push(constants_1.ArtifactType.TERRAFORM_MODULE);
|
|
62
66
|
if (isHelmProject)
|
|
63
67
|
artifactTypes.push(constants_1.ArtifactType.HELM);
|
|
64
68
|
return artifactTypes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nx.js","sourceRoot":"","sources":["../../../../src/utils/common/nx.ts"],"names":[],"mappings":";;AAaA,sCAgCC;AAYD,
|
|
1
|
+
{"version":3,"file":"nx.js","sourceRoot":"","sources":["../../../../src/utils/common/nx.ts"],"names":[],"mappings":"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"}
|