Set Up CI/CD Pipeline
Page Goal
Guide users through setting up professional CI/CD workflows with automated testing, linting, and deployments. Show that Temps fits into modern development workflows.
Target Persona
Professional Paul - A developer who:
- Wants automated testing before deployment
 - Works in a team environment
 - Needs code quality gates
 - Values: Automation, reliability, team workflows
 - Experience: Comfortable with GitHub Actions / GitLab CI
 - Timeline: Setting up proper workflow
 
Key Content to Include
1. What You'll Build
- Automated tests on every push
 - Linting and type checking
 - Automated deployment after tests pass
 - Preview deployments for PRs
 - Time: 20-30 minutes
 
2. Prerequisites
- Application on Temps
 - GitHub/GitLab repository
 - Test suite in your project
 - (Optional) Temps API key for advanced workflows
 
3. Basic Workflow: Auto-Deploy on Push
How it Works:
- Push to main → Auto-deploy (default in Temps)
 - Already enabled!
 - Branch configuration
 
4. Advanced Workflow: Test Then Deploy
GitHub Actions Example:
name: Test and Deploy
on:
  push:
    branches: [main]
  pull_request:
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
      - run: npm ci
      - run: npm test
      - run: npm run lint
  deploy:
    needs: test
    if: github.ref == 'refs/heads/main'
    runs-on: ubuntu-latest
    steps:
      - name: Trigger Temps Deploy
        run: |
          # Auto-deploy happens automatically
          # Or use Temps API for advanced control
GitLab CI Example:
stages:
  - test
  - deploy
test:
  stage: test
  script:
    - npm ci
    - npm test
    - npm run lint
deploy:
  stage: deploy
  only:
    - main
  script:
    - echo "Temps auto-deploys main branch"
5. Pull Request Workflow
Step 1: Enable Preview Deployments
- Configure in Temps dashboard
 - Select which branches get previews
 - PR-based preview URLs
 
Step 2: GitHub Action for PR Comments
- name: Comment Preview URL
  uses: actions/github-script@v6
  with:
    script: |
      github.rest.issues.createComment({
        issue_number: context.issue.number,
        body: 'Preview: https://pr-${{ github.event.pull_request.number }}.app.temps.dev'
      })
6. Quality Gates
Linting:
- ESLint for JavaScript/TypeScript
 - Prettier for formatting
 - Fail build on errors
 
Type Checking:
- TypeScript type checking
 - Only deploy if types pass
 
Testing:
- Unit tests
 - Integration tests
 - E2E tests (optional)
 - Coverage requirements
 
7. Environment-Specific Deployments
Deploy to Staging First:
deploy-staging:
  if: github.ref == 'refs/heads/develop'
  # Deploy to staging environment
deploy-production:
  if: github.ref == 'refs/heads/main'
  # Deploy to production
8. Using Temps API
- API key generation
 - Triggering deployments
 - Getting deployment status
 - Advanced automation
 
9. Notifications
Slack Notifications:
- name: Notify Slack
  if: always()
  uses: 8398a7/action-slack@v3
  with:
    status: ${{ job.status }}
    text: 'Deployment to Temps: ${{ job.status }}'
Discord/Email:
- Similar webhook integrations
 - Deployment status alerts
 
10. Rollback Strategy
- Automatic rollback on health check failure
 - Manual rollback via Temps dashboard
 - Git-based rollback (revert + push)
 
11. Complete Example Workflows
- Next.js with tests
 - Node.js API with tests
 - Monorepo with multiple apps
 - Link to example repositories
 
12. Troubleshooting
- Build fails in CI but works locally
 - Tests timeout
 - Environment variable access in CI
 - Deployment doesn't trigger
 
Success Metrics
- User sets up automated testing
 - Deployments only happen when tests pass
 - Professional workflow established
 - Team confidence in deployments
 - Broken code doesn't reach production