@jakubmazanec/carson-templates 3.2.0-unstable.1f0ba35d → 3.2.0-unstable.2bf2d5ce
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/package.json
CHANGED
|
@@ -12,12 +12,11 @@ strategy: overwrite
|
|
|
12
12
|
|
|
13
13
|
name: Update pull request
|
|
14
14
|
|
|
15
|
-
on: [
|
|
15
|
+
on: [push]
|
|
16
16
|
|
|
17
17
|
jobs:
|
|
18
18
|
update_pull_request:
|
|
19
19
|
name: Update pull request
|
|
20
|
-
if: ${{ (github.actor == 'renovate[bot]' && contains(github.head_ref, 'renovate/')) || event.actor }}
|
|
21
20
|
runs-on: ubuntu-latest
|
|
22
21
|
timeout-minutes: 15
|
|
23
22
|
steps:
|
|
@@ -46,7 +45,7 @@ jobs:
|
|
|
46
45
|
let {promises: fs} = require('node:fs');
|
|
47
46
|
let path = require('node:path');
|
|
48
47
|
|
|
49
|
-
async function
|
|
48
|
+
async function getProjects(files) {
|
|
50
49
|
let names = [];
|
|
51
50
|
|
|
52
51
|
for (let file of files) {
|
|
@@ -58,16 +57,30 @@ jobs:
|
|
|
58
57
|
return names;
|
|
59
58
|
}
|
|
60
59
|
|
|
61
|
-
async function createChangeset(fileName,
|
|
60
|
+
async function createChangeset(fileName, dependencyBumps, projects) {
|
|
62
61
|
let message = '';
|
|
63
62
|
|
|
64
|
-
for (let [
|
|
65
|
-
message = message + `Dependency \`${
|
|
63
|
+
for (let [dependencyName, bump] of dependencyBumps) {
|
|
64
|
+
message = message + `Dependency \`${dependencyName}\` updated to version \`${bump}\`.\n`;
|
|
66
65
|
}
|
|
67
66
|
|
|
68
67
|
message = message.replace('\n', ' ');
|
|
69
68
|
|
|
70
|
-
let header =
|
|
69
|
+
let header = projects.map((projectName) => `'${projectName}': patch`).join('\n');
|
|
70
|
+
|
|
71
|
+
await fs.writeFile(fileName, `---\n${header}\n---\n${message.trim()}\n`);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
async function createChangesetForCarsonTemplates(fileName, dependencyBumps, projects) {
|
|
75
|
+
let message = '';
|
|
76
|
+
|
|
77
|
+
for (let [dependencyName, bump] of dependencyBumps) {
|
|
78
|
+
message = message + `Applies templates from \`${dependencyName}\` updated to version \`${bump}\`.\n`;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
message = message.replace('\n', ' ');
|
|
82
|
+
|
|
83
|
+
let header = projects.map((projectName) => `'${projectName}': patch`).join('\n');
|
|
71
84
|
|
|
72
85
|
await fs.writeFile(fileName, `---\n${header}\n---\n${message.trim()}\n`);
|
|
73
86
|
}
|
|
@@ -92,19 +105,19 @@ jobs:
|
|
|
92
105
|
return bumps;
|
|
93
106
|
}
|
|
94
107
|
|
|
95
|
-
async function
|
|
108
|
+
async function getProjectsUsingCarsonTemplates(dir = process.cwd(), result = []) {
|
|
96
109
|
let entries = await fs.readdir(dir, {withFileTypes: true});
|
|
97
110
|
|
|
98
111
|
for (let entry of entries) {
|
|
99
112
|
let fullPath = path.join(dir, entry.name);
|
|
100
113
|
|
|
101
114
|
if (entry.isDirectory()) {
|
|
102
|
-
if (entry.name === '.carson') {
|
|
115
|
+
if (entry.name === '.carson' && dir !== process.cwd()) {
|
|
103
116
|
let packageJson = JSON.parse(await fs.readFile(path.join(dir, 'package.json'), 'utf8'));
|
|
104
117
|
|
|
105
118
|
result.push(packageJson.name);
|
|
106
119
|
} else {
|
|
107
|
-
await
|
|
120
|
+
await getProjectsUsingCarsonTemplates(fullPath, result);
|
|
108
121
|
}
|
|
109
122
|
}
|
|
110
123
|
}
|
|
@@ -124,18 +137,26 @@ jobs:
|
|
|
124
137
|
let files = diffFiles
|
|
125
138
|
.filter((file) => file !== 'package.json') // skip root package.json
|
|
126
139
|
.filter((file) => file.includes('package.json'));
|
|
127
|
-
let
|
|
140
|
+
let filesWithWorkspace = diffFiles
|
|
141
|
+
.filter((file) => file.includes('package.json'));
|
|
128
142
|
let {stdout: shortHash} = await exec.getExecOutput('git rev-parse --short HEAD');
|
|
129
|
-
let
|
|
130
|
-
let
|
|
143
|
+
let changesetName = `.changeset/renovate-${shortHash.trim()}.md`;
|
|
144
|
+
let projects = await getProjects(files);
|
|
145
|
+
let dependencyBumpsWithWorkspace = await getBumps(filesWithWorkspace);
|
|
131
146
|
|
|
132
147
|
if (
|
|
133
|
-
!
|
|
134
|
-
|
|
135
|
-
|
|
148
|
+
!projects.length &&
|
|
149
|
+
dependencyBumpsWithWorkspace.size === 1 &&
|
|
150
|
+
dependencyBumpsWithWorkspace.has('<%- TEMPLATE_PACKAGE_NAME %>')
|
|
136
151
|
) {
|
|
137
|
-
|
|
138
|
-
|
|
152
|
+
projects = await getProjectsUsingCarsonTemplates();
|
|
153
|
+
|
|
154
|
+
let dependencyBumps = await getBumps(filesWithWorkspace);
|
|
155
|
+
|
|
156
|
+
await createChangesetForCarsonTemplates(changesetName, dependencyBumps, projects);
|
|
157
|
+
|
|
158
|
+
return;
|
|
159
|
+
} else if (!projects.length) {
|
|
139
160
|
console.log('No package.json changes to published packages, skipping...');
|
|
140
161
|
|
|
141
162
|
await exec.exec('npx', ['changeset', '--empty']);
|
|
@@ -143,8 +164,9 @@ jobs:
|
|
|
143
164
|
return;
|
|
144
165
|
}
|
|
145
166
|
|
|
146
|
-
await
|
|
167
|
+
let dependencyBumps = await getBumps(files);
|
|
147
168
|
|
|
169
|
+
await createChangeset(changesetName, dependencyBumps, projects);
|
|
148
170
|
|
|
149
171
|
- name: Update Carson
|
|
150
172
|
run: |
|