Modern Continuous Integration with Azure Pipelines - Edward Thomson

preview_player
Показать описание
CI builds shouldn't be relegated to an old desktop underneath a developers desk: modern software demands a modern build and release system.

Edward Thomson introduces a cloud-first way of thinking about your builds, taking advantage of containers for simpler, reproducible configuration of build environments, building and testing across more platforms with Docker and QEMU, leveraging GitHub Actions for automation and other strategies to keep your software project's quality high while keeping your costs and overhead low.

Check out more of our talks in the following links!

NDC Conferences
Рекомендации по теме
Комментарии
Автор

There's no denying that this was an impressive demonstration of powerful features.

Unfortunately as someone new to the azure devops platform, this didn't really address my learning curve at all. For example, yeseterday I created my first build and release pipeline. Super simple, just a dot net core console application which mediates between a couple of web APIs.

After about an hour of trial and error, I discovered that in addition to a dotnet restore step and a dotnet build step, I needed a dotnet publish step, and then a second publish step. Why? Still a mystery. The second publish was required for the build output to be available to a release pipeline, and the first publish was required to make the output available to the second publish. That's not at all senisble, and nothing I saw or read could explain this to me.

In the release pipeline I wanted to play with SDLC phase specific variables, so I created a "dev" variable group with a $(deploymentPath) variable. I then linked the group to the phase and looked at the yaml, which told me that I had an undefined variable which I should address in the variables tab. Which is where I had created it. So, that was confusing. I went home in frustration after an hour and a half of reading through documentation and trying various different things. Did if have to be $(variables.deploymentPath)? Nope. Maybe Nope. No autocomplete or drop down list of course.

I picked it up again this morning and tried creating a pipeline variable directly, without using a group. This worked. I deleted the pipeline variable and returned it to the original state, with the variable back in the group. Which now worked. Why? It's a complete mystery to me.

So, amazing demo, but I think there might be some more fundamental issues with pipeline bugs and pipeline documentation that you might want to address before making sure you have support for amiga 500 CI, OK?

allmhuran