uploading environment secrets doesn't work with pages deploy
https://github.com/cloudflare/wrangler-action/blob/cd8a317efbc7fab418e9bd7092c8643d88c03321/src/index.ts#L251
When the repository is pages directory, it needs to run
wrangler pages secret bulk
Otherwise it will run into the following error:
🔑 Uploading secrets...
/opt/hostedtoolcache/node/18.20.4/x64/bin/npx wrangler secret:bulk
⛅️ wrangler 3.81.0
-------------------
✘ [ERROR] It looks like you've run a Workers-specific command in a Pages project.
For Pages, please run `wrangler pages secret bulk` instead.
🪵 Logs were written to "/home/runner/.config/.wrangler/logs/wrangler-2024-10-20_12-06-13_693.log"
Error: The process '/opt/hostedtoolcache/node/18.20.4/x64/bin/npx' failed with exit code 1
Error: Failed to upload secrets.
Error: 🚨 Action failed
This appears to be throwing errors on Worker deploys, too.
🔑 Uploading secrets...
/usr/local/bin/npx wrangler secret:bulk
⛅️ wrangler 3.78.10 (update available 3.83.0)
----------------------------------------------
▲ [WARNING] `wrangler secret:bulk` is deprecated and will be removed in a future major version.
Please use `wrangler secret bulk` instead, which accepts exactly the same arguments.
🌀 Creating the secrets for the Worker "[redacted]"
Finished processing secrets JSON file:
✨ 0 secrets successfully uploaded
✘ [ERROR] 🚨 3 secrets failed to upload
Using: actions/checkout@v4 & cloudflare/wrangler-action@v3
Does this issue persist if you update the deprecated command and use the latest wrangler version?
Looks like we may need to adjust behavior here to allow setting secrets for Pages, such as with a pages_secrets: field (or somehow detect if the project is a Pages project before uploading secrets.)
Until then, users can work around this by manually uploading secrets in the Cloudflare dashboard, or locally using wrangler secret put
Aye, that's generally how I've gotten around these with failing Workers deployments. Seems like these deprecated commands come through every now and then through normal usage of the Wrangler CLI so it's hard to know exactly when it breaks...until it does!
I just ran into this problem as well. What would be the best practice to still be able to set secrets for pages?
Create a .dev.vars in the CI runner, filled with the secrets, and then run wrangler pages secret bulk .dev.vars in the preCommands?