@7n/rules 1.49.7 → 1.49.8
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/CHANGELOG.md +6 -0
- package/package.json +1 -1
- package/rules/release/release.mjs +14 -1
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* у CI на `main` (n-rules-release-design, варіант A). Сам нічого не публікує.
|
|
5
5
|
*/
|
|
6
6
|
import { existsSync } from 'node:fs'
|
|
7
|
-
import { readFile, rm, writeFile } from 'node:fs/promises'
|
|
7
|
+
import { appendFile, readFile, rm, writeFile } from 'node:fs/promises'
|
|
8
8
|
import { join } from 'node:path'
|
|
9
9
|
import { env } from 'node:process'
|
|
10
10
|
|
|
@@ -225,6 +225,18 @@ export async function release(opts = {}) {
|
|
|
225
225
|
return released
|
|
226
226
|
}
|
|
227
227
|
|
|
228
|
+
/**
|
|
229
|
+
* Передає GitHub Actions перелік workspace-ів, для яких release справді створив
|
|
230
|
+
* нову версію. Publish-кроки використовують його замість broad path-filter-а,
|
|
231
|
+
* щоб не викликати npm publish для пакетів без нового релізу.
|
|
232
|
+
* @param {Array<{ ws: string }>} released фактично випущені workspaces
|
|
233
|
+
* @returns {Promise<void>} завершення запису або no-op поза GitHub Actions
|
|
234
|
+
*/
|
|
235
|
+
async function writeReleasedWorkspacesOutput(released) {
|
|
236
|
+
if (!env.GITHUB_OUTPUT) return
|
|
237
|
+
await appendFile(env.GITHUB_OUTPUT, `workspaces=${JSON.stringify(released.map(({ ws }) => ws))}\n`)
|
|
238
|
+
}
|
|
239
|
+
|
|
228
240
|
/**
|
|
229
241
|
* @param {string[]} _args аргументи CLI (наразі без опцій)
|
|
230
242
|
* @param {import('./release.mjs').ReleaseOpts} [opts] опції для тестів (cwd, date, runGit, push)
|
|
@@ -237,6 +249,7 @@ export async function runReleaseCli(_args, opts = {}) {
|
|
|
237
249
|
// через `env:` на кроці — поле, якого немає в канонічному сніпеті, тож subset-перевірка не ламається.
|
|
238
250
|
const push = opts.push ?? (env.N_RULES_RELEASE_PUSH ?? env.N_CURSOR_RELEASE_PUSH) !== '0'
|
|
239
251
|
const released = await release({ ...opts, push })
|
|
252
|
+
await writeReleasedWorkspacesOutput(released)
|
|
240
253
|
if (released.length === 0) {
|
|
241
254
|
console.log('release: немає змін для релізу')
|
|
242
255
|
} else {
|