Labs ICT
โญ Pro Login

GitHub Actions

Workflow automation directly within GitHub repositories

GitHub Actions

GitHub Actions is a CI/CD platform built into GitHub. It automates workflows triggered by repository events like pushes, pull requests, and releases.

Workflow Structure


  .github/workflows/ci.yml
  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  โ”‚ name: CI Pipeline                    โ”‚
  โ”‚ on: [push, pull_request]            โ”‚
  โ”‚                                      โ”‚
  โ”‚ jobs:                                โ”‚
  โ”‚   build-and-test:                    โ”‚
  โ”‚     runs-on: ubuntu-latest          โ”‚
  โ”‚     steps:                           โ”‚
  โ”‚       - uses: actions/checkout@v4   โ”‚
  โ”‚       - uses: actions/setup-node@v4 โ”‚
  โ”‚       - run: npm install            โ”‚
  โ”‚       - run: npm test               โ”‚
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Complete Workflow Example


  name: Deploy Application

  on:
    push:
      branches: [main]

  jobs:
    build:
      runs-on: ubuntu-latest
      steps:
        - uses: actions/checkout@v4

        - name: Setup Node.js
          uses: actions/setup-node@v4
          with:
            node-version: '20'

        - name: Install dependencies
          run: npm ci

        - name: Run tests
          run: npm test

        - name: Build
          run: npm run build

        - name: Deploy to AWS
          if: success()
          env:
            AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
            AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          run: |
            aws s3 sync ./dist s3://my-bucket
            aws cloudfront create-invalidation \
              --distribution-id ${{ secrets.CF_DIST_ID }} --paths "/*"

Key Features

  • Marketplace โ€” Thousands of reusable actions (setup-node, deploy-to-aws, etc.)
  • Secrets management โ€” Securely store API keys and tokens
  • Matrix builds โ€” Test across multiple OS/versions simultaneously
  • Reusable workflows โ€” Share pipeline logic across repositories
  • Self-hosted runners โ€” Run on your own infrastructure

๐Ÿงช Quick Quiz

GitHub Actions workflows are defined in which directory?