Skip to content

FiniteStateInc/third-party-scan-ado

Repository files navigation

Finite State third-party-upload Extension for Azure DevOps

Finite state logo finitestate.io

The Finite State third-party-upload Extension allows you to easily integrate the Finite State Platform into your Azure Devops Pipeline.

Here you will find how this extension was built and how to release a new version of the extension.

Our extension executes a js file. In that file we execute our python script that uploads the binary other functionality like adding a comment to a PR.

You can see the extension documentation itself here

Release a new Version

Requirements:

Run make bump to build a new vsix file to upload to the Azure Markeplace.

Run test in local environment

You have different commands in Makefile inside Tasks/thirdPartyUpload folder.

make install-all  # mainly it install python and js dependencies
make test-all     # run js and python tests

Package and publish extension

Update extension

If you want to update the tasks, you will first need to raise the version of the extension, otherwise the marketplace won’t let you publish it. To do this, simply edit the “version” attribute in the vss-extension.json file, and make sure it is higher than the previous one. When you run make publish this is done automatically.

You will also need to update the version of the tasks and change the version attribute, which corresponds with the ‘Task version’ dropdown option in the build or release pipeline.

When you raise the ‘Major’ attribute, it will be applied to newly added tasks and enable the option to update existing tasks (by choosing the newer version in the dropdown options). Meanwhile, the ‘Minor’ attribute will automatically update them, and ‘Patch’ is generally reserved for minor bug fixes. One thing to keep in mind, if your update has some breaking changes, it is recommended to update the ‘Major’ version, because it won’t automatically update every all that are already leveraging the extension. This way, those pipelines won’t throw any errors if anything does break.