apify-test-tools 0.9.1-beta.8 → 0.10.0
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/.github/actions/checkout-restore-dependencies/action.yaml +3 -29
- package/.github/scripts/check-major-tag-refs.mjs +1 -1
- package/.github/workflows/_move_major_tag.yaml +11 -3
- package/.github/workflows/public_platform-tests-claude-investigate-and-fix.yaml +2 -2
- package/.github/workflows/public_platform-tests.yaml +1 -13
- package/.github/workflows/public_pr-build-test.yaml +4 -26
- package/.github/workflows/public_push-build-latest.yaml +4 -15
- package/.github/workflows/public_review.yaml +1 -8
- package/.github/workflows-package-version +1 -1
- package/CHANGELOG.md +8 -3
- package/CONTRIBUTING.md +11 -7
- package/README.md +169 -56
- package/bin/build-from-local.ts +15 -11
- package/bin/build.ts +127 -67
- package/bin/git.ts +140 -0
- package/bin/main.ts +128 -91
- package/bin/slack.ts +5 -2
- package/bin/types.ts +0 -73
- package/bin/utils/config/parser.ts +6 -5
- package/bin/utils/config/structures/base.ts +5 -1
- package/bin/utils/config/structures/grouped.ts +40 -0
- package/bin/utils/config/structures/legacy.ts +3 -1
- package/bin/utils.ts +7 -15
- package/dist/bin/build-from-local.d.ts +2 -2
- package/dist/bin/build-from-local.d.ts.map +1 -1
- package/dist/bin/build-from-local.js +11 -6
- package/dist/bin/build-from-local.js.map +1 -1
- package/dist/bin/build.d.ts +26 -4
- package/dist/bin/build.d.ts.map +1 -1
- package/dist/bin/build.js +90 -47
- package/dist/bin/build.js.map +1 -1
- package/dist/bin/git.d.ts +40 -0
- package/dist/bin/git.d.ts.map +1 -1
- package/dist/bin/git.js +118 -0
- package/dist/bin/git.js.map +1 -1
- package/dist/bin/main.d.ts +1 -20
- package/dist/bin/main.d.ts.map +1 -1
- package/dist/bin/main.js +65 -62
- package/dist/bin/main.js.map +1 -1
- package/dist/bin/slack.d.ts.map +1 -1
- package/dist/bin/slack.js +4 -2
- package/dist/bin/slack.js.map +1 -1
- package/dist/bin/types.d.ts +0 -64
- package/dist/bin/types.d.ts.map +1 -1
- package/dist/bin/utils/config/parser.d.ts.map +1 -1
- package/dist/bin/utils/config/parser.js +6 -5
- package/dist/bin/utils/config/parser.js.map +1 -1
- package/dist/bin/utils/config/structures/base.d.ts +3 -2
- package/dist/bin/utils/config/structures/base.d.ts.map +1 -1
- package/dist/bin/utils/config/structures/base.js +1 -0
- package/dist/bin/utils/config/structures/base.js.map +1 -1
- package/dist/bin/utils/config/structures/grouped.d.ts +6 -0
- package/dist/bin/utils/config/structures/grouped.d.ts.map +1 -0
- package/dist/bin/utils/config/structures/grouped.js +29 -0
- package/dist/bin/utils/config/structures/grouped.js.map +1 -0
- package/dist/bin/utils/config/structures/legacy.d.ts +1 -1
- package/dist/bin/utils/config/structures/legacy.d.ts.map +1 -1
- package/dist/bin/utils/config/structures/legacy.js +1 -1
- package/dist/bin/utils/config/structures/legacy.js.map +1 -1
- package/dist/bin/utils.d.ts +5 -2
- package/dist/bin/utils.d.ts.map +1 -1
- package/dist/bin/utils.js +6 -12
- package/dist/bin/utils.js.map +1 -1
- package/dist/test/unit/bin/build.test.d.ts +2 -0
- package/dist/test/unit/bin/build.test.d.ts.map +1 -0
- package/dist/test/unit/bin/build.test.js +46 -0
- package/dist/test/unit/bin/build.test.js.map +1 -0
- package/dist/test/unit/bin/git.test.js +104 -1
- package/dist/test/unit/bin/git.test.js.map +1 -1
- package/dist/test/unit/bin/utils/config/load-config.test.js +1 -0
- package/dist/test/unit/bin/utils/config/load-config.test.js.map +1 -1
- package/dist/test/unit/bin/utils/config/parser.test.js +23 -5
- package/dist/test/unit/bin/utils/config/parser.test.js.map +1 -1
- package/dist/test/unit/bin/utils/config/structures/grouped.test.d.ts +2 -0
- package/dist/test/unit/bin/utils/config/structures/grouped.test.d.ts.map +1 -0
- package/dist/test/unit/bin/utils/config/structures/grouped.test.js +75 -0
- package/dist/test/unit/bin/utils/config/structures/grouped.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +65 -63
- package/test/unit/bin/build.test.ts +68 -0
- package/test/unit/bin/git.test.ts +122 -0
- package/test/unit/bin/utils/config/load-config.test.ts +1 -0
- package/test/unit/bin/utils/config/parser.test.ts +26 -5
- package/test/unit/bin/utils/config/structures/grouped.test.ts +90 -0
- package/bin/github.ts +0 -69
- package/dist/bin/github.d.ts +0 -11
- package/dist/bin/github.d.ts.map +0 -1
- package/dist/bin/github.js +0 -59
- package/dist/bin/github.js.map +0 -1
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
name: Checkout and restore dependencies
|
|
2
2
|
description: Checkout and restore dependencies
|
|
3
3
|
inputs:
|
|
4
|
-
working-directory:
|
|
5
|
-
description: Working directory
|
|
6
|
-
required: false
|
|
7
|
-
default: .
|
|
8
|
-
additional-working-directory:
|
|
9
|
-
description: Additional working directory
|
|
10
|
-
required: false
|
|
11
4
|
npm-token:
|
|
12
5
|
description: >-
|
|
13
6
|
Token for installing private npm packages. Exported as both NPM_TOKEN (what a
|
|
@@ -26,7 +19,7 @@ outputs:
|
|
|
26
19
|
|
|
27
20
|
# Sets common steps and ensure we use cached node_modules
|
|
28
21
|
# 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`
|
|
22
|
+
# change them back before merging. Merging to master no longer ships it: consumers track the `workflows-v0`
|
|
30
23
|
# tag, which only moves once the package version in .github/workflows-package-version is on npm.
|
|
31
24
|
runs:
|
|
32
25
|
using: 'composite'
|
|
@@ -60,30 +53,12 @@ runs:
|
|
|
60
53
|
id: check-dependencies-cache
|
|
61
54
|
uses: actions/cache@v5
|
|
62
55
|
with:
|
|
63
|
-
path:
|
|
64
|
-
key: modules-npm-${{
|
|
65
|
-
|
|
66
|
-
- name: Cache additional dependencies npm
|
|
67
|
-
id: check-additional-dependencies-cache
|
|
68
|
-
if: inputs.additional-working-directory != ''
|
|
69
|
-
uses: actions/cache@v5
|
|
70
|
-
with:
|
|
71
|
-
path: ${{ inputs.additional-working-directory }}/node_modules
|
|
72
|
-
key: modules-npm-${{ inputs.additional-working-directory }}-${{ hashFiles(format('{0}/package-lock.json', inputs.additional-working-directory)) }}
|
|
56
|
+
path: node_modules
|
|
57
|
+
key: modules-npm-${{ hashFiles('package-lock.json') }}
|
|
73
58
|
|
|
74
59
|
- name: install npm dependencies
|
|
75
60
|
if: steps.check-dependencies-cache.outputs.cache-hit != 'true'
|
|
76
61
|
shell: bash
|
|
77
|
-
working-directory: ${{ inputs.working-directory }}
|
|
78
|
-
env:
|
|
79
|
-
NPM_TOKEN: ${{ inputs.npm-token }}
|
|
80
|
-
NODE_AUTH_TOKEN: ${{ inputs.npm-token }}
|
|
81
|
-
run: npm ci
|
|
82
|
-
|
|
83
|
-
- name: install additional npm dependencies
|
|
84
|
-
if: inputs.additional-working-directory != '' && steps.check-additional-dependencies-cache.outputs.cache-hit != 'true'
|
|
85
|
-
shell: bash
|
|
86
|
-
working-directory: ${{ inputs.additional-working-directory }}
|
|
87
62
|
env:
|
|
88
63
|
NPM_TOKEN: ${{ inputs.npm-token }}
|
|
89
64
|
NODE_AUTH_TOKEN: ${{ inputs.npm-token }}
|
|
@@ -96,7 +71,6 @@ runs:
|
|
|
96
71
|
# Needs the npm token too: a repo whose .npmrc routes all traffic through a private
|
|
97
72
|
# registry has to authenticate even for public packages.
|
|
98
73
|
shell: bash
|
|
99
|
-
working-directory: ${{ inputs.working-directory }}
|
|
100
74
|
env:
|
|
101
75
|
NPM_TOKEN: ${{ inputs.npm-token }}
|
|
102
76
|
NODE_AUTH_TOKEN: ${{ inputs.npm-token }}
|
|
@@ -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
|
|
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:
|
|
@@ -13,13 +13,6 @@ on:
|
|
|
13
13
|
type: string
|
|
14
14
|
default: ''
|
|
15
15
|
required: false
|
|
16
|
-
working-directory:
|
|
17
|
-
type: string
|
|
18
|
-
default: .
|
|
19
|
-
required: false
|
|
20
|
-
additional-working-directory:
|
|
21
|
-
type: string
|
|
22
|
-
required: false
|
|
23
16
|
# Defaults to #notif-<repo-name> when empty, matching the previous behavior.
|
|
24
17
|
report-slack-channel:
|
|
25
18
|
type: string
|
|
@@ -31,16 +24,11 @@ jobs:
|
|
|
31
24
|
name: Scheduled Platform tests
|
|
32
25
|
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main'
|
|
33
26
|
runs-on: ubuntu-latest
|
|
34
|
-
defaults:
|
|
35
|
-
run:
|
|
36
|
-
working-directory: ${{ inputs.working-directory }}
|
|
37
27
|
steps:
|
|
38
28
|
- name: Setup repository and dependencies
|
|
39
29
|
# For testing, you have to temporarily change the branch
|
|
40
|
-
uses: apify/apify-test-tools/.github/actions/checkout-restore-dependencies@v0
|
|
30
|
+
uses: apify/apify-test-tools/.github/actions/checkout-restore-dependencies@workflows-v0
|
|
41
31
|
with:
|
|
42
|
-
working-directory: ${{ inputs.working-directory }}
|
|
43
|
-
additional-working-directory: ${{ inputs.additional-working-directory }}
|
|
44
32
|
npm-token: ${{ secrets.NPM_TOKEN }}
|
|
45
33
|
|
|
46
34
|
- name: Test
|
|
@@ -3,13 +3,6 @@ name: Test
|
|
|
3
3
|
on:
|
|
4
4
|
workflow_call:
|
|
5
5
|
inputs:
|
|
6
|
-
working-directory:
|
|
7
|
-
type: string
|
|
8
|
-
default: .
|
|
9
|
-
required: false
|
|
10
|
-
additional-working-directory:
|
|
11
|
-
type: string
|
|
12
|
-
required: false
|
|
13
6
|
skip-platform-tests:
|
|
14
7
|
type: boolean
|
|
15
8
|
default: false
|
|
@@ -28,17 +21,12 @@ jobs:
|
|
|
28
21
|
platformTest:
|
|
29
22
|
if: ${{ !inputs.skip-platform-tests }}
|
|
30
23
|
runs-on: ubuntu-latest
|
|
31
|
-
defaults:
|
|
32
|
-
run:
|
|
33
|
-
working-directory: ${{ inputs.working-directory }}
|
|
34
24
|
steps:
|
|
35
25
|
- name: Setup repository and dependencies
|
|
36
26
|
id: setup
|
|
37
27
|
# For testing, you have to temporarily change the branch
|
|
38
|
-
uses: apify/apify-test-tools/.github/actions/checkout-restore-dependencies@v0
|
|
28
|
+
uses: apify/apify-test-tools/.github/actions/checkout-restore-dependencies@workflows-v0
|
|
39
29
|
with:
|
|
40
|
-
working-directory: ${{ inputs.working-directory }}
|
|
41
|
-
additional-working-directory: ${{ inputs.additional-working-directory }}
|
|
42
30
|
# Some repos use private npm packages, they need to pass NPM_TOKEN secret to this workflow
|
|
43
31
|
npm-token: ${{ secrets.NPM_TOKEN }}
|
|
44
32
|
|
|
@@ -87,13 +75,9 @@ jobs:
|
|
|
87
75
|
# environment variables rather than being interpolated into it.
|
|
88
76
|
HEAD_REF: ${{ github.head_ref }}
|
|
89
77
|
BASE_REF: ${{ github.base_ref }}
|
|
90
|
-
WORKING_DIRECTORY: ${{ inputs.working-directory }}
|
|
91
78
|
run: |
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
prefix="${work_dir:+$work_dir/}test/platform/"
|
|
95
|
-
changed=$(git diff --name-only --diff-filter=d "origin/$BASE_REF...HEAD" -- "$prefix" \
|
|
96
|
-
| sed "s|^$prefix|./test/platform/|" | tr '\n' ' ')
|
|
79
|
+
changed=$(git diff --name-only --diff-filter=d "origin/$BASE_REF...HEAD" -- test/platform/ \
|
|
80
|
+
| sed "s|^|./|" | tr '\n' ' ')
|
|
97
81
|
branch_actors=$(npx apify-test-tools get-affected-actors \
|
|
98
82
|
--source-branch "origin/$HEAD_REF" \
|
|
99
83
|
--target-branch "origin/$BASE_REF")
|
|
@@ -135,17 +119,11 @@ jobs:
|
|
|
135
119
|
unitTest:
|
|
136
120
|
# TODO: only run on changes to code
|
|
137
121
|
runs-on: ubuntu-latest
|
|
138
|
-
defaults:
|
|
139
|
-
run:
|
|
140
|
-
working-directory: ${{ inputs.working-directory }}
|
|
141
|
-
|
|
142
122
|
steps:
|
|
143
123
|
- name: Setup repository and dependencies
|
|
144
124
|
# For testing, you have to temporarily change the branch
|
|
145
|
-
uses: apify/apify-test-tools/.github/actions/checkout-restore-dependencies@v0
|
|
125
|
+
uses: apify/apify-test-tools/.github/actions/checkout-restore-dependencies@workflows-v0
|
|
146
126
|
with:
|
|
147
|
-
working-directory: ${{ inputs.working-directory }}
|
|
148
|
-
additional-working-directory: ${{ inputs.additional-working-directory }}
|
|
149
127
|
npm-token: ${{ secrets.NPM_TOKEN }}
|
|
150
128
|
|
|
151
129
|
- name: TypeScript
|
|
@@ -3,13 +3,6 @@ name: Build latest and report to slack
|
|
|
3
3
|
on:
|
|
4
4
|
workflow_call:
|
|
5
5
|
inputs:
|
|
6
|
-
working-directory:
|
|
7
|
-
type: string
|
|
8
|
-
default: .
|
|
9
|
-
required: false
|
|
10
|
-
additional-working-directory:
|
|
11
|
-
type: string
|
|
12
|
-
required: false
|
|
13
6
|
# Defaults to #notif-<repo-name> when empty, matching the previous behavior.
|
|
14
7
|
report-slack-channel:
|
|
15
8
|
type: string
|
|
@@ -24,20 +17,16 @@ jobs:
|
|
|
24
17
|
!contains(github.event.head_commit.message, '[skip platform-test]')
|
|
25
18
|
|
|
26
19
|
runs-on: ubuntu-latest
|
|
27
|
-
defaults:
|
|
28
|
-
run:
|
|
29
|
-
working-directory: ${{ inputs.working-directory }}
|
|
30
|
-
|
|
31
20
|
steps:
|
|
32
21
|
- name: Setup repository and dependencies
|
|
33
22
|
id: setup
|
|
34
23
|
# For testing, you have to temporarily change the branch
|
|
35
|
-
uses: apify/apify-test-tools/.github/actions/checkout-restore-dependencies@v0
|
|
24
|
+
uses: apify/apify-test-tools/.github/actions/checkout-restore-dependencies@workflows-v0
|
|
36
25
|
with:
|
|
37
|
-
working-directory: ${{ inputs.working-directory }}
|
|
38
|
-
additional-working-directory: ${{ inputs.additional-working-directory }}
|
|
39
26
|
npm-token: ${{ secrets.NPM_TOKEN }}
|
|
40
27
|
|
|
28
|
+
# --base-commit is the last commit that is already released: the push's "before" commit.
|
|
29
|
+
# Everything after it up to HEAD gets released. See the "Releasing Actors" section of the README.
|
|
41
30
|
# run-with-apify-tokens.mjs reads the token names from in apify-test-tools.config.json
|
|
42
31
|
# and hands the build those secrets and nothing else, so the tokens stay in this one command instead of the whole job.
|
|
43
32
|
# The library never sees secrets it doesn't need
|
|
@@ -47,7 +36,7 @@ jobs:
|
|
|
47
36
|
SLACK_TOKEN_RELEASES_BOT: ${{ secrets.SLACK_TOKEN_RELEASES_BOT }}
|
|
48
37
|
run: |
|
|
49
38
|
node "${{ steps.setup.outputs.scripts-path }}/run-with-apify-tokens.mjs" \
|
|
50
|
-
npx apify-test-tools release --
|
|
39
|
+
npx apify-test-tools release --base-commit ${{ github.event.before }} --release-slack-channel "#delivery-public-actors" --report-slack-channel "${{ inputs.report-slack-channel || format('#notif-{0}', github.event.repository.name) }}" --use-docker-cache
|
|
51
40
|
|
|
52
41
|
- name: Delete old builds
|
|
53
42
|
env:
|
|
@@ -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
|
|
@@ -26,13 +26,6 @@ on:
|
|
|
26
26
|
type: string
|
|
27
27
|
description: Model to use for Claude Code (best, sonnet, opus, haiku, sonnet[1m], opus[1m], opusplan)
|
|
28
28
|
required: false
|
|
29
|
-
working-directory:
|
|
30
|
-
type: string
|
|
31
|
-
default: .
|
|
32
|
-
required: false
|
|
33
|
-
additional-working-directory:
|
|
34
|
-
type: string
|
|
35
|
-
required: false
|
|
36
29
|
secrets:
|
|
37
30
|
ANTHROPIC_API_KEY:
|
|
38
31
|
required: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.10.0
|
package/CHANGELOG.md
CHANGED
|
@@ -2,20 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
## 0.9.1 - **not yet released**
|
|
5
|
+
## [0.10.0](https://github.com/apify/apify-test-tools/releases/tag/v0.10.0) (2026-09-30)
|
|
7
6
|
|
|
8
7
|
### 🚀 Features
|
|
9
8
|
|
|
10
9
|
- **config/modes:** Lay groundwork for multiple configuration structures ([#142](https://github.com/apify/apify-test-tools/pull/142)) ([7e18638](https://github.com/apify/apify-test-tools/commit/7e18638a8d3523154dbe819312c2b16b54c548ff)) by [@JuanGalilea](https://github.com/JuanGalilea)
|
|
11
10
|
- **workflows:** Host the reusable GitHub workflows in this repo ([#120](https://github.com/apify/apify-test-tools/pull/120)) ([10f089d](https://github.com/apify/apify-test-tools/commit/10f089d85146ceb7cdae964cfa1fc2577df43a37)) by [@metalwarrior665](https://github.com/metalwarrior665)
|
|
11
|
+
- **mode:** Add grouped config mode ([#143](https://github.com/apify/apify-test-tools/pull/143)) ([9d0b93e](https://github.com/apify/apify-test-tools/commit/9d0b93e194a2cd810a31bcef4ca9457fd9ebfb9b)) by [@JuanGalilea](https://github.com/JuanGalilea)
|
|
12
12
|
|
|
13
13
|
### 🐛 Bug Fixes
|
|
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
|
+
- Copy cli to zip to KV store local builds ([#151](https://github.com/apify/apify-test-tools/pull/151)) ([ecdda58](https://github.com/apify/apify-test-tools/commit/ecdda58b68a8c7173a023e3a92689bc4fa0ce53c)) by [@gytelio](https://github.com/gytelio), closes [#140](https://github.com/apify/apify-test-tools/issues/140)
|
|
17
|
+
|
|
18
|
+
### 🚜 Refactor
|
|
19
|
+
|
|
20
|
+
- **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)
|
|
21
|
+
- **bin:** [**breaking**] Remove GitHub event dependency from release command ([#153](https://github.com/apify/apify-test-tools/pull/153)) ([e6953aa](https://github.com/apify/apify-test-tools/commit/e6953aa095d1a92638c6d72441e1b312d9f835c3)) by [@metalwarrior665](https://github.com/metalwarrior665), closes [#131](https://github.com/apify/apify-test-tools/issues/131)
|
|
16
22
|
|
|
17
23
|
|
|
18
|
-
<!-- git-cliff-unreleased-end -->
|
|
19
24
|
## [0.9.0](https://github.com/apify/apify-test-tools/releases/tag/v0.9.0) (2026-08-11)
|
|
20
25
|
|
|
21
26
|
### 🚀 Features
|
package/CONTRIBUTING.md
CHANGED
|
@@ -10,7 +10,6 @@ The package consists of three parts:
|
|
|
10
10
|
|
|
11
11
|
- `bin/build.ts` actor building
|
|
12
12
|
- `bin/git.ts` git wrappers for getting relevant git commits and changed files
|
|
13
|
-
- `bin/github.ts` github push event parsing
|
|
14
13
|
- `bin/main.ts` entrypoing
|
|
15
14
|
- `bin/slack.ts` sending notifications to slack
|
|
16
15
|
- `bin/test-report.ts` processing vitest's test reports
|
|
@@ -40,12 +39,11 @@ git clone git@github.com:apify-store/testing-repo-for-github-actions.git
|
|
|
40
39
|
|
|
41
40
|
#### Working on the CLI
|
|
42
41
|
|
|
43
|
-
To work on the library,
|
|
42
|
+
To work on the library, point the cli to your repo with `--workspace` (it defaults to the current directory):
|
|
44
43
|
|
|
45
44
|
```sh
|
|
46
|
-
export GITHUB_WORKSPACE=../path/to/testing-repo-for-github-actions # path to the repo
|
|
47
45
|
npx tsx bin/main.ts --help
|
|
48
|
-
npx tsx bin/main.ts get-commits --target-branch master --source-branch feat/testing-feature-branch
|
|
46
|
+
npx tsx bin/main.ts --workspace ../path/to/testing-repo-for-github-actions get-commits --target-branch master --source-branch feat/testing-feature-branch
|
|
49
47
|
```
|
|
50
48
|
|
|
51
49
|
#### Working on the library
|
|
@@ -71,14 +69,20 @@ this repo's own triggers.
|
|
|
71
69
|
A `public_` filename is part of the contract — it is baked into every consumer's `uses:` line, so
|
|
72
70
|
renaming one is a breaking change that needs a major tag bump, not a tidy-up.
|
|
73
71
|
|
|
74
|
-
|
|
72
|
+
The tag is not semver, so `git-cliff` would abort on it. It is skipped only because
|
|
73
|
+
`apify/actions`' cliff.toml sets `tag_pattern = "v[0-9]+\."` — a release failing with
|
|
74
|
+
`Semver error: unexpected character` means that pattern changed, not that anything here is wrong.
|
|
75
|
+
The action's "Nothing to release" guard resolves to this tag and no longer fires, so an empty stable
|
|
76
|
+
release fails at `npm publish` instead of erroring cleanly.
|
|
77
|
+
|
|
78
|
+
Consumers pin `@workflows-v0`, not `@master`. See
|
|
75
79
|
[Versioning and releases](./README.md#versioning-and-releases) in the README for how the tag and the
|
|
76
80
|
npm release relate — the short version:
|
|
77
81
|
|
|
78
82
|
- changing only a workflow needs no npm release
|
|
79
83
|
- changing only the package needs no workflow change
|
|
80
84
|
- 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
|
|
85
|
+
version that will contain it, in the same PR. The `workflows-v0` tag is then held until that version is on
|
|
82
86
|
npm, so merging can't ship a workflow that calls a CLI that doesn't exist yet.
|
|
83
87
|
|
|
84
88
|
`.github/workflows-package-version` holds one exact version, and the stable release writes it. The
|
|
@@ -99,5 +103,5 @@ pushing workflow changes.
|
|
|
99
103
|
|
|
100
104
|
`public_review` is the odd one out: it fetches `.github/review-prompt.md` over HTTP at run time, because a
|
|
101
105
|
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
|
|
106
|
+
input defaults to `workflows-v0` so the instructions come from the same release as the workflow — leaving it
|
|
103
107
|
at `master` would run released workflows against unreleased instructions.
|