@jakubmazanec/carson-templates 3.1.3 → 3.2.0-unstable.b3cceb17
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,14 +12,12 @@ strategy: overwrite
|
|
|
12
12
|
|
|
13
13
|
name: Update pull request
|
|
14
14
|
|
|
15
|
-
on:
|
|
16
|
-
pull_request_target:
|
|
17
|
-
branches: [development]
|
|
15
|
+
on: [workflow_dispatch]
|
|
18
16
|
|
|
19
17
|
jobs:
|
|
20
18
|
update_pull_request:
|
|
21
19
|
name: Update pull request
|
|
22
|
-
if: ${{ github.actor == 'renovate[bot]' && contains(github.head_ref, 'renovate/') }}
|
|
20
|
+
if: ${{ (github.actor == 'renovate[bot]' && contains(github.head_ref, 'renovate/')) || event.actor }}
|
|
23
21
|
runs-on: ubuntu-latest
|
|
24
22
|
timeout-minutes: 15
|
|
25
23
|
steps:
|
|
@@ -45,7 +43,8 @@ jobs:
|
|
|
45
43
|
uses: actions/github-script@v6
|
|
46
44
|
with:
|
|
47
45
|
script: |
|
|
48
|
-
let {
|
|
46
|
+
let {promises: fs} = require('node:fs');
|
|
47
|
+
let path = require('node:path');
|
|
49
48
|
|
|
50
49
|
async function getPackagesNames(files) {
|
|
51
50
|
let names = [];
|
|
@@ -63,15 +62,12 @@ jobs:
|
|
|
63
62
|
let message = '';
|
|
64
63
|
|
|
65
64
|
for (let [packageName, bump] of packageBumps) {
|
|
66
|
-
message =
|
|
67
|
-
message + `Dependency \`${packageName}\` updated to version \`${bump}\`.\n`;
|
|
65
|
+
message = message + `Dependency \`${packageName}\` updated to version \`${bump}\`.\n`;
|
|
68
66
|
}
|
|
69
67
|
|
|
70
68
|
message = message.replace('\n', ' ');
|
|
71
69
|
|
|
72
|
-
let header = packages
|
|
73
|
-
.map((packageName) => `'${packageName}': patch`)
|
|
74
|
-
.join('\n');
|
|
70
|
+
let header = packages.map((packageName) => `'${packageName}': patch`).join('\n');
|
|
75
71
|
|
|
76
72
|
await fs.writeFile(fileName, `---\n${header}\n---\n${message.trim()}\n`);
|
|
77
73
|
}
|
|
@@ -80,7 +76,7 @@ jobs:
|
|
|
80
76
|
let bumps = new Map();
|
|
81
77
|
|
|
82
78
|
for (let file of files) {
|
|
83
|
-
let {
|
|
79
|
+
let {stdout: changes} = await exec.getExecOutput('git', ['show', file]);
|
|
84
80
|
|
|
85
81
|
for (let change of changes.split('\n')) {
|
|
86
82
|
if (!change.startsWith('+ ')) {
|
|
@@ -96,6 +92,26 @@ jobs:
|
|
|
96
92
|
return bumps;
|
|
97
93
|
}
|
|
98
94
|
|
|
95
|
+
async function getPackageUsingCarsonNames(dir = process.cwd(), result = []) {
|
|
96
|
+
let entries = await fs.readdir(dir, {withFileTypes: true});
|
|
97
|
+
|
|
98
|
+
for (let entry of entries) {
|
|
99
|
+
let fullPath = path.join(dir, entry.name);
|
|
100
|
+
|
|
101
|
+
if (entry.isDirectory()) {
|
|
102
|
+
if (entry.name === '.carson') {
|
|
103
|
+
let packageJson = JSON.parse(await fs.readFile(path.join(dir, 'package.json'), 'utf8'));
|
|
104
|
+
|
|
105
|
+
result.push(packageJson.name);
|
|
106
|
+
} else {
|
|
107
|
+
await getPackageUsingCarsonNames(fullPath, result);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return result;
|
|
113
|
+
}
|
|
114
|
+
|
|
99
115
|
let diffOutput = await exec.getExecOutput('git diff --name-only HEAD~1');
|
|
100
116
|
let diffFiles = diffOutput.stdout.split('\n');
|
|
101
117
|
|
|
@@ -109,8 +125,17 @@ jobs:
|
|
|
109
125
|
.filter((file) => file !== 'package.json') // skip root package.json
|
|
110
126
|
.filter((file) => file.includes('package.json'));
|
|
111
127
|
let packageNames = await getPackagesNames(files);
|
|
128
|
+
let {stdout: shortHash} = await exec.getExecOutput('git rev-parse --short HEAD');
|
|
129
|
+
let fileName = `.changeset/renovate-${shortHash.trim()}.md`;
|
|
130
|
+
let packageBumps = await getBumps(files);
|
|
112
131
|
|
|
113
|
-
if (
|
|
132
|
+
if (
|
|
133
|
+
!packageNames.length &&
|
|
134
|
+
packageBumps.size === 1 &&
|
|
135
|
+
packageBumps.has('<%- TEMPLATE_PACKAGE_NAME %>')
|
|
136
|
+
) {
|
|
137
|
+
packageNames = await getPackageUsingCarsonNames();
|
|
138
|
+
} else if (!packageNames.length) {
|
|
114
139
|
console.log('No package.json changes to published packages, skipping...');
|
|
115
140
|
|
|
116
141
|
await exec.exec('npx', ['changeset', '--empty']);
|
|
@@ -118,14 +143,9 @@ jobs:
|
|
|
118
143
|
return;
|
|
119
144
|
}
|
|
120
145
|
|
|
121
|
-
let { stdout: shortHash } = await exec.getExecOutput(
|
|
122
|
-
'git rev-parse --short HEAD',
|
|
123
|
-
);
|
|
124
|
-
let fileName = `.changeset/renovate-${shortHash.trim()}.md`;
|
|
125
|
-
let packageBumps = await getBumps(files);
|
|
126
|
-
|
|
127
146
|
await createChangeset(fileName, packageBumps, packageNames);
|
|
128
147
|
|
|
148
|
+
|
|
129
149
|
- name: Update Carson
|
|
130
150
|
run: |
|
|
131
151
|
npm install
|