apify-test-tools 0.9.1-beta.8 → 0.9.1-beta.9

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.
@@ -26,7 +26,7 @@ outputs:
26
26
 
27
27
  # Sets common steps and ensure we use cached node_modules
28
28
  # To test a change here, repoint the `uses:` refs in the reusable workflows at your branch, and
29
- # change them back before merging. Merging to master no longer ships it: consumers track the `v0`
29
+ # change them back before merging. Merging to master no longer ships it: consumers track the `workflows-v0`
30
30
  # tag, which only moves once the package version in .github/workflows-package-version is on npm.
31
31
  runs:
32
32
  using: 'composite'
@@ -36,7 +36,7 @@ const walk = (rel) => {
36
36
 
37
37
  const problems = [];
38
38
 
39
- // Self-references, e.g. `uses: apify/apify-test-tools/.github/workflows/public_pr-build-test.yaml@v0`.
39
+ // Self-references, e.g. `uses: apify/apify-test-tools/.github/workflows/public_pr-build-test.yaml@workflows-v0`.
40
40
  // The ref charset stops at a backtick or quote so a ref quoted in prose isn't captured with its
41
41
  // punctuation; git refnames cannot end in a dot, so a sentence-final one is trimmed.
42
42
  const SELF_REF = /apify\/apify-test-tools\/\.github\/\S*?@([A-Za-z0-9._/-]+)/g;
@@ -32,16 +32,24 @@ jobs:
32
32
  contents: write
33
33
  env:
34
34
  # The major version consumers pin, e.g.
35
- # `uses: apify/apify-test-tools/.github/workflows/public_pr-build-test.yaml@v0`.
35
+ # `uses: apify/apify-test-tools/.github/workflows/public_pr-build-test.yaml@workflows-v0`.
36
36
  # Bump this only for a breaking change to a workflow's inputs, secrets or behaviour.
37
37
  # The previous tag then stops moving and keeps working, so repos migrate when they get
38
38
  # to it instead of all at once.
39
39
  #
40
40
  # This tracks the workflows' own contract, not the npm package version — the two move
41
- # independently by design, so `v0` here is expected to outlive the package reaching 1.0.
41
+ # independently by design, so this is expected to outlive the package reaching 1.0.
42
+ #
43
+ # Deliberately not a bare `v0`. The package releases as `v0.9.0`, `v0.8.6` and so on, and
44
+ # a bare major tag sits in that same namespace: git-cliff hard-errors on it
45
+ # ("unexpected character 'v' while parsing major version number") and only skips it
46
+ # because apify/actions ships `tag_pattern = "v[0-9]+\\."`, whose trailing dot excludes
47
+ # it. Depending on a regex in another repo to keep releases working is not a dependency
48
+ # worth having, and `v1` beside a package `v1.0.0` would be worse still.
49
+ #
42
50
  # `uses:` cannot take an expression, so every ref into this repo hardcodes this same tag;
43
51
  # check-major-tag-refs.mjs fails the build if one of them drifts.
44
- MAJOR_TAG: v0
52
+ MAJOR_TAG: workflows-v0
45
53
  steps:
46
54
  - name: Checkout repository
47
55
  uses: actions/checkout@v6
@@ -20,7 +20,7 @@ name: 'Platform tests: Claude failure investigation and fix'
20
20
  #
21
21
  # jobs:
22
22
  # platformTestsCore:
23
- # uses: apify/apify-test-tools/.github/workflows/public_platform-tests.yaml@v0
23
+ # uses: apify/apify-test-tools/.github/workflows/public_platform-tests.yaml@workflows-v0
24
24
  # with:
25
25
  # subtest: core
26
26
  # secrets: inherit
@@ -28,7 +28,7 @@ name: 'Platform tests: Claude failure investigation and fix'
28
28
  # handle-failure:
29
29
  # needs: platformTestsCore
30
30
  # if: ${{ failure() }}
31
- # uses: apify/apify-test-tools/.github/workflows/public_platform-tests-claude-investigate-and-fix.yaml@v0
31
+ # uses: apify/apify-test-tools/.github/workflows/public_platform-tests-claude-investigate-and-fix.yaml@workflows-v0
32
32
  # secrets: inherit
33
33
 
34
34
  on:
@@ -37,7 +37,7 @@ jobs:
37
37
  steps:
38
38
  - name: Setup repository and dependencies
39
39
  # For testing, you have to temporarily change the branch
40
- uses: apify/apify-test-tools/.github/actions/checkout-restore-dependencies@v0
40
+ uses: apify/apify-test-tools/.github/actions/checkout-restore-dependencies@workflows-v0
41
41
  with:
42
42
  working-directory: ${{ inputs.working-directory }}
43
43
  additional-working-directory: ${{ inputs.additional-working-directory }}
@@ -35,7 +35,7 @@ jobs:
35
35
  - name: Setup repository and dependencies
36
36
  id: setup
37
37
  # For testing, you have to temporarily change the branch
38
- uses: apify/apify-test-tools/.github/actions/checkout-restore-dependencies@v0
38
+ uses: apify/apify-test-tools/.github/actions/checkout-restore-dependencies@workflows-v0
39
39
  with:
40
40
  working-directory: ${{ inputs.working-directory }}
41
41
  additional-working-directory: ${{ inputs.additional-working-directory }}
@@ -142,7 +142,7 @@ jobs:
142
142
  steps:
143
143
  - name: Setup repository and dependencies
144
144
  # For testing, you have to temporarily change the branch
145
- uses: apify/apify-test-tools/.github/actions/checkout-restore-dependencies@v0
145
+ uses: apify/apify-test-tools/.github/actions/checkout-restore-dependencies@workflows-v0
146
146
  with:
147
147
  working-directory: ${{ inputs.working-directory }}
148
148
  additional-working-directory: ${{ inputs.additional-working-directory }}
@@ -32,7 +32,7 @@ jobs:
32
32
  - name: Setup repository and dependencies
33
33
  id: setup
34
34
  # For testing, you have to temporarily change the branch
35
- uses: apify/apify-test-tools/.github/actions/checkout-restore-dependencies@v0
35
+ uses: apify/apify-test-tools/.github/actions/checkout-restore-dependencies@workflows-v0
36
36
  with:
37
37
  working-directory: ${{ inputs.working-directory }}
38
38
  additional-working-directory: ${{ inputs.additional-working-directory }}
@@ -14,7 +14,7 @@ on:
14
14
  description: Label added after a successful review and never removed. Set to an empty string to disable.
15
15
  required: false
16
16
  prompt-ref:
17
- default: v0
17
+ default: workflows-v0
18
18
  type: string
19
19
  description: >-
20
20
  Ref of this repository to fetch the review instructions from. Defaults to the
package/CHANGELOG.md CHANGED
@@ -14,6 +14,10 @@ All notable changes to this project will be documented in this file.
14
14
 
15
15
  - Apply default actor timeout to runs ([#134](https://github.com/apify/apify-test-tools/pull/134)) ([82f5f7d](https://github.com/apify/apify-test-tools/commit/82f5f7d4de990db7ad8edf940c19ffd6b20bad13)) by [@Patai5](https://github.com/Patai5)
16
16
 
17
+ ### 🚜 Refactor
18
+
19
+ - **workflows:** [**breaking**] Rename the floating tag to workflows-v0 ([#146](https://github.com/apify/apify-test-tools/pull/146)) ([c48fb22](https://github.com/apify/apify-test-tools/commit/c48fb223c885c4e5de7e5f64d8c14f6d03fcc7de)) by [@metalwarrior665](https://github.com/metalwarrior665)
20
+
17
21
 
18
22
  <!-- git-cliff-unreleased-end -->
19
23
  ## [0.9.0](https://github.com/apify/apify-test-tools/releases/tag/v0.9.0) (2026-08-11)
package/CONTRIBUTING.md CHANGED
@@ -71,14 +71,20 @@ this repo's own triggers.
71
71
  A `public_` filename is part of the contract — it is baked into every consumer's `uses:` line, so
72
72
  renaming one is a breaking change that needs a major tag bump, not a tidy-up.
73
73
 
74
- Consumers pin `@v0`, not `@master`. See
74
+ The tag is not semver, so `git-cliff` would abort on it. It is skipped only because
75
+ `apify/actions`' cliff.toml sets `tag_pattern = "v[0-9]+\."` — a release failing with
76
+ `Semver error: unexpected character` means that pattern changed, not that anything here is wrong.
77
+ The action's "Nothing to release" guard resolves to this tag and no longer fires, so an empty stable
78
+ release fails at `npm publish` instead of erroring cleanly.
79
+
80
+ Consumers pin `@workflows-v0`, not `@master`. See
75
81
  [Versioning and releases](./README.md#versioning-and-releases) in the README for how the tag and the
76
82
  npm release relate — the short version:
77
83
 
78
84
  - changing only a workflow needs no npm release
79
85
  - changing only the package needs no workflow change
80
86
  - a workflow that calls a **new** CLI feature must set `.github/workflows-package-version` to the
81
- version that will contain it, in the same PR. The `v0` tag is then held until that version is on
87
+ version that will contain it, in the same PR. The `workflows-v0` tag is then held until that version is on
82
88
  npm, so merging can't ship a workflow that calls a CLI that doesn't exist yet.
83
89
 
84
90
  `.github/workflows-package-version` holds one exact version, and the stable release writes it. The
@@ -99,5 +105,5 @@ pushing workflow changes.
99
105
 
100
106
  `public_review` is the odd one out: it fetches `.github/review-prompt.md` over HTTP at run time, because a
101
107
  reusable workflow runs with the caller's repo checked out and never gets its own. Its `prompt-ref`
102
- input defaults to `v0` so the instructions come from the same release as the workflow — leaving it
108
+ input defaults to `workflows-v0` so the instructions come from the same release as the workflow — leaving it
103
109
  at `master` would run released workflows against unreleased instructions.
package/README.md CHANGED
@@ -101,7 +101,7 @@ See the [GitHub workflows](#github-worklows) section below.
101
101
 
102
102
  The reusable workflows live in this repo, alongside the package they call. They are the
103
103
  `public_`-prefixed files in `.github/workflows`; everything else there is this repo's own CI.
104
- Reference them at the `@v0` major tag, never at `@master` — see
104
+ Reference them at the `@workflows-v0` major tag, never at `@master` — see
105
105
  [Versioning and releases](#versioning-and-releases).
106
106
 
107
107
  There should be 4 GH workflow files in `.github/workflows`, plus an optional fifth for Claude reviews.
@@ -119,7 +119,7 @@ on:
119
119
 
120
120
  jobs:
121
121
  platformTestsCore:
122
- uses: apify/apify-test-tools/.github/workflows/public_platform-tests.yaml@v0
122
+ uses: apify/apify-test-tools/.github/workflows/public_platform-tests.yaml@workflows-v0
123
123
  with:
124
124
  subtest: core
125
125
  secrets: inherit
@@ -138,7 +138,7 @@ on:
138
138
 
139
139
  jobs:
140
140
  platformTestsDaily:
141
- uses: apify/apify-test-tools/.github/workflows/public_platform-tests.yaml@v0
141
+ uses: apify/apify-test-tools/.github/workflows/public_platform-tests.yaml@workflows-v0
142
142
  secrets: inherit
143
143
  ```
144
144
 
@@ -153,7 +153,7 @@ on:
153
153
 
154
154
  jobs:
155
155
  buildDevelAndTest:
156
- uses: apify/apify-test-tools/.github/workflows/public_pr-build-test.yaml@v0
156
+ uses: apify/apify-test-tools/.github/workflows/public_pr-build-test.yaml@workflows-v0
157
157
  secrets: inherit
158
158
  ```
159
159
 
@@ -168,7 +168,7 @@ on:
168
168
 
169
169
  jobs:
170
170
  buildLatest:
171
- uses: apify/apify-test-tools/.github/workflows/public_push-build-latest.yaml@v0
171
+ uses: apify/apify-test-tools/.github/workflows/public_push-build-latest.yaml@workflows-v0
172
172
  secrets: inherit
173
173
  ```
174
174
 
@@ -186,13 +186,13 @@ on:
186
186
 
187
187
  jobs:
188
188
  review:
189
- uses: apify/apify-test-tools/.github/workflows/public_review.yaml@v0
189
+ uses: apify/apify-test-tools/.github/workflows/public_review.yaml@workflows-v0
190
190
  secrets: inherit
191
191
  ```
192
192
 
193
193
  The review instructions live in `.github/review-prompt.md` in this repo and are fetched at run time,
194
194
  because a reusable workflow doesn't get its own repo checked out. `prompt-ref` selects which ref to
195
- fetch them from and defaults to `v0`, so the instructions match the workflow you're calling — point
195
+ fetch them from and defaults to `workflows-v0`, so the instructions match the workflow you're calling — point
196
196
  it at a branch only to test a prompt change.
197
197
 
198
198
  ### Secrets
@@ -256,7 +256,7 @@ decide what a consumer repo actually runs:
256
256
 
257
257
  | Pointer | What it selects | Moves when |
258
258
  | ----------------------------------- | ---------------------------------------------- | -------------------------------------------------------- |
259
- | the `@v0` tag in `uses:` | which workflows run | a master push, once the version below is published |
259
+ | the `@workflows-v0` tag in `uses:` | which workflows run | a master push, once the version below is published |
260
260
  | `.github/workflows-package-version` | which `apify-test-tools` the workflows install | a stable release writes it; you may set it ahead of time |
261
261
 
262
262
  The setup action installs that **exact** version — not a range. A tag is therefore a complete
@@ -270,31 +270,33 @@ action, which is how branch testing works.
270
270
 
271
271
  Nothing is coupled that doesn't need to be:
272
272
 
273
- - **Workflow-only change** — merge it. `v0` moves, it goes live, no release needed.
273
+ - **Workflow-only change** — merge it. `workflows-v0` moves, it goes live, no release needed.
274
274
  - **Package-only change** — merge it, then cut a release when you want it out. The workflows are
275
275
  unchanged, so consumers see nothing until the release lands.
276
276
  - **A workflow that calls a new CLI feature** — the one case that can break consumers, and the only
277
277
  one with any ceremony. Put the package change, the workflow change, and the new pin in one PR. On
278
- merge the tag is **held**: the CI job reports that the pinned version isn't on npm and leaves `v0`
278
+ merge the tag is **held**: the CI job reports that the pinned version isn't on npm and leaves `workflows-v0`
279
279
  where it is, so consumers keep running the previous workflows. Cut a stable release, and the tag
280
280
  moves on its own. Run **Move major version tag** if you don't want to wait for the next master
281
281
  push.
282
282
 
283
- `v0` moving on every master push means `@v0` is as live as `@master` was — there's no staging step,
284
- just a gate on the package version. What the tag buys you is a `v1` for breaking workflow changes,
285
- so repos migrate one at a time instead of all at once, and a way to roll back by pointing the tag at
286
- an earlier commit. Bump `MAJOR_TAG` in `.github/workflows/_move_major_tag.yaml` to cut the next
287
- major; the old tag then freezes where it is and keeps working.
283
+ `workflows-v0` moving on every master push means `@workflows-v0` is as live as `@master` was —
284
+ there's no staging step, just a gate on the package version. What the tag buys you is a
285
+ `workflows-v1` for breaking workflow changes, so repos migrate one at a time instead of all at once,
286
+ and a way to roll back by pointing the tag at an earlier commit. Bump `MAJOR_TAG` in
287
+ `.github/workflows/_move_major_tag.yaml` to cut the next major; the old tag then freezes where it is
288
+ and keeps working.
288
289
 
289
- Freezing is real, which is the whole reason the version is pinned rather than a floor. A frozen `v0`
290
+ Freezing is real, which is the whole reason the version is pinned rather than a floor. A frozen `workflows-v0`
290
291
  points at a commit whose pinned version never changes, so it keeps installing the library it was
291
292
  tested against no matter how far the package moves on. Had the workflows installed `>=<floor>`, a
292
- frozen `v0` would still resolve to whatever is newest — and since the release that enables `v1` is
293
- usually the same release that breaks `v0`, the migration window would have been zero.
293
+ frozen `workflows-v0` would still resolve to whatever is newest — and since the release that enables
294
+ `workflows-v1` is usually the same release that breaks `workflows-v0`, the migration window would
295
+ have been zero.
294
296
 
295
297
  The tag tracks the **workflows'** contract, not the npm package version. They move independently on
296
- purpose, so `@v0` is expected to stay `@v0` after the package reaches 1.0 — bump it when a workflow
297
- breaks its callers, not when the package does. Because `uses:` cannot take an expression, every ref
298
+ purpose, so `@workflows-v0` is expected to stay `@workflows-v0` after the package reaches 1.0 —
299
+ bump it when a workflow breaks its callers, not when the package does. Because `uses:` cannot take an expression, every ref
298
300
  into this repo repeats the tag literally; `check-major-tag-refs.mjs` fails the build if `MAJOR_TAG`
299
301
  and those refs disagree, which is the mistake that would otherwise ship silently during a bump.
300
302
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apify-test-tools",
3
- "version": "0.9.1-beta.8",
3
+ "version": "0.9.1-beta.9",
4
4
  "type": "module",
5
5
  "description": "TBD",
6
6
  "repository": {