Skip to content

Add SFTP deploy workflow for production - #16

Merged
AlexanderWagnerDev merged 1 commit into
mainfrom
claude/peaceful-cannon-88d4ye
Sep 12, 2026
Merged

AlexanderWagnerDev merged 1 commit into
mainfrom
claude/peaceful-cannon-88d4ye

Conversation

@AlexanderWagnerDev

@AlexanderWagnerDev AlexanderWagnerDev commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add .github/workflows/deploy.yml that deploys the site to the production host on every push to main (and via manual workflow_dispatch).
  • Deployment uses SFTP (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.json are excluded via an rsync staging step).
  • All server details (host, username, password, port, remote path) come from GitHub Secrets referenced by name — none are hardcoded in the workflow file.

Required setup before this can deploy

Add the following secrets in the repository (or an production environment, which the job already targets — GitHub will create it automatically on first run):

  • DEPLOY_HOST
  • DEPLOY_USERNAME
  • DEPLOY_PASSWORD
  • DEPLOY_PORT
  • DEPLOY_REMOTE_PATH (the target directory on the server, e.g. the domain's web root)

Since the job references a production environment, secrets can optionally be scoped to that environment only instead of being repo-wide.

Test plan

  • Add the secrets listed above in repo/environment settings
  • Push to main (or run the workflow manually) and confirm the deploy step completes without error
  • Verify the live site reflects the deployed content and that /.git/ is not publicly reachable

🤖 Generated with Claude Code

https://claude.ai/code/session_01CJGvJZXkV9CUHonq8wzEyt


Generated by Claude Code

Summary by CodeRabbit

  • Chores
    • Added automated production deployment support when changes are pushed to the main branch.
    • Added the ability to trigger production deployments manually when needed.

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
@coderabbitai

coderabbitai Bot commented Sep 12, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: c58cee84-171e-4253-baa8-8fdd561b5c90

📥 Commits

Reviewing files that changed from the base of the PR and between 166d333 and 057bc0a.

📒 Files selected for processing (1)
  • .github/workflows/deploy.yml

📝 Walkthrough

Walkthrough

The pull request adds a GitHub Actions workflow for production deployment. It triggers on pushes to main or manual dispatch, creates a filtered payload, and uploads it to the configured SFTP destination.

Changes

Production deployment

Layer / File(s) Summary
Deployment workflow and payload transfer
.github/workflows/deploy.yml
The workflow defines production triggers, read-only permissions, concurrency control, and repository checkout. It creates a filtered .deploy-payload directory and uploads it with SFTP credentials and deployment settings.

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
Loading
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/peaceful-cannon-88d4ye

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@sonarqubecloud

Copy link
Copy Markdown

@AlexanderWagnerDev
AlexanderWagnerDev marked this pull request as ready for review September 12, 2026 22:41
@AlexanderWagnerDev
AlexanderWagnerDev merged commit aa26a9d into main Sep 12, 2026
7 checks passed
@cursor

cursor Bot commented Sep 12, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot 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)

@AlexanderWagnerDev
AlexanderWagnerDev deleted the claude/peaceful-cannon-88d4ye branch September 12, 2026 22:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants