Publish Doxygen docs to Azure DevOps - azure-devops

Our release pipeline is generating some HTML docs (currently via Doxygen) every time a PR is merged to master.
As we use Azure Dev Ops it would be nice to publish the docs there (in the Wiki perhaps?).
What is the easiest/most proper way to do that?

In azure Dev Ops you can publish a wiki from git files. See:
https://learn.microsoft.com/en-us/azure/devops/project/wiki/publish-repo-to-wiki?view=azure-devops&tabs=browser#publish-a-git-repository-to-a-wiki-1
This would require to know up front the files that will be created by doxygen so that they can be commited by your doxygen pipeline.

Related

How to Batch Convert Azure Pipelines YAML to Github Actions YAML?

I have Azure YAML pipelines that have been created long back and I am now looking into migrating my existing devops solutions form Azure to Github Actions.
How do I approach migrating / translating existing pipelines from Azure DevOps to Github Actions?
Manually translating each ADO Pipeline is not something that would be consider a feasible solution for the number of pipelines I have.
Reference Links:
Azure DevOps Pipelines: https://learn.microsoft.com/en-us/azure/devops/pipelines/yaml-schema/?view=azure-pipelines
Github Actions: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions
Simply put: I need to convert my existing ADO pipelines to Github Actions
I am thinking of building a tool to serve this purpose of converting Azure DevOps pipelines to Github Actions but need ideas on how to approach this problem.
From Leo Liu's answer, May 2022:
I am afraid there is no such out of box extension or tool to batch Convert Azure Pipelines YAML to Github Actions YAML at this moment.
Update:
Introducing GitHub Actions Importer (Nov. 2022)
We’ve launched a public preview of GitHub Actions Importer, which helps you forecast, plan, and automate migrations from your current CI/CD tool to GitHub Actions.
Doing individual migrations is relatively easy in isolation.
However, for those that have a large and established CI/CD footprint, having tooling available to assist with migrations is key to their ability to adopt Actions at scale.
In the time that we’ve been developing and using GitHub Actions Importer in its private preview form, we’ve encountered numerous customers that have thousands of pipelines—even in excess of 15K—in their legacy environments that need to be migrated.
GitHub Actions Importer is designed to help when manual migration is not feasible, such as when users have a large number of teams that depend on hundreds or thousands of workflows.
To learn more, see Automating migrations with GitHub Actions Importer and the announcement post on the GitHub blog.
Sign up here to request access to the public preview.
So check it out: it does list Azure DevOps in its Supported CI platforms.
How to Batch Convert Azure Pipelines YAML to Github Actions YAML?
I am afraid there is no such out of box extension or tool to batch Convert Azure Pipelines YAML to Github Actions YAML at this moment.
There is a tool to make migrations between Azure Pipelines YAML and GitHub Actions YAML easier for one YAML file at a time:
Convert Azure Pipelines YAML to GitHub Actions YAML
But the tool for batch convert doesn't seem to exist yet.

Upload Markdown files to Wiki as part of Azure DevOps Pipeline

As part of an Azure Pipeline to build a Python package and store it in Azure Artifacts I'm generating a lot of .md files from the docstrings as documentation for the package. I'd like to add a step to my pipeline to automatically upload those to the Azure DevOps Wiki. Is this possible? From the official documentation I could only find a way to do it manually from a folder in the repo.
I ended up cloning the wiki repository and subsequently adding and committing the generated files as part of the pipeline step.
You can use Rest Api to update Wiki pages: Pages.
Here you can find a sample with PowerShell: https://github.com/ashamrai/AzureDevOpsExtensions/blob/master/CustomPSTasks/UpdateWikiPage.ps1

'Centralized' wiki and repo in azure devops?

Living years in confluence+centralized git (bitbucket+github), recently coming to a small shop on MS azure devops, where the repo and wikis scattered between hundred of projects which impossible to find. Would it be a way to structure the azuredevops to make it more 'confluence' like?
Thanks
Would it be a way to structure the azuredevops to make it more 'confluence' like?
I am afraid there is no such a way to structure the azuredevops to make it more 'confluence'.
As we know, the Azure devops is a project-oriented product. Both the repo and the Wiki are based on one project. We can include multiple repo and wiki in a project, but cannot create a repo or wiki for multiple projects.
The workaround is that we could clone Wiki to the target project and Publish the code as wiki, you could check following thread for some more details:
Azure DevOps Wiki for multiple projects

How to manage the full Pull Request process in Visual Studio Code with Azure DevOps

I was trying to have a full change from the commit to the pull-request/review process in a Azure DevOps repo with Visual Studio Code.
All good till the point where I have to create a Pull Request.
I didn't find an embedded way to do it.
There is a plugin Pull Requests for Azure Devops but it seems to be not maintained anymore.
Do you know any other good way to do it? Or may be Microsoft can invest in this important feature?
In our team, we started using the Azure CLI but found it too verbose to be practical. We also wanted to have a similar API to the GitHub CLI.
To fix this, we developed doing-cli, which is essentially a wrapper around the Azure CLI with a feel of the GitHub CLI.
A typical workflow for us is:
doing list to see open work items
doing issue create <issue title> to create a new work item
doing pr create <issue number> to create a branch and a PR based on an existing work item
Our company requires that all PRs are linked to a work item. But sometimes you want to fix things quickly, without having to always create a new work item, create a new branch, link them and open a PR. So we implemented doing workon <title> which will do all these steps for you, as well as checkout the newly created branch.
There used to be an extension, but it got pulled.
When you install the azure cli and the devops extension and then create a pull request from the terminal:
az extension add --name azure-devops
az devops configure --defaults organization=https://dev.azure.com/contoso project=ContosoWebApp
az devops pr create --repository MyRepo --open --source-branch branch-name
That last command needs 2 parameters that can be teased out of the context in a repo folder, that way you can easily alias this to a generic command.
Very few people were uring the Azure Repos and PR for Azure DevOps extensions. And most of Microsoft's investments are in GitHub.
As suggested by Jessehouwing's answer, you can create pull requests using Azure CLI.
In addition, you can also use the REST API Pull Requests - Create:
POST https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/pullrequests?api-version=6.0
Here is an example of the request body:
{
"sourceRefName": "refs/heads/npaulk/my_work",
"targetRefName": "refs/heads/new_feature",
"title": "A new feature",
"description": "Adding a new feature"
}

Does TFS has releases tab like we have at GitHub Releases

I am looking for hosting .exe files in Azure Devops. It seems to don't have feature similar to how we host executable or build files in GitHub for other people to download. Do we have such kind of feature to host the executables and have the latest commit tagged?
You can try publishing the executable or build files as Build Artifacts in Azure devops build pipeline.
You can create a pipeline in azure devops and using Publish build artifacts task to store the executable or build files in azure pipeline
See example here to create a classic azure pipeline. See Here for yaml pipeline example.
When you run the pipeline. You will see the commit hash and the files uploaded in the highlighted field of the build summary page shown in below screenshot. And you download the files from there.
You can retain this artifacts by Clicking retain in the pipeline run. See below
You can also change the retention policy for your pipeline. See here for more information.
Go the Project settings page-->Settings under Pipeline. See below: