workflows:
  node-multi-build:
    jobs:
      - gally
      - test-node-v20x:
          requires:
            - gally
      - test-node-v20x-lib:
          requires:
            - gally
      - test-node-v22:
          requires:
            - gally
      - deploy-local:
          context: ${projectName}-local
          <<<:
            - ${file(^/workflow/filter.yml), branch=dev}
      - deploy-dev:
          context: ${projectName}-dev
          <<<:
            - ${file(^/workflow/filter.yml), branch=dev}
            - requires:
                - deploy-local
      - deploy-stage:
          context: ${projectName}-stage
          <<<:
            - ${file(^/workflow/filter.yml), branch=stage}
      - deploy-prod:
          context: ${projectName}-prod
          <<<:
            - ${file(^/workflow/filter.yml), branch=master}


version: 2.1
jobs:
  gally:
    ${file(^/jobs/gally.yml)}
  test-node-v20x:
    ${file(^/jobs/test.yml), image=public.ecr.aws/sam/build-nodejs22.x}
  test-node-v20x-lib:
    ${file(^/jobs/lib-test.yml), image=public.ecr.aws/sam/build-nodejs22.x}
  test-node-v22:
    ${file(^/jobs/test.yml), image=cimg/node:22.13}
  deploy-local:
    ${file(^/jobs/deploy.yml), env=local}
  deploy-dev:
    ${file(^/jobs/deploy.yml), env=dev}
  deploy-stage:
    ${file(^/jobs/deploy.yml), env=stage}
  deploy-prod:
    ${file(^/jobs/deploy.yml), env=prod}

