You can use GitVersion (Mainline Development) with Azure DevOps pipeline (using PR templates) to create semantic versions for the artifacts. This works well with Basic Merge type Pull Request.