apify-test-tools 0.10.2-beta.5 → 0.10.2-beta.6

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.
@@ -49,7 +49,24 @@ runs:
49
49
  shell: bash
50
50
  run: echo "path=$(cd "${{ github.action_path }}/../../scripts" && pwd)" >> "$GITHUB_OUTPUT"
51
51
 
52
+ # A repo is on pnpm when it has a pnpm-lock.yaml and no package-lock.json.
53
+ - name: Detect package manager
54
+ id: package-manager
55
+ shell: bash
56
+ run: |
57
+ if [ -f pnpm-lock.yaml ] && [ ! -f package-lock.json ]; then
58
+ echo "name=pnpm" >> "$GITHUB_OUTPUT"
59
+ else
60
+ echo "name=npm" >> "$GITHUB_OUTPUT"
61
+ fi
62
+
63
+ # Takes the pnpm version from the `packageManager` field of the repo's package.json.
64
+ - name: Install pnpm
65
+ if: steps.package-manager.outputs.name == 'pnpm'
66
+ uses: pnpm/action-setup@v6
67
+
52
68
  - name: Cache dependencies npm
69
+ if: steps.package-manager.outputs.name == 'npm'
53
70
  id: check-dependencies-cache
54
71
  uses: actions/cache@v5
55
72
  with:
@@ -57,16 +74,39 @@ runs:
57
74
  key: modules-npm-${{ hashFiles('package-lock.json') }}
58
75
 
59
76
  - name: install npm dependencies
60
- if: steps.check-dependencies-cache.outputs.cache-hit != 'true'
77
+ if: steps.package-manager.outputs.name == 'npm' && steps.check-dependencies-cache.outputs.cache-hit != 'true'
61
78
  shell: bash
62
79
  env:
63
80
  NPM_TOKEN: ${{ inputs.npm-token }}
64
81
  NODE_AUTH_TOKEN: ${{ inputs.npm-token }}
65
82
  run: npm ci
66
83
 
84
+ # Caching node_modules would miss each workspace package's own node_modules, so we cache the
85
+ # store and always install; with a warm store that only links files.
86
+ - name: Resolve pnpm store path
87
+ if: steps.package-manager.outputs.name == 'pnpm'
88
+ id: pnpm-store
89
+ shell: bash
90
+ run: echo "path=$(pnpm store path --silent)" >> "$GITHUB_OUTPUT"
91
+
92
+ - name: Cache pnpm store
93
+ if: steps.package-manager.outputs.name == 'pnpm'
94
+ uses: actions/cache@v5
95
+ with:
96
+ path: ${{ steps.pnpm-store.outputs.path }}
97
+ key: pnpm-store-${{ hashFiles('pnpm-lock.yaml') }}
98
+
99
+ - name: install pnpm dependencies
100
+ if: steps.package-manager.outputs.name == 'pnpm'
101
+ shell: bash
102
+ env:
103
+ NPM_TOKEN: ${{ inputs.npm-token }}
104
+ NODE_AUTH_TOKEN: ${{ inputs.npm-token }}
105
+ run: pnpm install --frozen-lockfile
106
+
67
107
  # The CLI the workflows call ships with this action as one bundled file (npm run bundle), so
68
- # nothing is installed for it. The repo's node_modules stays exactly what package-lock.json
69
- # says, and its tests import the lib from the version they locked.
108
+ # nothing is installed for it. The repo's node_modules stays exactly what its lockfile says,
109
+ # and its tests import the lib from the version they locked.
70
110
  # Steps call `apify-test-tools` without npx: npx would pick the repo's own copy in node_modules/.bin first.
71
111
  - name: Put apify-test-tools CLI on PATH
72
112
  shell: bash
@@ -39,6 +39,11 @@ on:
39
39
  type: string
40
40
  default: sonnet
41
41
  description: Claude model to use for investigation and fix
42
+ effort:
43
+ required: false
44
+ type: string
45
+ default: ''
46
+ description: Claude effort level (low, medium, high, xhigh, max) to use for investigation and fix. Uses the Claude Code default when empty.
42
47
  max_flakiness_runs:
43
48
  required: false
44
49
  type: number
@@ -115,6 +120,7 @@ jobs:
115
120
  claude_args: |
116
121
  --mcp-config '{"mcpServers":{"apify":{"type":"http","url":"https://mcp.apify.com/?tools=get-actor-run,get-actor-run-log,get-dataset-list,get-dataset,get-dataset-items,get-key-value-store-list,get-key-value-store,get-key-value-store-keys,get-key-value-store-record","headers":{"Authorization":"Bearer ${TESTER_APIFY_TOKEN}"}}}}'
117
122
  --model ${{ inputs.model }}
123
+ ${{ inputs.effort && format('--effort {0}', inputs.effort) || '' }}
118
124
  --dangerously-skip-permissions
119
125
 
120
126
  - name: Upload Claude output (for debugging)
@@ -190,6 +196,7 @@ jobs:
190
196
  prompt: 'Open a pull request to address GitHub issue #${{ needs.investigate.outputs.issue_number }}. Use `gh issue view ${{ needs.investigate.outputs.issue_number }}` to read the issue details first, then implement the fix and create a PR.'
191
197
  claude_args: |
192
198
  --model ${{ inputs.model }}
199
+ ${{ inputs.effort && format('--effort {0}', inputs.effort) || '' }}
193
200
  --dangerously-skip-permissions
194
201
 
195
202
  - name: Upload Claude output (for debugging)
package/CHANGELOG.md CHANGED
@@ -11,6 +11,8 @@ All notable changes to this project will be documented in this file.
11
11
  - [**breaking**] Revamp get-affected-actors to be a core logic command ([#190](https://github.com/apify/apify-test-tools/pull/190)) ([ea5f244](https://github.com/apify/apify-test-tools/commit/ea5f244cfd42bf3fa9ffd38cd2ad499dde2e83f8)) by [@metalwarrior665](https://github.com/metalwarrior665)
12
12
  - [**breaking**] Add logic-less build command and use command chaining in workflows ([#193](https://github.com/apify/apify-test-tools/pull/193)) ([e5b0b86](https://github.com/apify/apify-test-tools/commit/e5b0b86ee06fca51d4be0ddc81b0a4a469d31603)) by [@metalwarrior665](https://github.com/metalwarrior665)
13
13
  - **get-affected-actors:** Three-dot diff, narrowed per Actor with --since ([#204](https://github.com/apify/apify-test-tools/pull/204)) ([fa9a0e7](https://github.com/apify/apify-test-tools/commit/fa9a0e7518764dd4722ec9ecbf67b2a26a5a062e)) by [@metalwarrior665](https://github.com/metalwarrior665)
14
+ - Add effort input to Claude investigate-and-fix workflow ([#221](https://github.com/apify/apify-test-tools/pull/221)) ([c2ac078](https://github.com/apify/apify-test-tools/commit/c2ac078aec9ef02337af0e5c06db1b947b6c969b)) by [@foxt451](https://github.com/foxt451)
15
+ - **ci:** Support pnpm ([#214](https://github.com/apify/apify-test-tools/pull/214)) ([ee7d734](https://github.com/apify/apify-test-tools/commit/ee7d7340564c5b8657a8a1f0cf920d67b40ae013)) by [@ruocco-l](https://github.com/ruocco-l)
14
16
 
15
17
  ### 🐛 Bug Fixes
16
18
 
package/README.md CHANGED
@@ -305,8 +305,9 @@ Two tidier-looking alternatives don't work, so don't reach for them:
305
305
  an output whose value contains a registered secret. It logs `Skip output <name> since it may
306
306
  contain secret` and leaves the output empty, so anything reading it downstream gets nothing.
307
307
 
308
- The `unitTest` job runs static checks and needs `NPM_TOKEN` only. No job runs `npm ci` with Apify or
309
- Slack credentials in scope, so a postinstall script in the dependency tree cannot read them.
308
+ The `unitTest` job runs static checks and needs `NPM_TOKEN` only. No job runs `npm ci` or
309
+ `pnpm install` with Apify or Slack credentials in scope, so a postinstall script in the dependency
310
+ tree cannot read them.
310
311
 
311
312
  ## Versioning and releases
312
313
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apify-test-tools",
3
- "version": "0.10.2-beta.5",
3
+ "version": "0.10.2-beta.6",
4
4
  "type": "module",
5
5
  "description": "TBD",
6
6
  "repository": {