Skip to content

MuhammadTahaNasir/actomatic

Repository files navigation

πŸš€ Actomatic - GitHub Actions Workflow Templates

A production-ready GitHub Actions template repo to streamline CI/CD across AI, frontend, backend, and DevOps deployments.

This repo includes YAML-based workflows for:

  • 🧠 AI/ML & Jupyter Notebooks (Python)
  • βš›οΈ Frontend (React/Next.js with Vercel/Netlify)
  • 🐍 Backend (FastAPI/Node.js with Railway/Render/Heroku)
  • 🐳 Dockerized Microservices
  • 🌍 GitHub Pages static hosting
  • πŸ” VPS via SSH + Rsync
  • πŸ” Scheduled Cron jobs
  • 🧹 Auto lint, format, and deploy

πŸ“ Folder Structure

.
β”œβ”€β”€ .github/workflows     # All GitHub Actions YAML files
β”œβ”€β”€ client/               # Frontend (React/Next.js)
β”œβ”€β”€ server/               # Backend (Node.js / FastAPI)
β”œβ”€β”€ notebooks/            # AI/ML Jupyter notebooks
β”œβ”€β”€ public/               # GitHub Pages static files
β”œβ”€β”€ netlify.toml          # Netlify frontend deployment config
β”œβ”€β”€ railway.json          # Railway backend deploy config
β”œβ”€β”€ render.yaml           # Render deploy config
β”œβ”€β”€ fly.toml              # Fly.io app config
β”œβ”€β”€ Procfile              # Heroku deployment file
β”œβ”€β”€ SUPABASE.md           # Supabase integration guide
β”œβ”€β”€ .env.example          # Template for environment variables
β”œβ”€β”€ docker-compose.yml    # Full Docker app setup
└── README.md             # This file

πŸ” GitHub Secrets Needed

Secret Name Purpose
VERCEL_TOKEN Vercel deploy
VERCEL_PROJECT_ID Vercel project
VERCEL_ORG_ID Vercel organization
RAILWAY_DEPLOY_HOOK Railway auto deploy
RENDER_DEPLOY_KEY Render deploy trigger
HEROKU_API_KEY Heroku deploy
VPS_KEY SSH deploy to private VPS
DOCKER_USERNAME Docker Hub login
DOCKER_PASSWORD Docker Hub login
GITHUB_TOKEN Default token for Actions

βœ… Included Workflows

File Description
ci-ai.yml Convert/test AI notebooks
ci-frontend.yml Build + deploy frontend (Vercel)
ci-backend.yml Test + deploy backend (Railway)
gh-pages-deploy.yml Static site GitHub Pages deploy
docker-build-push.yml Build/push Docker images
lint-autoformat.yml Prettier, ESLint, Black auto format
weekly-update.yml Weekly scheduled cron task
vps-deploy.yml SSH + rsync deploy to VPS
heroku-deploy.yml CI deploy to Heroku
render-deploy.yml CI deploy to Render

πŸ—ΊοΈ Workflow Overview

                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚   GitHub    β”‚
                 β”‚   Push PR   β”‚
                 β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                      β”‚
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚            β”‚            β”‚
         β–Ό            β–Ό            β–Ό
    Frontend      Backend        AI/DS
    (React)     (Node/FastAPI) (Notebooks)
       β”‚            β”‚              β”‚
       β–Ό            β–Ό              β–Ό
  Vercel /      Railway /      GitHub Pages
  Netlify       Render /       nbconvert
                Heroku
       β”‚            β”‚
       β–Ό            β–Ό
     Docker Build & Push (Optional)
       β”‚
       β–Ό
     VPS Deploy (via SSH + Rsync)

🧠 AI Notebook Deployment

  • Converts Jupyter notebooks β†’ HTML using nbconvert
  • Deploys the converted HTML as GitHub Pages docs

βš›οΈ Frontend Deployment

  • Vercel: Uses amondnet/vercel-action
  • Netlify: Uses netlify.toml
  • GitHub Pages: Static folder auto-publish

🐍 Backend Deployment

  • Railway: Trigger via deploy hook
  • Heroku: GitHub Actions deploy via Procfile
  • Render: Deploy via API webhook
  • VPS: SSH key + Rsync push

πŸ“¦ Docker Support

  • Build and push images for client/server
  • Works with Docker Hub or self-hosted registry

πŸ” Scheduled Cron Jobs

Run weekly tasks like sync scripts, dataset updates, backups:

schedule:
  - cron: "0 3 * * 0" # Every Sunday 3AM UTC

πŸ§ͺ Lint + Format

Run Prettier/ESLint (Node) and Black (Python) on every PR or push


🧱 How to Use

  1. Clone or fork this repo
  2. Customize your client/, server/, notebooks/
  3. Set required secrets in GitHub β†’ Settings β†’ Secrets β†’ Actions
  4. Push to main, and workflows will run automatically βœ…

πŸ“« Author

Maintained by @MuhammadTahaNasir – feel free to fork, star ⭐, and contribute.

πŸ’¬ Need Render/Netlify/Heroku setup in your real project? Ping me anytime!