Add SFTP deploy workflow for production - #16
Conversation
Deploys the site to the hosting server on every push to main, using GitHub Secrets for host, username, port, password, and remote path so no server details live in the repo. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CJGvJZXkV9CUHonq8wzEyt
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe pull request adds a GitHub Actions workflow for production deployment. It triggers on pushes to ChangesProduction deployment
Estimated code review effort: 2 (Simple) | ~10 minutes Change: Feature Sequence Diagram(s)sequenceDiagram
participant GitHubActions
participant RSync
participant SFTPServer
GitHubActions->>GitHubActions: Trigger on main push or manual dispatch
GitHubActions->>RSync: Build filtered .deploy-payload
RSync-->>GitHubActions: Return deployment payload
GitHubActions->>SFTPServer: Upload payload with deployment secrets
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_caa833b6-d6fc-4c79-8e33-244ddc3c2852) |



Summary
.github/workflows/deploy.ymlthat deploys the site to the production host on every push tomain(and via manualworkflow_dispatch).wlixcc/SFTP-Deploy-Action, pinned by commit SHA) so no plain FTP credentials are transmitted, and only files needed to serve the site are uploaded (.git,.github,README.md,AGENTS.md,renovate.jsonare excluded via anrsyncstaging step).Required setup before this can deploy
Add the following secrets in the repository (or an
productionenvironment, which the job already targets — GitHub will create it automatically on first run):DEPLOY_HOSTDEPLOY_USERNAMEDEPLOY_PASSWORDDEPLOY_PORTDEPLOY_REMOTE_PATH(the target directory on the server, e.g. the domain's web root)Since the job references a
productionenvironment, secrets can optionally be scoped to that environment only instead of being repo-wide.Test plan
main(or run the workflow manually) and confirm the deploy step completes without error/.git/is not publicly reachable🤖 Generated with Claude Code
https://claude.ai/code/session_01CJGvJZXkV9CUHonq8wzEyt
Generated by Claude Code
Summary by CodeRabbit