I would love to get some clarity too maybe from a more authoritative source than myself (I'm sure I'm guilty of FUD too).
I've been looking to deploy to Azure using Kubernetes. I am similarly confused but I think that is because there isn't one clear path. I can't speak for Microsoft but their attitude to cloud seems to be they are happy to become "all ...
As suggested by @030, I have prepared two screenshots that show how to connect the .yml files with the build pipeline.
Rename the .yml file in the repository
Open the pipeline editor
Select the file from the dropdown
Select the in step 1 renamed *.yml file and click on save.
After the existing .yml is assigned, the pipeline works as before the renaming.
Very few people were viewing this thread, so afterwards I posted a duplicate question on Stack Overflow, and now contains the answer. Below is a copy of it ...
Finally, I found the problem. I wonder if this is a bug, or just poorly documented....(or maybe I just didn't interpret it correctly).
As per Leo Lui-MSFT's suggestion above (documented by ...
Infrastructure as code means that the infrastructure configuration is stored in a version control system (VCS). If changes will be applied, it is traceable who changed the code and when.
Although it is unclear to me what the aim is of your question, it is possible to use a continuous integration (CI) tool like, Jenkins, gitlab, circleci that pulls the code ...
This has been fixed in recent version of Azure DevOps. Currently you can easily rename or move the pipeline in the list of pipelines while clicking on 3 dots and select Rename/move
and change your location or move the pipeline
I noticed that the description for the filepath properties of the pack command is different than the descriptions in the test and publish commands:
Pattern to search for csproj or nuspec files to pack.
You can separate multiple patterns with a semicolon, and you can
make a pattern negative by prefixing it with '-:'. Example:
The best way to have AWS CLI tooling installed to your custom agent is by installing from Visual Studio Marketplace. AWS CLI is part of AWS Tools for Azure DevOps Service and Azure DevOps Server (the on-premise Azure DevOps) under the name of "AWS Tools for Microsoft Visual Studio Team Services".
Installing this AWS Tools will enable AWS tooling on CI (...
Yes, because Azure Pipelines can do what Jenkins does. However, you don't have to throw the baby out with the bathwater. Microsoft continues to position their platforms such that integrations can occur with existing installations of just about anything. Many orgs have huge investments in tooling that is difficult to change. Rather than taking an all-or-...
In answer to part 2 (maybe), it does seem like they're pitching it as an alternative to Jenkins, although there's plenty of documentation suggesting that it can all be used together (and here). When used with Jenkins though, it does seem to be more focussed on a deployment bridge. I was hoping that I could use it as a build agent with Jenkins as an ...
@Shayki's answer was a large portion of what I was looking for (thanks!), but I was eventually able to figure out a solution that met all of my requirements. It involves a less than ideal use of the Release Description to propagate state between jobs.
The updated flow diagram looks like this:
I was originally thinking of the conditional flow as an if else ...
I use separate pipeline for each app
you could use powershell task to restart IIS, but I dont think there is a way to do this without shutting down the website. You can also reconfigure website, so copy new code to location X, repoint website to location X, restart website. Then you can easily point it back if something fails and switch is almost ...
From what I can see you have done everything correctly, you have stored both the certificate material (i.e. the PFX) and the password for the PFX in a secure location that presumably no one else can access. Assuming you don't give anyone else permissions on your Azure tenant and you don't blindly accept pull requests that change azure-pipelines.yml then you ...
I also use the classic editor, and I have implemented this for our builds. My use case was that I have a set of common set of build/release scripts stored in their own repository, and I want the ability to bring them into the application builds that I am executing.
I created a custom Task Group with an Inline PowerShell script to do this:
# Reference: ...
You can create a Release Pipeline with a stage for every environment.
On each stage you can copy files, etc. and run tests against the environment.
If the test/stage succeeds, the pipeline goes ahead to the next stage.
Between the stages, you can configure that an authorized person has to approve the next step.
The screenshot below is a release pipeline of ...
You can create build pipeline triggers to trigger your builds based on branch along with path triggers. In your release pipeline, you can set triggers and filters to decide which artifacts to be deployed.
The stock Azure Pipelines app for Slack does not support that workflow of uploading artifacts to Slack. You could use this marketplace task and upload your release notes artifact with it.
Bonus points suggestion, if you are going down the release notes path I would take a look at using Richard Fennell's Generate Release Notes task in combination with the ...
Find is a command in Windows that does very different thing to find in a posix shell.
And that would be the error you would get if you ran the Windows find (usually Windows find is located at C:\Windows\System32\find.exe
As @yang-shen-msft notes on Stack Overflow, there doesn't appear to be a way to honor the MSDeploySkipRules defined in the csproj file. Instead, files and folders can be skipped by defining the Additional Arguments (AdditionalArguments) parameter of the Azure App Service Deploy (AzureRmWebAppDeployment) task, as discussed in another Stack Overflow answer.
Ok, after researching some more time, I've found this gem https://markheath.net/post/backup-restore-sql-database-azure-cli. In this article author uses az sql db export and az sql db import to save database into BACPAC and restore it back on the clean database. But here comes a pitfall - Azure CLI task v1.0 uses CMD so it's not easy to translate from Bash ...
Assuming that deploy to DEV and QA steps look a lot like your deploy to production-staging environments, put the code that does that work into a yaml template and take advantage of parameters to allow you to pass in differing environment settings for DEV, QA, and Staging-Production.
Then in one pipeline create a stage for each environment. The stage ...
If I understand your question, you want a single variable to have different values per stage. This same concept Octopus took a while to get right with being able to manage the variables. Currently that isn't a thing that is available in Azure devops. You can create a pipeline that Ned Flanders suggested but you would need to define the variable multiple ...
I'm not sure my approach is any "better". However, what I have done in the past was to use Table Storage or Cosmos DB to store the key-value pairs that needed to be persisted between each stage.
The general schema was:
I then created various wrappers for the SDK to access from PowerShell and MSBuild, this ...
You have two basic scenarios:
you have an Azure Pipelines agent running on the target machine
you have an SSH connection to the target machine
In the first case you just cp the file to the target location (given that the user running the agent has adequate permissions).
In the second case, you use a task like Copy Files Over SSH task to copy the file. For ...
These steps in the Azure DevOps docs may be helpful: Sign Your Mobile App.
Basically you should be able to generate your p12 and provisioning profile on a mac you control, and then using the "Install an Apple certificate/provisioning profile" tasks you can install the certs onto the mac agent for building. No UUID should be needed for the agent. Here's a ...
I managed to get Erik's approach working which is great.
I then wondered if I could simplify it so instead of deleting the content how about put each artifact in a sub folder of the $(Build.ArtifactStagingDirectory) So by just appending /Api or /App I could create specific publish folders that I could then push onto the azure pipeline.
You can then have as ...
Found the issue...
The documentation states that the "contribute" permission needs to be added to "Project Collection Build Service Accounts".
There is also an USER called ""Project Collection Build Service".
After explicitly adding the "Project Collection Build Service" user to be able to contribute it worked as expected!
Lets take this line by line:
My additions are added as comments.
# The branch you are building.
# The type of VM your code will run on.
#This ends up defining which webconfig file to use.
- script: dotnet restore
displayName: Restoring Dependencies