GitHub Actions: CI/CD for People Who Actually Understand What It Does

GitHub Actions is GitHub’s built-in CI/CD (Continuous Integration/Continuous Deployment) system — it runs automated workflows triggered by events in your repository. Here is a clear explanation of what it does and how to use it practically.

What CI/CD Actually Means

Continuous Integration: every time code is pushed, automatically run tests to verify nothing is broken. Continuous Deployment: when tests pass on the main branch, automatically deploy the updated code to production. GitHub Actions automates both. Without it, you rely on developers remembering to run tests and manually deploying — which breaks down at scale and introduces human error.

A Basic Workflow

name: Test and Deploy
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      - run: npm ci
      - run: npm test

  deploy:
    needs: test
    runs-on: ubuntu-latest
    if: github.ref == 'refs/heads/main'
    steps:
      - uses: actions/checkout@v4
      - run: ./deploy.sh
        env:
          SERVER_KEY: ${{ secrets.SERVER_KEY }}

Key Concepts

Triggers (on:): push, pull_request, schedule (cron), workflow_dispatch (manual). Jobs: independent units that run in parallel by default; use needs: for sequential dependencies. Steps: individual commands within a job. Actions: reusable steps from the GitHub Marketplace (actions/checkout, actions/setup-python, etc.). Secrets: store API keys and credentials in repository secrets, access them via ${{ secrets.KEY_NAME }}.

Practical Uses Beyond Testing

Automatically publish npm packages on tag push. Run database migrations before deployment. Build and push Docker images. Send Slack notifications on deployment. Generate and publish documentation. Run security scans (Dependabot, CodeQL). These are all standard uses of GitHub Actions in professional development workflows.

上一篇 在德国骑自行车:如何像当地人一样出行
下一篇 GitHub Actions:为真正理解它的人介绍CI/CD