Exploring CircleCI with Jenkins background, how do we trigger manual deployments

Hi…I have been using Jenkins all the while and trying to checkout CircleCI, i did some playing around in my dev orgs for simple deployments. Few questions came in, will be great if anyone can respond

  1. How can we trigger a deployment job manually - we had been using specific jobs like prod or UAT deployments with a manual trigger option so we can deploy when we are ready. But i see in CircleCI i cant find a manual trigger switch and everything seems to be triggered by git pushes
  2. In jenkins i used to show certain input screens to user to ask what type of deployments they would like to do, how much data would they like in the new sandbox. But in circleCI i dont see any option where you can show a user input web screen during a job run. Is it possible or i am not seeing it right?

You can trigger a build using the API
https://circleci.com/docs/2.0/api-job-trigger/
Or, as documented here, you can use git tags or manual approvals in/as your event triggers
https://circleci.com/docs/2.0/workflows/#git-tag-job-execution
But if you want a human to decide when to push a particular button, i’d recommend a workflow that starts itself when appropriate, but doesn’t do the deploy until manually approved.
(as to conditional builds, I’ve had luck using the API to look at past builds, git diff the current commit, and build only applicable jobs by running circleci-agent step halt if a job isn’t needed to gracefully end before building the section in question)

As to question 2, to my knowledge circle will run what’s in your config.yml and doesn’t have a space to accept arbitrary user input.
This information could be used as an external data source that gets imported in at runtime for example (curl cdn.company.tld/buildConfigs.json and read them into your process)
It can’t affect the circle layer which is compiled down at trigger time, but it can affect your code running inside.

All that to say Circle is opinionated towards jobs that run themselves, and not all concepts from systems like Bamboo/Jenkins map cleanly onto the Circle way of doing things. But that comes with some big wins like auto-scaling dockerized build environments.

Yes, an approval step sounds like a good fit here. I’ve not used them myself, but I’ve seen them mentioned from time to time in the forum. I imagine they are detailed in the docs.