Forum Discussion
Manual Input in Azure Pipeline
Hi Team,
May I know if it is possible to perform a manual input stage in a CICD pipeline before it undergo into a different stage? Such that I will supply the required parameters during the CICD execution and the run will be used on other stages of the pipeline.
Thanks,
Asher Manangan
2 Replies
- kaushalendra_kumarCopper Contributor
Yes, it's absolutely possible to include a manual input stage in a CI/CD pipeline. This is commonly done using approval gates or manual intervention steps where user input is required before proceeding to the next stage. Here's how it typically works depending on the CI/CD platform:
🛠 Common CI/CD Platforms & Manual Input Support
Azure DevOps
- Use the Manual Intervention task in release pipelines.
- You can also use environment approvals where a user must approve and optionally provide input before deployment continues.
GitHub Actions
- Use the workflow_dispatch event to trigger workflows manually with input parameters.
- Combine with inputs to allow users to specify values at runtime.
GitLab CI/CD
- Use when: manual in job definitions.
- You can also use trigger with dynamic parameters.
Jenkins
- Use the Input Step in pipelines (input directive in scripted or declarative pipelines).
- This pauses the pipeline and waits for user input.
Example: GitHub Actions Manual Input
name: Deploy with Manual Input on: workflow_dispatch: inputs: environment: description: 'Environment to deploy to' required: true default: 'staging' jobs: deploy: runs-on: ubuntu-latest steps: - name: Deploy to ${{ github.event.inputs.environment }} run: echo "Deploying to ${{ github.event.inputs.environment }}"
You can use the ManualValidation@1 task inside an agentless job like this:
jobs: - job: waitForInput displayName: 'Wait for manual input' pool: server timeoutInMinutes: 4320 # Optional: job timeout (e.g. 3 days) steps: - task: ManualValidation@1 inputs: notifyUsers: 'email address removed for privacy reasons' instructions: 'Please enter parameters and approve to continue.' onTimeout: 'reject' # Options: 'reject' or 'resume'
This will pause the pipeline and notify the specified users. Once approved, the pipeline continues to the next stage.
Passing Parameters to Later Stages
While the manual validation step itself doesn’t collect typed input directly, you can:
- Use pipeline variables or runtime parameters defined at the start of the run.
- Combine with approval gates or custom scripts to inject values before proceeding.
If you need true form-style input mid-pipeline, you might need to integrate with external tools (like a web form or Power Automate flow) that update pipeline variables via the Azure DevOps REST API.