Azure DevOps release pipeline: Deploy a .NET application to IIS (CI/CD YAML tutorial)

Поделиться
HTML-код
  • Опубликовано: 26 дек 2024

Комментарии • 87

  • @BigRouch
    @BigRouch Год назад +24

    I cannot explain enough how this video is infinitely better than all of the Microsoft documentation combined. Great job. Thank you.

    • @RoundTheCode
      @RoundTheCode  Год назад +2

      Thanks for the comment BigRouch. Glad it benefited you.

  • @TerrenceFerguson
    @TerrenceFerguson 4 месяца назад +2

    I would like to echo the following comment:
    "I cannot explain enough how this video is infinitely better than all of the Microsoft documentation combined."
    It's a year later, and this is still true.
    Thank you for the work on this video.

  • @joehernandez3231
    @joehernandez3231 9 месяцев назад +2

    Great video! It's extremely helpful as I put together build and deploy pipelines at my current job. The explanation near the end about the Package location is also very much appreciated.

  • @jeffrdrama7984
    @jeffrdrama7984 2 месяца назад

    This is fantastic. Would be great to see a whole series on Azure DevOps as there's not a lot of it on your channel so far, plus some of it is slightly out of date (but still very useful!)

    • @RoundTheCode
      @RoundTheCode  Месяц назад

      Thanks for the idea. I will consider it.

  • @mattwren
    @mattwren 2 месяца назад

    Awesome video, really clear. Worked first time for me. Thank you.

  • @sheriffcrandy
    @sheriffcrandy 5 месяцев назад +1

    Why don't you use releases?

    • @RoundTheCode
      @RoundTheCode  5 месяцев назад +1

      Releases is the old way of doing it.

    • @sheriffcrandy
      @sheriffcrandy 5 месяцев назад

      @@RoundTheCode Maybe for small-scale projects. But for an Azure DevOps implementation housing 50+ large scale enterprise repos, I think standard release pipelines are the way to go. Did microsoft come out with any docs/statements recommending to use only pipelines, not releases anymore?

  • @idreesahmed2051
    @idreesahmed2051 Год назад +1

    6:51 Could you please tell why did defined the pool: vmImage: windows-latest ? in release pipeline

    • @RoundTheCode
      @RoundTheCode  Год назад +1

      Hi Idrees,
      Azure Pipelines have a number of virtual images which you can use when running your pipeline. You can see the list here:
      learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml
      Essentially, windows-latest will use the latest Windows Server operating system which at present is Windows Server 2022.

    • @qburanp
      @qburanp Год назад

      @@RoundTheCode but why if you don’t use this pool in the pipeline?

  • @khanfaizan05
    @khanfaizan05 8 месяцев назад

    Very nice.. very clear explanation.. loved it.. thank you very much ❤

  • @andrewbrady5839
    @andrewbrady5839 2 года назад +2

    Thanks very much for this. very good and clear tutorial!

    • @RoundTheCode
      @RoundTheCode  2 года назад

      You're welcome Andrew. Glad you found it useful.

  • @fieryscorpion
    @fieryscorpion Месяц назад

    This is great. Thank you!

  • @dinkar-singh
    @dinkar-singh 7 месяцев назад

    Your explanation is really good but at 10:30 you have used variables in two variations ${{ variable.name }} and $(variable.name). why is that? and whats the difference between them?

    • @RoundTheCode
      @RoundTheCode  7 месяцев назад

      I think it's because $(Pipeline.workspace) is a predefined variable

  • @piriyaie
    @piriyaie Год назад

    Thank you sir for this great and easy understandable video! Thank you!

  • @androidsavior
    @androidsavior 11 месяцев назад

    at the end, will this only deploy the changed/new files or it will deploy the whole project on each github commit ?

    • @RoundTheCode
      @RoundTheCode  11 месяцев назад

      It will deploy the whole project.

  • @adminadmin-n4g1c
    @adminadmin-n4g1c Год назад +1

    thank you for your greats info, but i facing error when i run release pipeline ......
    /azure-pipelines-2.yml (Line: 14, Col: 18): Pipeline Resource buildPipeline Input Must be Valid.

    • @RoundTheCode
      @RoundTheCode  Год назад

      It might mean that you've used that alias on a previous pipeline. This happened me to very recently, so potentially changing the alias to something else and changing any other references from the previous alias within the YAML file may solve the issue.

    • @Andy-si1pl
      @Andy-si1pl Год назад

      I get the same. I changed it to buildPipeline1 but same thing.
      UPDATE I wrapped it in single quotes like this
      pipelines:
      - pipeline: 'MyPipelineAlias'
      and later on
      - checkout: none
      - download: 'MyPipelineAlias'
      and finally
      Package: '$(Pipeline.Workspace)\MyPipelineAlias\MyProject\MyProject.Subfolder'

    • @mateusnascimento8888
      @mateusnascimento8888 10 месяцев назад

      It happens, the project field inside the pipelines, is the name of the azure project, and not the api project name.

  • @mshahabfar
    @mshahabfar Год назад

    This video answered lots of my questions. If I want to set up a website on my local machine IIS and use Azure DevOps for CI/CD, should I have a valid IP for my local machine?

  • @yassineelkharmoudi5329
    @yassineelkharmoudi5329 Месяц назад

    where i can find the code of the yml file in the video.in the download sending by mail i cant find it.thanks in adavnce.

    • @RoundTheCode
      @RoundTheCode  Месяц назад

      They are in the root of the repo. The build pipeline is azure-pipelines.yml and the release pipeline is azure-pipelines-1.yml
      github.com/RoundTheCode/AzureTestProject/tree/main

  • @oloidhexasphericon5349
    @oloidhexasphericon5349 11 месяцев назад

    Is there a way to add App_Offline.htm in this script before doing a release ?
    Is there a general Azure devops YAML documentation available somewhere ? I can't seem to find it.

    • @RoundTheCode
      @RoundTheCode  11 месяцев назад

      Read this article:
      www.roundthecode.com/dotnet-tutorials/azure-devops-release-pipeline-dotnet-web-api-iis
      The "Deploy IIS website" section in the article includes an App_Offline.html flag in the YAML.

  • @Astynax777
    @Astynax777 Год назад

    This video helped me out a lot to locate the artifact. One question though: the title indicates it's a CI/CD tutorial, but your trigger for the release pipeline is "none". How do we wire it up to trigger after a successful build to make it truly a CD solution?

    • @RoundTheCode
      @RoundTheCode  Год назад

      This article should explain how to do that. In the resources, there is a 'trigger' option. That might be a way of triggering a resource after a resource.
      learn.microsoft.com/en-us/azure/devops/pipelines/process/pipeline-triggers?view=azure-devops

    • @gabrielligeiro1235
      @gabrielligeiro1235 11 месяцев назад

      basically, just add "trigger: true" here "resources:
      pipelines:
      - pipeline: 'BuildCustomName'
      project: 'YourAzureDevOpsProjectName'
      source: 'YourAzureDevOpsBuildPipelineName'
      branch: 'YourGitBrench'
      trigger: true"

  • @AG34273
    @AG34273 Год назад

    Great content! IISWebAppManagementOnMachineGroup has like 10 more required input properties. How did you get past not specifying them?

    • @AG34273
      @AG34273 Год назад +1

      never mind, it lets me save past the error/warning.

    • @RoundTheCode
      @RoundTheCode  Год назад

      Good that you found the content useful Ashish.

  • @osvaldofervio7809
    @osvaldofervio7809 9 месяцев назад

    Excellent video, I'm super stuck when I get to the step: "IISWebAppDeploymentOnMachineGroup"
    when the pipeline is running I get the following error: "##[error]Error: No package found with specified pattern.Check if the package mentioned in the task is published as an artifact in the build or a previous stage and downloaded in the current job."
    I really think I can't match the line you have
    Package: "Package: '$(Pipeline.Workspace)\buildPipeline\AzureTestProject\RoundTheCode.AzureTestProject'" from the .yaml
    could you advise me?

    • @RoundTheCode
      @RoundTheCode  9 месяцев назад

      I would need to see your YAML file.
      Fill out my contact form if you still need help:
      www.roundthecode.com/contact

  • @Mo-ef9yt
    @Mo-ef9yt 2 года назад

    Very nice video, thanks
    However will this procedure work if the website is hosted on a on-premis webserver that has IIS installed? Meaning that the website is not hosted on Azure.

    • @RoundTheCode
      @RoundTheCode  2 года назад +1

      Yes it will. As long as the Azure agent is installed on the server you're deploying to, it will work.

  • @ProDevelopmentPK
    @ProDevelopmentPK Год назад

    I got a noob question, Do you think this will work if my IIS Server is not on Azure Server but somewhere else like in my Personal Machine. Will the Agent be able to download the Artificats and Deploy ?

    • @RoundTheCode
      @RoundTheCode  Год назад

      Yes it will as long as it has a connection to the internet. In this demo, I downloaded the agent onto my personal machine to do the deploy.

  • @germansantiesteban8085
    @germansantiesteban8085 9 месяцев назад

    Great explanation. Thanks

  • @axelaceax
    @axelaceax Год назад

    Will this work if the agent is not on the same vm? My pipeline agent is on vm A and my iis server is on another vm B in azure.

    • @RoundTheCode
      @RoundTheCode  Год назад

      Yes that's fine. You can register agents and environments in Azure DevOps and these can be referenced in your YAML pipeline.

  • @parthibanparthi3029
    @parthibanparthi3029 5 месяцев назад

    Thanks very much for this video

  • @mrshodz
    @mrshodz Год назад +1

    Great Video.

  • @rohailabbaszaidi
    @rohailabbaszaidi Год назад

    Why did you NOT create release pipeline in RELEASES tab under Pipelines?

    • @RoundTheCode
      @RoundTheCode  Год назад +1

      Hi Rohail,
      This is where Azure DevOps can get a bit confusing. The releases tab is the old way of building pipelines. Microsoft seem to be encouraging users to use YAML pipelines which appear in the Pipelines tab.
      Took me ages to work that one out.

    • @Capt_stupid
      @Capt_stupid 8 месяцев назад

      @@RoundTheCode Yeah that s super confusing. Would be great i you have mentioned it in the video.

  • @joga_bonito_aro
    @joga_bonito_aro Месяц назад

    I don't get it. Why don't you use the pipelines from the 'releases' menu?

    • @RoundTheCode
      @RoundTheCode  Месяц назад

      That's the "old" way of doing it.

    • @joga_bonito_aro
      @joga_bonito_aro 27 дней назад

      @@RoundTheCode Then it's a weird naming convention chosen by M$ :D

  • @sandeepnarayana9150
    @sandeepnarayana9150 11 месяцев назад

    really very helpful video, Please help me with below error while installing azagent in azure vm.
    Exception calling "DownloadFile" with "2" argument(s): "Unable to connect to the remote server"
    At line:1 char:1303 and agentzip file is not downloading
    442 port is already
    Please suggest what are security settings that I need to check from vm side and Azure devops side?

    • @RoundTheCode
      @RoundTheCode  11 месяцев назад

      Where abouts is that happening? When you publish your .NET application?

  • @sibrenbouman5624
    @sibrenbouman5624 8 месяцев назад

    Hi, I'm getting the following error when trying to run:
    'The pipeline is not valid. Unable to resolve latest version for pipeline build-pipeline. This could be due to inaccessible pipeline or no version is available.'
    Google isn't helping me much. What could be the issue?

    • @RoundTheCode
      @RoundTheCode  8 месяцев назад

      Drop me a message on LinkedIn and attach the YAML file to the message.
      My LinkedIn page is www.roundthecode.com/linkedin

    • @sibrenbouman5624
      @sibrenbouman5624 8 месяцев назад

      @@RoundTheCode I've send you a message!

    • @RoundTheCode
      @RoundTheCode  8 месяцев назад

      I think you have two PublishBuildArtifacts@1 tasks in your build pipeline.

    • @sibrenbouman5624
      @sibrenbouman5624 8 месяцев назад

      @@RoundTheCode I did, but unfortunately removing one didn't fix it.

  • @patrickmathew9283
    @patrickmathew9283 Год назад

    Hi sir.. Thank you for the great video.. There is one question that how I can connect sql server project on azure devops

    • @RoundTheCode
      @RoundTheCode  Год назад

      Hi Patrick,
      With a SQL Server project, you can use the DACPAC file to generate any changes you need. There is more about it here:
      learn.microsoft.com/en-us/azure/devops/pipelines/targets/azure-sqldb?view=azure-devops&tabs=yaml

  • @naeemansari227
    @naeemansari227 2 года назад

    very nice explanation and content and I understand the flow and process.
    I'm trying to create environment on the Azure_DevOps.
    While I run the Shell Script on my server so I got bellow error
    "A connection attempt failed because the connected party did not properly respond after a period of time, or established
    connection failed because connected host has failed to respond.
    Failed to connect. Try again or ctrl-c to quit"

  • @parthibanparthi3029
    @parthibanparthi3029 5 месяцев назад

    How to create build Pipeline .yml

  • @jephrennaicker4584
    @jephrennaicker4584 Год назад

    very informative!

  • @bystronq
    @bystronq 2 года назад +1

    thank you 🎉

  • @udaynarasimharajukalidindi638
    @udaynarasimharajukalidindi638 2 года назад

    thanks

  • @johngelson2473
    @johngelson2473 2 года назад

    not so great. Not even remotely helpful for a beginner. lol

    • @RoundTheCode
      @RoundTheCode  2 года назад

      Sorry to hear that John. Did you checkout the full playlist as it introduces Azure DevOps, and shows you how to create a build pipeline
      ruclips.net/p/PLNLqfquXi7rsZlj3ZeA1GPMs2x73IINZ1

    • @patricksuchy5585
      @patricksuchy5585 2 года назад

      I'm a beginner and it helped me a ton with setting up my first CI/CD Pipeline to an IIS server. I don't think the instructor is the problem here. lol

    • @RoundTheCode
      @RoundTheCode  2 года назад

      @@patricksuchy5585 Thanks Patrick.

    • @idreesahmed2051
      @idreesahmed2051 Год назад

      Man learn Basics
      Then you will understand the whole thing
      I am in the same stage as you