In a modern hybrid cloud world we have to accept constant change as the norm. You can’t just build something and forget about it. You have to keep it up to date as newer tools/libraries appear. This is to at least address security issues, even if you don’t want to adopt the new features.
So I am expecting a degree of maintenance work on my Azure DevOps pipelines. However, this is becoming more awkward as many of the tasks used by Azure Pipelines, even ones from Microsoft, are themselves not being maintained.
As well as tasks that are running out of date versions of underlying tools, there also seems to be no end of them that when run report the following warning. A classic sign of a lack of maintenance as this guidance is a few years old:
##[warning]Task 'Some task' (1.2.3) is using deprecated task execution handler. The task should use the supported task-lib: https://aka.ms/tasklib
Because of this lack of maintenance, I am becoming more reticent to use tasks from the Azure DevOps Marketplace, especially if they are not from maintainers I trust. Rather I am starting to favour using simple PowerShell or Bash scripts to do the work. So I can control the versioning of the underlying tools.
In the past I would have written my own custom tasks to provide these wrapper functions, but of late it does not seem worth the effort.
So of late, it seems an approach of writing scripts and including them, with the tools they run, via a YAML Pipeline Repository Resource is just easier.
Am I alone in this change of approach?