Azure separates the process of CI/CD using two pipelines build pipeline(CI) and release pipeline(CD)
In build pipeline you care about how to build and customize your artifact the way you want. For example if you have a spring boot application in your azure repo, you should make a task to jar your application in the resulted artifact. To create the tasks, you either add azure-pipelines.yml to your root directory in your repo or create the tasks using a task manager.
A release pipeline consist of several stages, each stage represent a scope. For example a test stage, deploy stage, notification stage, cleanup stage, etc.
Worth to mention, a release pipeline can be triggered either manually or by the latest generated build from the build pipeline. Also, you can add an approval pre the release pipeline.
this azure-pipelines.yml will print “Hello, World!” in the build pipeline logs then it will generate an artifact with the directory in it (cause the azure-pipeline.yml added to the root directory of the repo).
trigger: - main pool: vmImage: ubuntu-latest steps: - script: echo Hello, world! displayName: 'Run a one-line script' - publish: $(System.DefaultWorkingDirectory)/ artifact: App
after adding this file to your repo go to pipeline → New Pipeline → Azure Repo Git → select your repo → Existing Azure pipeline YAML file → Select the branch and the file → Run.
Now after creating your build pipeline go to Release → New → New Release Pipeline → Empty Job → name your stage → tasks → + sign on Agent Job → add the task you need and go from there.
here is an example of a command line task