How To Deploy Your Application To Azure Using GitHub Actions | CI/CD Pipeline
HTML-код
- Опубликовано: 28 май 2024
- ☄️ Master the Modular Monolith Architecture: bit.ly/3SXlzSt
📌 Accelerate your Clean Architecture skills: bit.ly/3PupkOJ
🚀 Support me on Patreon to access the source code: / milanjovanovic
In this video, I'm going to show you how you can deploy your application to Azure, in an Azure App Service instance, using GitHub Actions. We're going to implement the deployment pipeline as a GitHub Action from scratch. And I'll also show you how to set up the Azure App Service instance.
Source code:
github.com/m-jovanovic/ci-cd-...
Join my weekly .NET newsletter:
www.milanjovanovic.tech
Read my Blog here:
www.milanjovanovic.tech/blog
Subscribe for more:
ruclips.net/user/MilanJovano...
Chapters
0:00 What we are deploying
1:20 Adding the GitHub Action
5:00 Triggering the CI/CD Pipeline
6:50 Azure App Service setup
8:40 Deploying to Azure from GitHub Action - Наука
Join more than *4100+ .NET engineers* already reading my weekly newsletter.
One actionable tip, every Saturday, less than a 5-minute read:
www.milanjovanovic.tech/
Hi Milan, I discovered your channel a few weeks ago and am totally enthusiastic. That's why I immediately became a Patreon member to support your excellent work - and of course to have access to your source code 😉.
With your targeted and concise way you fill exactly the knowledge gaps that certainly very many of us (I mean experienced developers especially in enterprise area) currently - still - have, without going to the absolute beginner level every time. I know what I am talking about, I have been in the business for over 30 years.
Above all, this saves numerous trial & error rounds and thus precious time. You get a very good foundation from which you can then go deeper.
Your short videos were in many cases already much more valuable and substantial for me than many an hour-long tutorial in Pluralsight, Udemy or here in RUclips.
It assumes a lot of knowledge and also practical experience. But that's what makes your content so valuable for many developers. Straight to the point, the essential knowledge, perfect! Every minute of your videos is worth its weight in gold. Your speed is no problem at all, thanks to RUclips. 😊
Please keep doing exactly what you're doing. I'm already really looking forward to what's to come. It will be a feast!
Cheers, Felix.
Hi Felix,
I had a rough day yesterday and saw your comment in the evening. It's an understatement to say that you cheered me up a little. 😊
I really appreciate your kind words, and promise to keep on making good videos (and improving with each one).
Stay awesome!
Love your videos. It's great that you put the Azure topic on the table. Wait for more!
Thanks, Radek. Is Azure your primary choice?
@@MilanJovanovicTech if you think about a cloud provider - yes, Azure is my primary choice
the best explanation about CI/CD Pipeline using GitHub Actions! Thanks Milan 🙂
My pleasure!
Nice Video Millan. Following the same series, how about next on CI/CD using Azure DevOps with different environments and their respective appsettings/keyvaults configurations? 😊😊
I'll think about it, not a bad idea
I would welcome something similar or just general guidance on dealing with multiple environments and how this is managed within the code / config
Another comprehensive but concise tutorial - thanks
Glad you liked it 😁
odličan video Milane - kratko, jasno i efikasno. 🚀
Hvala puno! :)
Awesome video!!! Clear and very easy to follow and to the point. 3 thumbs up 🙂
Thank you so much! 😊
@@MilanJovanovicTech Is there a way to create an azure publish profile from the yaml file directly rather than first creating it in azure and then using it in yaml?
Awesome comprehensive video. Thanks for the information. 👏👏👏
Glad it was helpful!
it is a tip-top explanation, thanks a bunch Milan!
Thanks Christian!
It was very very good video. Thank you Milan !
Glad you liked it!
Thank you so much Milan I need it because today I have setup Azure server for the API and was thinking how to use CI/CD pipline.
🥰
If you're using GitHub, it should be straightforward 😁
Keep up the good work man, great job ❤️❤️
Glad you like it!
Very useful video. Def saved for later use, will come in handy I am sure.
Automation is very fun 😁
This is gold. Thanks for the explanation. You saved me a lot of time.
Check the blog post in the description for the sample YML file. Cheers! 😁
A video about testing + code coverage report configuration in CI/CD pipeline would be delightful!
I did something with CodeCov because it was free, so might do that 🤔
I completely agree. Shall we look forward to it?
I really like your enthusiasm ! thank you !
Sure thing, glad you enjoyed this one 😁
Great informative video! To the point. thanks.
You're more than welcome 😁
Thanks for this video Milan
Don't mention it 😁
Awesome video as always. Good job
Thank you! 😁
I was just thinking to create a video on the same subject and I found yours. Now I gave up my idea as I think you created an even better from the one I could have created.
There's never enough videos on a topic, trust me!
Thanks, your config worked
Glad I could help :)
Thanks Milan!
Sure thing :)
Thank you for this video
Glad you enjoyed it!
Definitely this will force me to move my Github projects to Azure :)
Azure is great if you're using .NET
i like your videos , you have a great content , i consider you as my mentor
It is an honor :)
Milan, amazing work. Can you let me know if you are planning to have that video where you cover the unit tests and coverage bits as well using github actions. Again, amazing work.
Thanks for reminding me about that, I'll work on something :)
Great 🚀🚀! Git hub code will always helpful to all .
need project using clean architecture sessions A to Z with CI/CD. 😁
Care to explain more what kind of project you want to see?
Exceptional videos.
Would like to request for higher resolution for future videos 🙂
What do you mean by higher resolution? 🤔
It's 1920x1080
@@MilanJovanovicTech
2K & 4K
I do understand export time will be very high.
If it's too much of time consuming then we don't mind 1080p, your content is more important than the resolution 🙂
hi, will love to see the step where you add the test too. thanks
Covering that in a future video
Another banger video! You should do a Azure Repos version! nonetheless good work !
Bangers is all I produce 😂
I have to add Azure DevOps to the list it seems, it was asked more than once.
Awesome Video !! keep it up ..
Thanks, will do!
Thank you!!
Any time! 😁
Thanks for this Video. I subscribed and liked your video. Do you have one for running tests and seeing the coverage as you mentioned in this video?
I recorded one this week, but it won't come out until a few weeks from now :) Though I was using the ReSharper code coverage tool.
You can also use SonarQube for that.
I use Resharper and DotCover for seeing that in the IDE. I wanted to be able to see it in some report on the build so therefore in the github action workflow running the tests on a PR for example.
Thank you for your videos. They are simple and to the point so that you get something working and then just develop from there according to your needs.
@@valy_berea I built something like that before with CodeCov 😁 I'll make a video about it then!
Awesome same as always 👍
Thanks again!
Hi @MilanJovanovicTech That is a really good video. Love to see it
Wouldn't it work exactly the same?
Great 👍👍
Thank you 👍
nice one
Thanks!
Hi, is it possible to automate the step to get publish profile. Manually adding the publish profile is tedious task if we have alot of web apps
I'm not sure, to be honest. I don't know a way out of the box.
Hi Milan!
Can U video about what is your choice about implementing background task ?
Have U ever use hangfire ?
I have a video about the Outbox pattern using Quartz, check that out
Hello Milan, i need a little help about deployment.
I have a dotnet web api project which I use docker compose for deploymet. In compose file i defined my app and sql server db as containers. I wanna deploy this project on Azure via github actions. How workflow file should be defined ? Thanks
Not really sure
Hi Milan, thank you for the awesome toutrials, I almost watched all your youtube videos in a couple days
I have a question on CI/CD, can I apply the same steps to publish web API project into virual machine and that app hosted on IIS?
Currently, I'm publishing the app manually using visual studio, can I apply the same GitHub aciton to publish it instead of manually doing it, because visual studios uses publish profile as well to publish into VM
Thank you, keep being awesome
The last step is using a GitHub action the deploy to Azure.
You will need something different to deploy to IIS. Maybe this can be helpful:
devopsjournal.io/blog/2020/11/24/github-actions-with-private-runner-iis
@@MilanJovanovicTech Thank you appreciate your effort, will check it out
Hello friend, conrgrats for your video.
I followed this one, and i get an error, such as:
Error: Deployment Failed with Error: Error: No package found with specified pattern: ./publish
How to know What the specifict path is? how to recognize it?
I hope your answer,
Looks like something with the .yml file?
dotnet publish is expecting something in the ./publish path, but there isn't anything there.
@@MilanJovanovicTech Hello Milan, thanks for your quick response. I could resolved that.
Milan in some part of your video, you explained about the second part of video. This part is relationed to testing project.
Can you share me that video. On the other hands, you have some video about setup database?
I hope your answers.
Regards,
Nelson
Hi Milan is it possible to deploy a .NET core Web API built with clean architecture without using CI/CD Pipeline?
Yeah, deploy it manually
would love to add deployment through docker images part as well
That'd be interesting for a future video
@@MilanJovanovicTech just waiting whether you will use self-hosted runner or some external action like "appleboy/ssh-action". plus please cover SSH deployment instead of azure app service
Hello Milan, this is really a gem and I followed your video and went very close to the deployment on Azure. I watched your video very carefully and when I go to download the publish profile from my Microsoft Azure account it showed a message that "Basic Authentication is disabled.". So kindly help me out with this. Thanks
No idea, to be honest. How is that possible if you're logged into Azure?
@@MilanJovanovicTech Yeah I figured out the issue and resolved it. Thanks for your instant reply.
Hi Milan, great video. I am building on the solution to include github secrets to create secure app accessible environment variables for my firebase config and more. Struggling to get the variables to flow through - have you done anything similar?
Yeah. They should be accessible via {{secrets.YOUR_SECRET_NAME}}
What do you prefer? Publishing as "code" or a docker container? I'm sure it's easier to develop locally using docker, but does it make a difference when deploying to azure?
You can deploy an image and run it inside a container
@@MilanJovanovicTech When would you decide to deploy an image instead of the code approach in the video? I know the advantages of docker when running locally, as well as deploying it to hosting services that don't have native .NET support, so you just spin up the container. But on azure?
how to separate them into different jobs publish and another implement? I tried to do it but I have an Error: Deployment Failed, Error: No package found with specified pattern: ./publish
What are we separating exactly?
@@MilanJovanovicTech Deployment
Hi Milan,
I really like your videos, Can you do the same for AWS ec2 (linux/windows) as well?
Perhaps, I'll see how to fit it in
Something were wrong with me, the azure function is deleting itself after the action is complete:(
How is that possible? 🤔
@@MilanJovanovicTech idk I try deploying with vsc and then with github actions and that's happened. And I did in that way because the GitHub actions doesn't finish as well with the .zip package
What ticketing system do you prefer?:D
Don't prefer any of them, but I've used Jira most often
Didn't smash the like button but Milan got the strength to finish the video anyway
Just joking, take my like ;-)
Thanks Marcus 🤣
I had a few sips of coffee, and that got me throuhh
thank you, save me
Sure thing :)
Hello guys! Am I the only one who gets an error saying "Deployment Failed, Error: Publish profile is invalid for app-name and slot-name provided." with this code? I'm pretty sure I configured everything the way Milan did. Cheers from Bosnia! ☺
The source code for this video is public: github.com/m-jovanovic/ci-cd-example
Did you add the publish profile as a secret?
@@MilanJovanovicTech I looked into the source code you kindly provided and followed your steps to a letter. I've read that the slug name plays some role in this so i added it as well ("production" seems to be the default). No amount of researching seems to help. Thank you for your response!
I have the same error and couldn't fix it ,can i have any help please
🚀
To the moon
Hi @Milan Jovanović
I would to ask if it is possible deploying multiple Service that are within one Solution. Do we use the same method that you have used here?
Yes, but you'll need separate Azure App Service instance + publish profiles in the build pipeline.
How to become a patreon member?
If you can't access the page, try using a VPN
Why not Azure DevOps CI/CD...
GitHub is my repository of choice, so it made sense to use GitHub Actions
I have tried this but won't work
What's not working?
@@MilanJovanovicTech when cicd runs it deploys whole code insted of its build/published items.
Getting this error when I hit the url: You do not have permission to view this directory or page. This is shown on chrome.
You mean the URL from the video? I turned it off.
@@MilanJovanovicTech No man! the url of azure service... 😥
Bro i had some probelms with "actions/webapps-deploy@v2". "azure/webapps-deploy@v2" works for me.
Typo