Skip to content

Commit 1e1f153

Browse files
committed
rel(0.3.12): repair publish all packages workflow
1 parent 38e74ae commit 1e1f153

23 files changed

Lines changed: 245 additions & 148 deletions

File tree

.github/workflows/_reusable-ci.yml

Lines changed: 34 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ jobs:
4444
- name: Validate tree
4545
uses: ./.github/actions/ci-shell
4646
with:
47-
command: ./scripts/ci/validate.sh
47+
command: bash ./scripts/ci/validate.sh
4848
- name: Upload validation artifacts
4949
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
5050
with:
@@ -114,14 +114,21 @@ jobs:
114114
steps:
115115
- name: Check out repository
116116
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
117-
- name: Validate WebTransport peer probe package
118-
uses: cobycloud/actions/actions/setup-node-project@master
117+
- name: Set up Node
118+
uses: actions/setup-node@v4
119119
with:
120120
node-version: "22"
121-
working-directory: packages/wt-peer-probes
122-
install-command: npm ci --workspaces=false
123-
build-command: npm run build --workspaces=false
124-
test-command: npm test --workspaces=false
121+
cache: npm
122+
cache-dependency-path: packages/wt-peer-probes/package-lock.json
123+
- name: Install WebTransport peer probe dependencies
124+
working-directory: packages/wt-peer-probes
125+
run: npm ci --workspaces=false
126+
- name: Build WebTransport peer probe package
127+
working-directory: packages/wt-peer-probes
128+
run: npm run build --workspaces=false
129+
- name: Test WebTransport peer probe package
130+
working-directory: packages/wt-peer-probes
131+
run: npm test --workspaces=false
125132

126133
validate-wt-peer-probes:
127134
name: validate-wt-peer-probes
@@ -132,12 +139,25 @@ jobs:
132139
steps:
133140
- name: Check out repository
134141
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
135-
- name: Validate browser WebTransport peer API probes
136-
uses: cobycloud/actions/actions/playwright-ci@master
142+
- name: Set up Node
143+
uses: actions/setup-node@v4
137144
with:
138145
node-version: "22"
139-
working-directory: packages/wt-peer-probes
140-
install-command: npm ci --workspaces=false
141-
browser-install-command: npx playwright install --with-deps chromium firefox webkit
142-
test-command: npm run test:peer-api -- --reporter=line
143-
artifact-name: wt-peer-probes-playwright-${{ github.sha }}
146+
cache: npm
147+
cache-dependency-path: packages/wt-peer-probes/package-lock.json
148+
- name: Install WebTransport peer probe dependencies
149+
working-directory: packages/wt-peer-probes
150+
run: npm ci --workspaces=false
151+
- name: Install Playwright browsers
152+
working-directory: packages/wt-peer-probes
153+
run: npx playwright install --with-deps chromium firefox webkit
154+
- name: Validate browser WebTransport peer API probes
155+
working-directory: packages/wt-peer-probes
156+
run: npm run test:peer-api -- --reporter=line
157+
- name: Upload WebTransport peer probe Playwright report
158+
if: always()
159+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
160+
with:
161+
name: wt-peer-probes-playwright-${{ github.sha }}
162+
path: packages/wt-peer-probes/playwright-report/
163+
if-no-files-found: ignore

.github/workflows/publish-all-packages.yml

Lines changed: 69 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
name: publish-all-packages
22

33
on:
4-
push:
5-
tags:
6-
- "v*"
74
release:
85
types: [prereleased, published]
96
workflow_dispatch:
@@ -132,7 +129,7 @@ jobs:
132129
- name: Build certification and release metadata
133130
shell: bash
134131
run: |
135-
./scripts/ci/validate.sh
132+
bash ./scripts/ci/validate.sh
136133
while IFS= read -r package_dir; do
137134
python -m build --outdir dist "$package_dir"
138135
done < .artifacts/python-package-paths.txt
@@ -196,7 +193,7 @@ jobs:
196193
publish-python-testpypi:
197194
name: python-testpypi-publish
198195
needs: python-dist
199-
if: ${{ github.event_name != 'workflow_dispatch' || (inputs.pypi_publish && inputs.package_selection != 'probes' && inputs.package_selection != 'wt-peer-probes') }}
196+
if: ${{ github.event_name == 'release' && github.event.release.prerelease && (github.event_name != 'workflow_dispatch' || (inputs.pypi_publish && inputs.package_selection != 'probes' && inputs.package_selection != 'wt-peer-probes')) }}
200197
runs-on: ubuntu-latest
201198
environment: testpypi
202199
permissions:
@@ -209,7 +206,7 @@ jobs:
209206
name: python-dist-${{ github.sha }}
210207
path: dist
211208
- name: Publish Python distributions to TestPyPI
212-
if: github.event_name != 'release' || github.event.release.prerelease || github.event.action == 'published'
209+
if: github.event_name == 'release' && github.event.release.prerelease
213210
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b
214211
with:
215212
repository-url: https://test.pypi.org/legacy/
@@ -219,7 +216,7 @@ jobs:
219216

220217
publish-python-pypi:
221218
name: python-pypi-publish
222-
needs: publish-python-testpypi
219+
needs: python-dist
223220
if: ${{ (github.event_name != 'workflow_dispatch' || (inputs.pypi_publish && inputs.package_selection != 'probes' && inputs.package_selection != 'wt-peer-probes')) && (github.event_name != 'release' || github.event.release.prerelease == false) }}
224221
runs-on: ubuntu-latest
225222
environment: pypi
@@ -233,7 +230,7 @@ jobs:
233230
name: python-dist-${{ github.sha }}
234231
path: dist
235232
- name: Publish Python distributions to PyPI
236-
if: github.event_name == 'release' && github.event.action == 'published' && github.event.release.prerelease == false
233+
if: github.event_name == 'workflow_dispatch' || (github.event_name == 'release' && github.event.action == 'published' && github.event.release.prerelease == false)
237234
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b
238235
with:
239236
packages-dir: dist
@@ -250,14 +247,21 @@ jobs:
250247
steps:
251248
- name: Check out repository
252249
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
253-
- name: Validate WebTransport peer probe package
254-
uses: cobycloud/actions/actions/setup-node-project@master
250+
- name: Set up Node
251+
uses: actions/setup-node@v4
255252
with:
256253
node-version: "22"
257-
working-directory: packages/wt-peer-probes
258-
install-command: npm ci --workspaces=false
259-
build-command: npm run build --workspaces=false
260-
test-command: npm test --workspaces=false
254+
cache: npm
255+
cache-dependency-path: packages/wt-peer-probes/package-lock.json
256+
- name: Install WebTransport peer probe dependencies
257+
working-directory: packages/wt-peer-probes
258+
run: npm ci --workspaces=false
259+
- name: Build WebTransport peer probe package
260+
working-directory: packages/wt-peer-probes
261+
run: npm run build --workspaces=false
262+
- name: Test WebTransport peer probe package
263+
working-directory: packages/wt-peer-probes
264+
run: npm test --workspaces=false
261265
- name: Pack WebTransport peer probe package
262266
working-directory: packages/wt-peer-probes
263267
run: npm pack
@@ -277,15 +281,28 @@ jobs:
277281
steps:
278282
- name: Check out repository
279283
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
280-
- name: Validate browser WebTransport peer API probes
281-
uses: cobycloud/actions/actions/playwright-ci@master
284+
- name: Set up Node
285+
uses: actions/setup-node@v4
282286
with:
283287
node-version: "22"
284-
working-directory: packages/wt-peer-probes
285-
install-command: npm ci --workspaces=false
286-
browser-install-command: npx playwright install --with-deps chromium firefox webkit
287-
test-command: npm run test:peer-api -- --reporter=line
288-
artifact-name: wt-peer-probes-playwright-${{ github.sha }}
288+
cache: npm
289+
cache-dependency-path: packages/wt-peer-probes/package-lock.json
290+
- name: Install WebTransport peer probe dependencies
291+
working-directory: packages/wt-peer-probes
292+
run: npm ci --workspaces=false
293+
- name: Install Playwright browsers
294+
working-directory: packages/wt-peer-probes
295+
run: npx playwright install --with-deps chromium firefox webkit
296+
- name: Validate browser WebTransport peer API probes
297+
working-directory: packages/wt-peer-probes
298+
run: npm run test:peer-api -- --reporter=line
299+
- name: Upload WebTransport peer probe Playwright report
300+
if: always()
301+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
302+
with:
303+
name: wt-peer-probes-playwright-${{ github.sha }}
304+
path: packages/wt-peer-probes/playwright-report/
305+
if-no-files-found: ignore
289306

290307
publish-wt-peer-probes-github-release:
291308
name: wt-peer-probes-github-release
@@ -304,16 +321,15 @@ jobs:
304321
name: wt-peer-probes-${{ github.sha }}
305322
path: .artifacts/wt-peer-probes
306323
- name: Create or update GitHub release with probe package
307-
uses: cobycloud/actions/actions/github-release@master
324+
uses: softprops/action-gh-release@153bb8e04406b158c6c84fc1615b65b24149a1fe
308325
with:
309-
tag-name: ${{ github.ref_name }}
326+
tag_name: ${{ github.ref_name }}
310327
name: ${{ github.ref_name }}
311-
body-path: RELEASE_NOTES_0.3.11.md
328+
body_path: RELEASE_NOTES_0.3.12.md
312329
files: .artifacts/wt-peer-probes/*.tgz
313-
draft: "false"
330+
draft: false
314331
prerelease: ${{ github.event_name == 'release' && github.event.release.prerelease }}
315-
make-latest: legacy
316-
token: ${{ github.token }}
332+
make_latest: legacy
317333

318334
publish-wt-peer-probes-npmjs:
319335
name: wt-peer-probes-npmjs-publish
@@ -327,19 +343,34 @@ jobs:
327343
steps:
328344
- name: Check out repository
329345
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
330-
- name: Publish WebTransport peer probe package
331-
uses: cobycloud/actions/actions/npm-publish@master
346+
- name: Set up Node
347+
uses: actions/setup-node@v4
332348
with:
333349
node-version: "22"
334-
package-directory: packages/wt-peer-probes
335-
scope: "@tigrcorn"
336-
npm-token: ${{ secrets.NPM_API_TOKEN }}
337-
install-command: npm ci --workspaces=false
338-
build-command: npm run build --workspaces=false
339-
test-command: npm test --workspaces=false
340-
access: public
341-
provenance: "true"
342-
dry-run: ${{ github.event_name == 'workflow_dispatch' && inputs.dry_run }}
350+
registry-url: https://registry.npmjs.org
351+
cache: npm
352+
cache-dependency-path: packages/wt-peer-probes/package-lock.json
353+
- name: Install WebTransport peer probe dependencies
354+
working-directory: packages/wt-peer-probes
355+
run: npm ci --workspaces=false
356+
- name: Build WebTransport peer probe package
357+
working-directory: packages/wt-peer-probes
358+
run: npm run build --workspaces=false
359+
- name: Test WebTransport peer probe package
360+
working-directory: packages/wt-peer-probes
361+
run: npm test --workspaces=false
362+
- name: Publish WebTransport peer probe package to npm dry run
363+
if: ${{ github.event_name == 'workflow_dispatch' && inputs.dry_run }}
364+
working-directory: packages/wt-peer-probes
365+
env:
366+
NODE_AUTH_TOKEN: ${{ secrets.NPM_API_TOKEN }}
367+
run: npm publish --access public --provenance --dry-run
368+
- name: Publish WebTransport peer probe package to npm
369+
if: ${{ github.event_name != 'workflow_dispatch' || !inputs.dry_run }}
370+
working-directory: packages/wt-peer-probes
371+
env:
372+
NODE_AUTH_TOKEN: ${{ secrets.NPM_API_TOKEN }}
373+
run: npm publish --access public --provenance
343374

344375
publish-python-github-release:
345376
name: python-github-release

RELEASE_NOTES_0.3.12.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Release notes - tigrcorn 0.3.12
2+
3+
`tigrcorn` `0.3.12` is a patch release for the consolidated all-package publication lane.
4+
5+
## What changed
6+
7+
- removes the publish workflow dependency on inaccessible external `cobycloud/actions` reusable actions
8+
- runs release validation through `bash ./scripts/ci/validate.sh` so executable bits do not block Linux runners
9+
- keeps the manual workflow-dispatch surface for GitHub Release, PyPI, npmjs, and package selection
10+
- bumps the Tigrcorn Python distributions to `0.3.12`
11+
- bumps `@tigrcorn/wt-peer-probes` to `0.1.3`
12+
13+
## Publication target
14+
15+
This patch release is intended to publish all Tigrcorn Python distributions and all probe packages through the consolidated workflow with:
16+
17+
- GitHub Release enabled
18+
- PyPI publication enabled
19+
- npmjs publication enabled
20+
- package selection set to `all`

packages/wt-peer-probes/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/wt-peer-probes/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@tigrcorn/wt-peer-probes",
3-
"version": "0.1.2",
3+
"version": "0.1.3",
44
"private": false,
55
"type": "module",
66
"description": "Browser peer probes for validating tigrcorn WebTransport support across Chromium, Firefox, WebKit/Safari, and mobile peers.",

pkgs/tigrcorn-asgi/pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "tigrcorn-asgi"
7-
version = "0.3.11"
7+
version = "0.3.12"
88
description = "ASGI3 scope, event, receive/send, and extension primitives for the Tigrcorn Python web server."
99
readme = "README.md"
1010
requires-python = ">=3.11"
@@ -26,7 +26,7 @@ classifiers = [
2626
"Topic :: Software Development :: Libraries :: Python Modules",
2727
"Typing :: Typed",
2828
]
29-
dependencies = ["tigrcorn-core==0.3.11"]
29+
dependencies = ["tigrcorn-core==0.3.12"]
3030

3131
[tool.setuptools]
3232
package-dir = {"" = "src"}

pkgs/tigrcorn-certification/pyproject.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "tigrcorn-certification"
7-
version = "0.3.11"
7+
version = "0.3.12"
88
description = "Certification and release-gate tooling for Tigrcorn HTTP/3, QUIC, WebSocket, WebTransport, and ASGI conformance evidence."
99
readme = "README.md"
1010
requires-python = ">=3.11"
@@ -28,8 +28,8 @@ classifiers = [
2828
"Typing :: Typed",
2929
]
3030
dependencies = [
31-
"tigrcorn-compat==0.3.11",
32-
"tigrcorn-runtime==0.3.11",
31+
"tigrcorn-compat==0.3.12",
32+
"tigrcorn-runtime==0.3.12",
3333
"cryptography>=46.0.0",
3434
"aioquic>=1.3.0",
3535
"h2>=4.1.0",

pkgs/tigrcorn-compat/pyproject.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "tigrcorn-compat"
7-
version = "0.3.11"
7+
version = "0.3.12"
88
description = "Compatibility and interoperability helpers for Tigrcorn ASGI3 conformance, external peers, and Python web server release gates."
99
readme = "README.md"
1010
requires-python = ">=3.11"
@@ -27,9 +27,9 @@ classifiers = [
2727
"Typing :: Typed",
2828
]
2929
dependencies = [
30-
"tigrcorn-core==0.3.11",
31-
"tigrcorn-asgi==0.3.11",
32-
"tigrcorn-runtime==0.3.11",
30+
"tigrcorn-core==0.3.12",
31+
"tigrcorn-asgi==0.3.12",
32+
"tigrcorn-runtime==0.3.12",
3333
]
3434

3535
[tool.setuptools]

pkgs/tigrcorn-config/pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "tigrcorn-config"
7-
version = "0.3.11"
7+
version = "0.3.12"
88
description = "Typed configuration models, profiles, environment loading, and validation for the Tigrcorn ASGI/HTTP server stack."
99
readme = "README.md"
1010
requires-python = ">=3.11"
@@ -26,7 +26,7 @@ classifiers = [
2626
"Topic :: Software Development :: Libraries :: Python Modules",
2727
"Typing :: Typed",
2828
]
29-
dependencies = ["tigrcorn-core==0.3.11"]
29+
dependencies = ["tigrcorn-core==0.3.12"]
3030

3131
[project.optional-dependencies]
3232
yaml = ["PyYAML>=6.0"]

pkgs/tigrcorn-contract/pyproject.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "tigrcorn-contract"
7-
version = "0.3.11"
7+
version = "0.3.12"
88
description = "tigr-asgi-contract adapters and runtime-boundary classification for Tigrcorn ASGI3, WebSocket, and WebTransport surfaces."
99
readme = "README.md"
1010
requires-python = ">=3.11"
@@ -27,8 +27,8 @@ classifiers = [
2727
"Typing :: Typed",
2828
]
2929
dependencies = [
30-
"tigrcorn-core==0.3.11",
31-
"tigrcorn-asgi==0.3.11",
30+
"tigrcorn-core==0.3.12",
31+
"tigrcorn-asgi==0.3.12",
3232
"tigr-asgi-contract>=0.3.2",
3333
]
3434

0 commit comments

Comments
 (0)