|
| 1 | +# 🚀 Actomatic - GitHub Actions Workflow Templates |
| 2 | + |
| 3 | +A production-ready GitHub Actions template repo to streamline CI/CD across AI, frontend, backend, and DevOps deployments. |
| 4 | + |
| 5 | +This repo includes YAML-based workflows for: |
| 6 | + |
| 7 | +- 🧠 AI/ML & Jupyter Notebooks (Python) |
| 8 | +- ⚛️ Frontend (React/Next.js with Vercel/Netlify) |
| 9 | +- 🐍 Backend (FastAPI/Node.js with Railway/Render/Heroku) |
| 10 | +- 🐳 Dockerized Microservices |
| 11 | +- 🌍 GitHub Pages static hosting |
| 12 | +- 🔐 VPS via SSH + Rsync |
| 13 | +- 🔁 Scheduled Cron jobs |
| 14 | +- 🧹 Auto lint, format, and deploy |
| 15 | + |
| 16 | +## 📁 Folder Structure |
| 17 | +``` |
| 18 | +. |
| 19 | +├── .github/workflows # All GitHub Actions YAML files |
| 20 | +├── client/ # Frontend (React/Next.js) |
| 21 | +├── server/ # Backend (Node.js / FastAPI) |
| 22 | +├── notebooks/ # AI/ML Jupyter notebooks |
| 23 | +├── public/ # GitHub Pages static files |
| 24 | +├── netlify.toml # Netlify frontend deployment config |
| 25 | +├── railway.json # Railway backend deploy config |
| 26 | +├── render.yaml # Render deploy config |
| 27 | +├── fly.toml # Fly.io app config |
| 28 | +├── Procfile # Heroku deployment file |
| 29 | +├── SUPABASE.md # Supabase integration guide |
| 30 | +├── .env.example # Template for environment variables |
| 31 | +├── docker-compose.yml # Full Docker app setup |
| 32 | +└── README.md # This file |
| 33 | +``` |
| 34 | + |
| 35 | +--- |
| 36 | + |
| 37 | +## 🔐 GitHub Secrets Needed |
| 38 | +| Secret Name | Purpose | |
| 39 | +|--------------------------|----------------------------------| |
| 40 | +| `VERCEL_TOKEN` | Vercel deploy | |
| 41 | +| `VERCEL_PROJECT_ID` | Vercel project | |
| 42 | +| `VERCEL_ORG_ID` | Vercel organization | |
| 43 | +| `RAILWAY_DEPLOY_HOOK` | Railway auto deploy | |
| 44 | +| `RENDER_DEPLOY_KEY` | Render deploy trigger | |
| 45 | +| `HEROKU_API_KEY` | Heroku deploy | |
| 46 | +| `VPS_KEY` | SSH deploy to private VPS | |
| 47 | +| `DOCKER_USERNAME` | Docker Hub login | |
| 48 | +| `DOCKER_PASSWORD` | Docker Hub login | |
| 49 | +| `GITHUB_TOKEN` | Default token for Actions | |
| 50 | + |
| 51 | +--- |
| 52 | + |
| 53 | +## ✅ Included Workflows |
| 54 | + |
| 55 | +| File | Description | |
| 56 | +|-----------------------------|----------------------------------------| |
| 57 | +| `ci-ai.yml` | Convert/test AI notebooks | |
| 58 | +| `ci-frontend.yml` | Build + deploy frontend (Vercel) | |
| 59 | +| `ci-backend.yml` | Test + deploy backend (Railway) | |
| 60 | +| `gh-pages-deploy.yml` | Static site GitHub Pages deploy | |
| 61 | +| `docker-build-push.yml` | Build/push Docker images | |
| 62 | +| `lint-autoformat.yml` | Prettier, ESLint, Black auto format | |
| 63 | +| `weekly-update.yml` | Weekly scheduled cron task | |
| 64 | +| `vps-deploy.yml` | SSH + rsync deploy to VPS | |
| 65 | +| `heroku-deploy.yml` | CI deploy to Heroku | |
| 66 | +| `render-deploy.yml` | CI deploy to Render | |
| 67 | + |
| 68 | +--- |
| 69 | + |
| 70 | +## 🗺️ Workflow Overview |
| 71 | +``` |
| 72 | + ┌─────────────┐ |
| 73 | + │ GitHub │ |
| 74 | + │ Push PR │ |
| 75 | + └────┬────────┘ |
| 76 | + │ |
| 77 | + ┌────────────┼────────────┐ |
| 78 | + │ │ │ |
| 79 | + ▼ ▼ ▼ |
| 80 | + Frontend Backend AI/DS |
| 81 | + (React) (Node/FastAPI) (Notebooks) |
| 82 | + │ │ │ |
| 83 | + ▼ ▼ ▼ |
| 84 | + Vercel / Railway / GitHub Pages |
| 85 | + Netlify Render / nbconvert |
| 86 | + Heroku |
| 87 | + │ │ |
| 88 | + ▼ ▼ |
| 89 | + Docker Build & Push (Optional) |
| 90 | + │ |
| 91 | + ▼ |
| 92 | + VPS Deploy (via SSH + Rsync) |
| 93 | +``` |
| 94 | + |
| 95 | +--- |
| 96 | + |
| 97 | +## 🧠 AI Notebook Deployment |
| 98 | +- Converts Jupyter notebooks → HTML using `nbconvert` |
| 99 | +- Deploys the converted HTML as GitHub Pages docs |
| 100 | + |
| 101 | +--- |
| 102 | + |
| 103 | +## ⚛️ Frontend Deployment |
| 104 | +- Vercel: Uses `amondnet/vercel-action` |
| 105 | +- Netlify: Uses `netlify.toml` |
| 106 | +- GitHub Pages: Static folder auto-publish |
| 107 | + |
| 108 | +--- |
| 109 | + |
| 110 | +## 🐍 Backend Deployment |
| 111 | +- Railway: Trigger via deploy hook |
| 112 | +- Heroku: GitHub Actions deploy via `Procfile` |
| 113 | +- Render: Deploy via API webhook |
| 114 | +- VPS: SSH key + Rsync push |
| 115 | + |
| 116 | +--- |
| 117 | + |
| 118 | +## 📦 Docker Support |
| 119 | +- Build and push images for client/server |
| 120 | +- Works with Docker Hub or self-hosted registry |
| 121 | + |
| 122 | +--- |
| 123 | + |
| 124 | +## 🔁 Scheduled Cron Jobs |
| 125 | +Run weekly tasks like sync scripts, dataset updates, backups: |
| 126 | +```yaml |
| 127 | +schedule: |
| 128 | + - cron: "0 3 * * 0" # Every Sunday 3AM UTC |
| 129 | +``` |
| 130 | +
|
| 131 | +--- |
| 132 | +
|
| 133 | +## 🧪 Lint + Format |
| 134 | +Run Prettier/ESLint (Node) and Black (Python) on every PR or push |
| 135 | +
|
| 136 | +--- |
| 137 | +
|
| 138 | +## 🧱 How to Use |
| 139 | +1. Clone or fork this repo |
| 140 | +2. Customize your `client/`, `server/`, `notebooks/` |
| 141 | +3. Set required secrets in GitHub → Settings → Secrets → Actions |
| 142 | +4. Push to `main`, and workflows will run automatically ✅ |
| 143 | + |
| 144 | +--- |
| 145 | + |
| 146 | +## 📫 Author |
| 147 | +Maintained by [@MuhammadTahaNasir](https://github.com/MuhammadTahaNasir) – feel free to fork, star ⭐, and contribute. |
| 148 | + |
| 149 | +> 💬 Need Render/Netlify/Heroku setup in your real project? Ping me anytime! |
0 commit comments