Description
The working-directory input is not applied to several internal composite action steps that run npx rock commands. This causes failures in monorepo setups where rock.config.mjs is in a subdirectory rather than the repo root.
Steps affected
The following steps are missing working-directory: ${{ inputs.working-directory }}:
- Populate GitHub Token in Cache — writes
.rock/cache/project.json to repo root instead of app dir
- Check if PR-related artifact exists —
npx rock remote-cache list
- Check if regular artifact exists —
npx rock remote-cache list
- Find Build Artifact —
find uses absolute path so it works, but inconsistent
- Download and Unpack APK —
npx rock remote-cache download
- Find artifact URL again before uploading —
npx rock remote-cache list
Steps that correctly use working-directory:
- Native Fingerprint
- Get Provider Name
- Determine Android sourceDir and appName
- Build Android
Error
npm warn exec The following package was not found and will be installed: rock@0.13.0
Error: rock.config not found in any parent directory of /
Reproduction
Use the action in a monorepo where rock.config.mjs is in a subdirectory:
- uses: callstackincubator/android@v3
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
variant: 'Release'
working-directory: './apps/my-app'
The "Get Provider Name" step succeeds (has working-directory), but "Check if regular artifact exists" fails (missing working-directory).
Expected
All steps that run npx rock should use working-directory: ${{ inputs.working-directory }}.
Versions
callstackincubator/android@v3 (v3.1.0)
rock@0.13.0
Description
The
working-directoryinput is not applied to several internal composite action steps that runnpx rockcommands. This causes failures in monorepo setups whererock.config.mjsis in a subdirectory rather than the repo root.Steps affected
The following steps are missing
working-directory: ${{ inputs.working-directory }}:.rock/cache/project.jsonto repo root instead of app dirnpx rock remote-cache listnpx rock remote-cache listfinduses absolute path so it works, but inconsistentnpx rock remote-cache downloadnpx rock remote-cache listSteps that correctly use
working-directory:Error
Reproduction
Use the action in a monorepo where
rock.config.mjsis in a subdirectory:The "Get Provider Name" step succeeds (has
working-directory), but "Check if regular artifact exists" fails (missingworking-directory).Expected
All steps that run
npx rockshould useworking-directory: ${{ inputs.working-directory }}.Versions
callstackincubator/android@v3(v3.1.0)rock@0.13.0