301 β€” Deploy to Cloud Platforms

Advanced

Automate deployments from GitHub Actions to cloud platforms. Deploy containerized applications to Vercel, Railway, Render, and other PaaS providers automatically.

Learning Objectives

1
Deploy applications from CI/CD to cloud platforms
2
Configure continuous deployment workflows
3
Implement environment-specific deployments
4
Set up deployment previews for pull requests
5
Monitor deployment status and rollbacks
Step 1

Create deployable Node.js application

Build a production-ready web app for deployment.

Commands to Run

mkdir deploy-app && cd deploy-app
npm init -y
npm install express
cat > index.js << 'EOF'
const express = require('express');
const app = express();
const PORT = process.env.PORT || 3000;
const ENV = process.env.NODE_ENV || 'development';

app.get('/', (req, res) => {
  res.json({
    message: 'Deployment Demo',
    environment: ENV,
    version: process.env.npm_package_version || '1.0.0',
    timestamp: new Date().toISOString()
  });
});

app.get('/health', (req, res) => {
  res.status(200).json({ status: 'healthy' });
});

app.listen(PORT, () => {
  console.log(`Server running on port ${PORT} in ${ENV} mode`);
});
EOF
cat > package.json << 'EOF'
{
  "name": "deploy-app",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  },
  "dependencies": {
    "express": "^4.18.0"
  },
  "engines": {
    "node": ">=18.0.0"
  }
}
EOF
npm start

What This Does

Simple Express API with health check endpoint. Respects PORT environment variable (required by most platforms). engines field tells platforms which Node version to use.

Expected Outcome

App runs locally on port 3000. Returns JSON with environment info. Health check responds OK.

Pro Tips

  • 1
    Always specify engines in package.json
  • 2
    Health checks enable platform monitoring
  • 3
    Use process.env.PORT for cloud compatibility
  • 4
    Include start script for platforms
  • 5
    Test locally before deploying
Was this step helpful?

All Steps (0 / 10 completed)