Skip to content

Commit 842110d

Browse files
jean-smaugMaxime BlancJounQin
authored
refactor: publish releases with limited concurrency (#206)
Co-authored-by: Maxime Blanc <maxime.blanc@oris-connect.com> Co-authored-by: JounQin <admin@1stg.me>
1 parent 3df541d commit 842110d

File tree

4 files changed

+26
-5
lines changed

4 files changed

+26
-5
lines changed

.changeset/ten-eagles-sing.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"changesets-gitlab": minor
3+
---
4+
5+
refactor: publish releases with limited concurrency with [`p-limit`](https://github.com/sindresorhus/p-limit)

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@
8585
"eslint": "^9.23.0",
8686
"lint-staged": "^15.5.0",
8787
"npm-run-all2": "^7.0.2",
88+
"p-limit": "^6.2.0",
8889
"prettier": "^3.5.3",
8990
"simple-git-hooks": "^2.12.1",
9091
"size-limit": "^11.2.0",

src/run.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { exec } from '@actions/exec'
55
import type { Gitlab } from '@gitbeaker/core'
66
import type { Package } from '@manypkg/get-packages'
77
import { getPackages } from '@manypkg/get-packages'
8+
import pLimit from 'p-limit'
89
import resolveFrom from 'resolve-from'
910
import semver from 'semver'
1011

@@ -23,6 +24,8 @@ import {
2324
sortTheThings,
2425
} from './utils.js'
2526

27+
const limit = pLimit(2 * 3)
28+
2629
export const createRelease = async (
2730
api: Gitlab,
2831
{ pkg, tagName }: { pkg: Package; tagName: string },
@@ -157,10 +160,12 @@ export async function runPublish({
157160
if (createGitlabReleases) {
158161
await Promise.all(
159162
releasedPackages.map(pkg =>
160-
createRelease(api, {
161-
pkg,
162-
tagName: `${pkg.packageJson.name}@${pkg.packageJson.version}`,
163-
}),
163+
limit(() =>
164+
createRelease(api, {
165+
pkg,
166+
tagName: `${pkg.packageJson.name}@${pkg.packageJson.version}`,
167+
}),
168+
),
164169
),
165170
)
166171
}

yarn.lock

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5520,6 +5520,7 @@ __metadata:
55205520
mdast-util-to-string: "npm:^4.0.0"
55215521
micromatch: "npm:^4.0.8"
55225522
npm-run-all2: "npm:^7.0.2"
5523+
p-limit: "npm:^6.2.0"
55235524
prettier: "npm:^3.5.3"
55245525
remark-parse: "npm:^11.0.0"
55255526
remark-stringify: "npm:^11.0.0"
@@ -11134,6 +11135,15 @@ __metadata:
1113411135
languageName: node
1113511136
linkType: hard
1113611137

11138+
"p-limit@npm:^6.2.0":
11139+
version: 6.2.0
11140+
resolution: "p-limit@npm:6.2.0"
11141+
dependencies:
11142+
yocto-queue: "npm:^1.1.1"
11143+
checksum: 10c0/448bf55a1776ca1444594d53b3c731e68cdca00d44a6c8df06a2f6e506d5bbd540ebb57b05280f8c8bff992a630ed782a69612473f769a7473495d19e2270166
11144+
languageName: node
11145+
linkType: hard
11146+
1113711147
"p-locate@npm:^4.1.0":
1113811148
version: 4.1.0
1113911149
resolution: "p-locate@npm:4.1.0"
@@ -15095,7 +15105,7 @@ __metadata:
1509515105
languageName: node
1509615106
linkType: hard
1509715107

15098-
"yocto-queue@npm:^1.0.0":
15108+
"yocto-queue@npm:^1.0.0, yocto-queue@npm:^1.1.1":
1509915109
version: 1.2.1
1510015110
resolution: "yocto-queue@npm:1.2.1"
1510115111
checksum: 10c0/5762caa3d0b421f4bdb7a1926b2ae2189fc6e4a14469258f183600028eb16db3e9e0306f46e8ebf5a52ff4b81a881f22637afefbef5399d6ad440824e9b27f9f

0 commit comments

Comments
 (0)