Introduction
GitHub Actions is one of the most popular CI/CD tools today. This guide covers everything from basics to advanced techniques.
Basic Workflow Structure
name: CI/CD Pipeline
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '18'
- run: npm ci
- run: npm test
Matrix Builds
Test across multiple environments:
strategy:
matrix:
node-version: [16, 18, 20]
os: [ubuntu-latest, windows-latest]
Caching
Speed up builds with caching:
- uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
Reusable Workflows
Create reusable workflow:
# .github/workflows/reusable-test.yml
on:
workflow_call:
inputs:
node-version:
required: true
type: string
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node-version }}
- run: npm ci
- run: npm test
Security Scanning
- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@master
with:
scan-type: 'fs'
format: 'sarif'
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
Summary
Key points for GitHub Actions:
- Design proper trigger conditions
- Use matrix builds for multi-environment testing
- Leverage caching for faster builds
- Separate jobs for parallel execution
- Use environment protection for production
- Integrate security scanning
💡 Tool Recommendation: For managing multiple GitHub repositories' Actions configurations, check out FeishuAgent Orchestrator - a multi-agent collaboration framework for intelligent task scheduling.
Originally published on WD Tech Blog
Top comments (0)