Hello,
I am pretty sure I am doing something wrong here - I created child pipelines to publish to Dev/QA/Live, but I noticed when I am running several pipelines, at the max number of concurrent pipelines, the child pipelines end up being blocked (marked as pending).
Is there a way to detect there aren’t enough resources to run the parent and the child pipeline before the parent runs?
Here is a sample of my yaml:
version: '1.0'
stages:
  - init
  - test
  - build
  - deploy
steps:
  main_clone:
    title: Clone repository
    stage: init
    type: git-clone
    repo: '${{CF_REPO_OWNER}}/${{CF_REPO_NAME}}'
    revision: '${{CF_REVISION}}'
  init_vars:
    title: Initialize variables
    stage: init
    image: alpine:latest
    commands:
    - lowerBuildConfigName=`echo ${{PROJECT_NAME}} | tr '[:upper:]' '[:lower:]'`
    - cf_export PROJECT_NAME_LOWER=$lowerBuildConfigName
    - cf_export HELM_CHART_PATH='services/${{PROJECT_NAME}}/.helm/'$lowerBuildConfigName
  warning_count:
    title: Warning report
    stage: test
    image: mcr.microsoft.com/dotnet/core/sdk:2.2
    working_directory: services/${{PROJECT_NAME}}/${{PROJECT_NAME}}
    commands:
    - dotnet build /flp:warningsonly /flp:logfile=warnings.log --no-incremental
    - cf_export WARNING_COUNT=`wc -l < warnings.log`
  test_helm:
    title: Helm Lint
    stage: test
    image: codefresh/cfstep-helm:3.2.3
    working_directory: ${{HELM_CHART_PATH}}
    commands:
    # Connect helm to Codefresh Helm repo
    - export ACTION=auth
    - source /opt/bin/release_chart
    - helm repo add default ${{CF_CTX_CF_HELM_DEFAULT_URL}}
    # Test the chart
    - helm dependency update .
    - helm lint --set global.env=Dev .
  build_dockerfile:
    title: Building Dockerfile
    stage: build
    type: build
    buildkit: true
    image_name: ${{PROJECT_NAME_LOWER}}
    working_directory: services/${{PROJECT_NAME}}
    tag: '${{CF_BRANCH_TAG_NORMALIZED}}-${{CF_SHORT_REVISION}}'
    dockerfile: Dockerfile
    target: production
    build_arguments:
      - PROJECT_NAME=${{PROJECT_NAME}}
    disable_push: true
  push_docker_file:
    title: Pushing image to Google Docker registry
    stage: build
    type: push
    candidate: ${{build_dockerfile}}
    tag: '${{CF_BRANCH_TAG_NORMALIZED}}-${{CF_SHORT_REVISION}}'
    registry: gcr
    when:
      steps:
      - name: build_dockerfile
  get_helm_version:
    title: Get Helm Version
    stage: build
    image: codefresh/cfstep-helm:3.2.3
    working_directory: ${{HELM_CHART_PATH}}
    commands:
    # Connect helm to Codefresh Helm repo
    - export ACTION=auth
    - source /opt/bin/release_chart
    - helm repo add default ${{CF_CTX_CF_HELM_DEFAULT_URL}}
    # Get the current version of this chart in the Codefresh Helm repo
    - export CURRENT_CHART_VERSION=`helm search repo default/${{PROJECT_NAME_LOWER}} | awk 'FNR==2{print $2}'`
    - echo ${CURRENT_CHART_VERSION}
    # Export the new version as an environment variable
    - cf_export NEW_CHART_VERSION=`echo "${CURRENT_CHART_VERSION}" | awk -F. '{$3 = $3 + 1; print (($1)?$1:1) "." (($2)?$2:0) "." $3}'`
    when:
      steps:
      - name: push_docker_file
  update_helm_version:
    title: Update Helm Chart Version
    stage: build
    image: gksoftware/yq
    working_directory: ${{HELM_CHART_PATH}}
    commands:
    # Update the chart version in the chart metadata
    - yq w -i Chart.yaml version ${NEW_CHART_VERSION}
    # Update the chart values with the image tag used to identify the container image built by this run of the pipeline
    - yq w -i values.yaml image.tag ${{CF_BRANCH_TAG_NORMALIZED}}-${{CF_SHORT_REVISION}}
    when:
      steps:
      - name: get_helm_version
  publish_helm:
    title: Publish Helm chart
    stage: build
    image: codefresh/cfstep-helm:3.2.3
    environment:
    - ACTION=push
    - CHART_REF=${{HELM_CHART_PATH}}
    when:
      steps:
      - name: update_helm_version
  deploy_to_dev:
    title: Deploy to ${{TARGET_ENVIRONMENT}}
    stage: deploy
    type: codefresh-run
    arguments:
      PIPELINE_ID: Shared/Deploy
      VARIABLE:
        - TARGET_ENVIRONMENT=${{TARGET_ENVIRONMENT}}
        - CHART_NAME=${{PROJECT_NAME_LOWER}}
        - CHART_VERSION=${{NEW_CHART_VERSION}}
        - CHANGE_MESSAGE=${{CF_SHORT_REVISION}}
    when:
      steps:
      - name: publish_helm
  approve_for_qa:
    title: Promote to QA?
    stage: deploy
    type: pending-approval
    when:
      condition:
        all:
          prevStepSucceeded: deploy_to_dev.result != 'failure'
          # If we are running a custom build to a dev environment, don't promote
          envIsTrunk: '"${{TARGET_ENVIRONMENT}}" == "Dev"'
  promote_to_qa:
    title: Deploying to QA
    stage: deploy
    type: codefresh-run
    arguments:
      PIPELINE_ID: Shared/Deploy
      VARIABLE:
        - TARGET_ENVIRONMENT=QA
        - CHART_NAME=${{PROJECT_NAME_LOWER}}
        - CHART_VERSION=${{NEW_CHART_VERSION}}
        - CHANGE_MESSAGE='Promotion from ${{TARGET_ENVIRONMENT}}'
    when:
      steps:
      - name: approve_for_qa
        on:
        - approved
  approve_for_staging:
    title: Promote to Staging?
    stage: deploy
    type: pending-approval
    when:
      steps:
      - name: promote_to_qa
            