Automating Deployments with GitHub Actions
GitHub Actions makes CI/CD pipelines accessible and powerful. Here's how to set up automated deployments.Basic Workflow
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build and Deploy
run: |
docker build -t myapp .
docker push myapp:latest
Key Concepts
Triggers
Control when workflows run — push, pull_request, schedule, or manual dispatch.Jobs and Steps
Each job runs on a fresh runner. Steps within a job share the same environment.Secrets
Store sensitive data like SSH keys and API tokens in GitHub Secrets.Multi-Environment Deployments
deploy-staging:
environment: staging
runs-on: ubuntu-latest
steps:
- run: deploy to staging
deploy-production:
needs: deploy-staging
environment: production
runs-on: ubuntu-latest
steps:
- run: deploy to production
Best Practices
- Cache dependencies to speed up builds
- Use matrix builds for testing across versions
- Implement approval gates for production
- Monitor workflow run times and costs
Loading comments...