Skip to content

Overview of Repo Structure

Richard Fennell edited this page Mar 20, 2018 · 1 revision

This repo contains a number of VSTS build extensions, some containing a single task, some with multiple tasks. Whether each extension should have been in their own repo is a valid question to ask, but for historic reasons I have ended up here and as I know people have forked this repo I don't want to introduce breaking changes if I can avoid it.

If I were starting this project again I would certainly look at YO VSTS to build structure. However, this project pre-dates the availability of this tool hence the structure I have

[root]
    .gitignore
    license.txt (GitHub files)
    readme.md (GitHub files)
    Extensions (Each extension has it's own folder)
        package.ps1 (packages all extensions)
        Extension 1
            vss-extension.json (manifest for extension)
            readme.md
            license.md
            images (for extension package)
                logo.png
                screenshot1.png
            Task 1 (PowerShell based)
                icon.png  (logo icon)
                task.json (manifest for task)
                mytask.ps1
                tasklibrary.psm1 (optional as needed) 
            Task 2 (Typescript based)
                package.json (NPM config)
                tsconfig.json (Typescript config)
                tslint.json (TSLint config)
                src
                    mytask.ts
                    tasklibrary.ts
                dist (temp folder .ts files transpiled into)
                task (folder .js files copied into during packaging, this the only folder in the package)
                    icon.png (logo icon)
                    task.json (manifest for task)
                test
                    test.ts 
    Tests (folder for Powershell Pester based tests*)
        Extensions
            Extension 1
                mytest.tests.ps1           

* The plan (Issue #202) is to move the tests folder out of the root into the various Powershell extension folders, so a similar structure to the Typescript based tasks for constancy and help the CI/CD process. This does require an alteration in the vss-extension.json to reflect the revised structure. The new structure would be:

Extension 1
    vss-extension.json (Edited for new paths)
    readme.md
    license.md
    images (for extension)
        logo.png
        screenshot1.png
    Task 1 (PowerShell based new layout)
        src
            icon.png
            task.json
            mytask.ps1
            tasklibrary.psm1 (optional as needed)
         test
            mytask.tests.ps1

This work will only be done as tasks are updated to add new features or fix bugs

Clone this wiki locally