# to validate any changes
# use:
# circleci config process .circleci/config.yml > config_processed.yml
#
version: 2.1
parameters:
  pr_workflow:    # runs for every pull request.
    type: boolean
    default: true # by default pr workflow will get executed.
  release_workflow:
    type: boolean
    default: false
  release_command:
    type: string
    default: "echo no release command was specified" # release-tool specifies the real command.
executors:
  generic-executor:
    docker:
      - image: 'circleci/node:latest'


jobs:
  ExecuteRelease:
    executor: generic-executor
    steps:
      - checkout
      - run: npm install
      - run: << pipeline.parameters.release_command >>
  PrJob:
    executor: generic-executor
    steps:
      - run: echo This is a placeholder for PR job
  ExecuteReleaseDummy:
    executor: generic-executor
    steps:
      - run: echo Will execute "<< pipeline.parameters.release_command >>"


workflows:
  version: 2
  PR_Workflow:
    when: << pipeline.parameters.pr_workflow >>
    jobs:
      - PrJob
  Release_Workflow:
    when: << pipeline.parameters.release_workflow >>
    jobs:
      - ExecuteReleaseDummy
      - hold:
          type: approval
          requires: [ExecuteReleaseDummy]
      - ExecuteRelease:
          context: sdk_js
          requires: [hold]
