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 ...
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 ...
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 ...
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 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:
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.
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 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 (...
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 ...
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 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: ...
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
I've had a similar issue with git commands in Azure Pipelines. The reason is that any commands that access the origin server, such as git push need to done by a user that has the credentials to do so. In your situation, your PowerShell script is running in the user context of Project Collection Build Service (yourProjectName) and it does not have the ...
My understanding of the variable groups is that you would create this to leverage the same variables across multiple pipelines. If you needed to update the value, you'd only have to update it on the library instead of updating it on dozens of pipelines. If you are only going to use the variable group on a single pipeline definition, variables groups appear ...
Steps for download are described here: How To Download Azure BLOB Storage Using Azure PowerShell. According to this article, you have to use the connection string from the Access keys page. You can create your custom secret variable (Variables) and save a connection string in your new variable. Then in your ps scripts you can reference to connection string (...
I would look into Azure Functions. Create a gate trigger and enable azure function after a successful release.
You can set up Branch Policies on your develop branch which requires a build to pass successfully before the Pull Request can be completed.
I have set this up for my team with great success; we very rarely will have a broken master branch. The PR does not run the main build, but instead runs a separate, slimmed down build that checks that the code compiles ...
This is a general issue with react apps that is independent of what CI/CD stack you use that is discussed at https://stackoverflow.com/questions/49975735/rendering-an-environment-variable-to-the-browser-in-a-react-js-redux-production
With the Azure family of CI/CD products it is expected you create a release artefact then release that same artefact into ...
Since on-premise TFS and the newly renamed Azure DevOps Server 2019 still have the concept of collections, which is the highest level of separation of data you can have (separate physical databases), you'd need to treat a code repo in Collection 1 as an external repository rather than try to discover it as a known internal repository.
You can do this in the ...
@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 ...