“Conflicting pipeline parameters.” at continuation step when pipeline is triggered via UI

Hey. I want to have option to manual trigger builds with UI when I am using dynamic config.
I have monorepo with X apps but I’m simplifying the config here.
So here’s the .circleci/config.yml:

version: 2.1
setup: true

parameters:
  build:
    type: boolean
    default: false

orbs:
  path-filtering: circleci/path-filtering@1.2.0

workflows:
  select-builds:
    when:
      not: << pipeline.parameters.build >>
    jobs:
      - path-filtering/filter:
          base-revision: master
          config-path: .circleci/no-updates.yml
          mapping: |
            .* config-commands true .circleci/config.commands.yml
            .* config-common-jobs true .circleci/config.common.jobs.yml
            .* config-executors true .circleci/config.executors.yml
            code/.* build true .circleci/workflow.yml

  manual-build:
    when: << pipeline.parameters.build >>
    jobs:
      - path-filtering/filter:
          base-revision: master
          config-path: .circleci/no-updates.yml
          mapping: |
            .* config-commands true .circleci/config.commands.yml
            .* config-common-jobs true .circleci/config.common.jobs.yml
            .* config-executors true .circleci/config.executors.yml
            .* build << pipeline.parameters.build >> .circleci/workflow.yml

And in my .circleci/workflow.yml I also have build parameter as without it the whole thing fails.

---
version: 2.1

parameters:
  build:
    type: boolean
    default: false

orbs:
  aws-cli: circleci/aws-cli@5.2.0
  aws-ecr: circleci/aws-ecr@9.5.0

jobs:
workflows:

This workflow works when there is a new push to repository without any issues.
But when I am using manual trigger with UI I get

{"message":"Conflicting pipeline parameters."}

Is there any reason why this is happening ? Is there any option to fix this ?

Oh and I tried to change the name in config.yml to build-ui or something but then I get error in CircleCI Unexpected argument(s): build-ui.

So just in case if someone is looking for a similar solution here’s what will work.
With this template you can split one huge config into smaller chunks. And you should be able to trigger builds with UI and/or over API calls.

version: 2.1
setup: true

parameters:
  build
    type: boolean
    default: false

orbs:
  path-filtering: circleci/path-filtering@1.2.0
  continuation: circleci/continuation@1.1.0

jobs:
  manual-build:
    parameters:
      mapping:
        type: string
    docker:
      - image: cimg/python:3.12
    resource_class: large
    steps:
      - checkout
      - path-filtering/set-parameters:
          base-revision: master
          mapping: << parameters.mapping >>
      - path-filtering/generate-config:
          generated-config-path: "/tmp/generated-config.yml"
      - continuation/continue:
          configuration_path: "/tmp/generated-config.yml"

workflows:
  push-trigger:
    when:
      not: << pipeline.parameters.build >>
    jobs:
      - path-filtering/filter:
          base-revision: master
          config-path: .circleci/no-updates.yml
          mapping: |
            .* config-commands true .circleci/config.commands.yml
            .* config-common-jobs true .circleci/config.common.jobs.yml
            .* config-executors true .circleci/config.executors.yml
            app/.* build true .circleci/workflow.yml

  manual-trigger:
    when: << pipeline.parameters.build >>
    jobs:
      - manual-build:
          mapping: |
            .* config-commands true .circleci/config.commands.yml
            .* config-common-jobs true .circleci/config.common.jobs.yml
            .* config-executors true .circleci/config.executors.yml
            .* build << pipeline.parameters.build >> .circleci/workflow.yml
2 Likes

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.