# GitHub Actions Workflow (example)
# .github/workflows/main.yml

name: CI/CD

on:
  push:
    branches: [main]
    tags:
      - "v*"
  pull_request:
    branches: [main]
  schedule:
    - cron: "0 7 * * *"
  workflow_dispatch:
    inputs:
      environment:
        description: "Environment to deploy to"
        type: environment
        default: "test"

env:
  NODE_VERSION: 20

jobs:
  setup:
    name: "Setup"
    runs-on: ubuntu-latest
    steps:
      - use: actions/checkout@v3
      - uses: actions/setup-node@v3
        id: setup-node
        with: { node-version: "${{ env.NODE_VERSION }}", cache: "yarn" }
      - run: yarn install
        if: steps.setup-node.outputs.cache-hit != 'true'
      - run: 'echo "Step 1"'
      - run: 'echo "Step 2"'
  deploy-a:
    name: "Deploy A"
    needs: ["setup"]
    uses: ./.github/workflows/deploy-a.yml
  deploy-b:
    name: "Deploy B"
    needs: ["setup"]
    uses: ./.github/workflows/deploy-b.yml