9 Commits
v0.4 ... v0.6

Author SHA1 Message Date
Artur Stolear
4090f70509 updated README with the new actions paths 2020-01-24 16:21:04 +02:00
Artur Stolear
5f2a8b7486 move the github actions to separate folders within tool folder 2020-01-24 15:01:23 +02:00
Joseph Petersen
9a0c41862a update basic example to use actions/checkout@v2 2020-01-24 11:30:24 +02:00
dependabot-preview[bot]
12398bf4da Bump @actions/tool-cache from 1.3.0 to 1.3.1
Bumps [@actions/tool-cache](https://github.com/actions/toolkit/tree/HEAD/packages/tool-cache) from 1.3.0 to 1.3.1.
- [Release notes](https://github.com/actions/toolkit/releases)
- [Changelog](https://github.com/actions/toolkit/blob/master/packages/tool-cache/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/tool-cache)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-24 10:32:25 +02:00
dependabot-preview[bot]
969586f961 Bump @actions/core from 1.2.1 to 1.2.2
Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/actions/toolkit/releases)
- [Changelog](https://github.com/actions/toolkit/blob/master/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-24 10:31:39 +02:00
dependabot-preview[bot]
0df4aab1a8 Bump @types/node from 13.1.8 to 13.5.0
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 13.1.8 to 13.5.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-24 10:31:27 +02:00
dependabot-preview[bot]
ca2c8097d2 Bump tslint from 5.20.1 to 6.0.0
Bumps [tslint](https://github.com/palantir/tslint) from 5.20.1 to 6.0.0.
- [Release notes](https://github.com/palantir/tslint/releases)
- [Changelog](https://github.com/palantir/tslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/palantir/tslint/compare/5.20.1...6.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-24 10:29:19 +02:00
Artur Stolear
300345b152 added setup for gitreleasemanager 2020-01-23 21:22:05 +02:00
Artur Stolear
ef8d92d27a update the author to gittools for azure tasks 2020-01-23 18:05:57 +02:00
30 changed files with 38181 additions and 65 deletions

View File

@@ -19,11 +19,11 @@ jobs:
npm run build:azure
name: Build code
- name: Install GitVersion
uses: ./setup-gitversion
uses: ./gitversion/setup
with:
versionSpec: '5.1.2'
- name: Use GitVersion
id: gitversion # step id used as reference for output values
uses: ./execute-gitversion
uses: ./gitversion/execute
- run: |
echo "FullSemVer: ${{ steps.gitversion.outputs.fullSemVer }}"

View File

@@ -21,12 +21,12 @@ jobs:
npm run build:azure
name: Build code
- name: Install GitVersion
uses: ./setup-gitversion
uses: ./gitversion/setup
with:
versionSpec: '5.1.2'
- name: Use GitVersion
id: gitversion # step id used as reference for output values
uses: ./execute-gitversion
uses: ./gitversion/execute
- run: |
$date = Get-Date -format "yyMMddHHmm"
$version = "${{steps.gitversion.outputs.majorMinorPatch}}.$date"
@@ -35,8 +35,7 @@ jobs:
. .\dist\azure\update-version.ps1
update-manifest .\dist\azure\vss-extension.json -Version $version
update-task .\dist\azure\setup-gitversion\task.json -Major $major -Minor $minor
update-task .\dist\azure\execute-gitversion\task.json -Major $major -Minor $minor
dir .\dist\azure\**\task.json | % { update-task $_ -Major $major -Minor $minor }
npm run publish:azure -- --token ${{ secrets.TFX_TOKEN }}
shell: pwsh

View File

@@ -9,7 +9,7 @@ GitHub Actions that allow to install and use the GitVersion and GitReleaseManage
## Usage
See [setup](setup-gitversion/action.yml) and [usage](execute-gitversion/action.yml)
See [setup](gitversion/setup) and [usage](gitversion/execute/action.yml)
## Dependency
@@ -20,26 +20,24 @@ There are two step dependencies that are required in your workflow before runnin
- name: Checkout
uses: actions/checkout@v2
- name: Fetch all history for all tags and branches
run: |
git fetch --prune --unshallow
run: git fetch --prune --unshallow
```
Basic:
```yaml
steps:
- uses: actions/checkout@v1
- name: Fetch tags and master for GitVersion
run: |
git fetch --tags
git branch --create-reflog master origin/master
- name: Checkout
uses: actions/checkout@v2
- name: Fetch all history for all tags and branches
run: git fetch --prune --unshallow
- name: Install GitVersion
uses: gittools/actions/setup-gitversion@v0.3
uses: gittools/actions/gitversion/setup@v0.6
with:
versionSpec: '5.1.x'
- name: Use GitVersion
id: gitversion # step id used as reference for output values
uses: gittools/actions/execute-gitversion@v0.3
uses: gittools/actions/gitversion/execute@v0.6
- run: |
echo "Major: ${{ steps.gitversion.outputs.major }}"
echo "Minor: ${{ steps.gitversion.outputs.minor }}"

File diff suppressed because one or more lines are too long

View File

@@ -3,8 +3,8 @@
"name": "gitversion-execute",
"friendlyName": "Execute GitVersion Task",
"description": "Easy Semantic Versioning (http://semver.org) for projects using Git",
"author": "GitVersion Contributors",
"helpMarkDown": "See the [documentation](http://gitversion.readthedocs.org/en/latest/) for help",
"author": "GitTools Contributors",
"helpMarkDown": "See the [documentation](https://gitversion.net/docs/) for help",
"category": "Build",
"demands": [],
"version": {

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -0,0 +1,46 @@
{
"messages": {
"LIB_UnhandledEx": "Unhandled: %s",
"LIB_FailOnCode": "Failure return code: %d",
"LIB_MkdirFailed": "Unable to create directory '%s'. %s",
"LIB_MkdirFailedFileExists": "Unable to create directory '%s'. Conflicting file exists: '%s'",
"LIB_MkdirFailedInvalidDriveRoot": "Unable to create directory '%s'. Root directory does not exist: '%s'",
"LIB_MkdirFailedInvalidShare": "Unable to create directory '%s'. Unable to verify the directory exists: '%s'. If directory is a file share, please verify the share name is correct, the share is online, and the current process has permission to access the share.",
"LIB_MultilineSecret": "Secrets cannot contain multiple lines",
"LIB_ProcessError": "There was an error when attempting to execute the process '%s'. This may indicate the process failed to start. Error: %s",
"LIB_ProcessExitCode": "The process '%s' failed with exit code %s",
"LIB_ProcessStderr": "The process '%s' failed because one or more lines were written to the STDERR stream",
"LIB_ReturnCode": "Return code: %d",
"LIB_ResourceFileNotExist": "Resource file doesn\\'t exist: %s",
"LIB_ResourceFileAlreadySet": "Resource file has already set to: %s",
"LIB_ResourceFileNotSet": "Resource file haven\\'t set, can\\'t find loc string for key: %s",
"LIB_StdioNotClosed": "The STDIO streams did not close within %s seconds of the exit event from process '%s'. This may indicate a child process inherited the STDIO streams and has not yet exited.",
"LIB_WhichNotFound_Linux": "Unable to locate executable file: '%s'. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.",
"LIB_WhichNotFound_Win": "Unable to locate executable file: '%s'. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.",
"LIB_LocStringNotFound": "Can\\'t find loc string for key: %s",
"LIB_ParameterIsRequired": "%s not supplied",
"LIB_InputRequired": "Input required: %s",
"LIB_InvalidPattern": "Invalid pattern: '%s'",
"LIB_EndpointNotExist": "Endpoint not present: %s",
"LIB_EndpointDataNotExist": "Endpoint data parameter %s not present: %s",
"LIB_EndpointAuthNotExist": "Endpoint auth data not present: %s",
"LIB_InvalidEndpointAuth": "Invalid endpoint auth: %s",
"LIB_InvalidSecureFilesInput": "Invalid secure file input: %s",
"LIB_PathNotFound": "Not found %s: %s",
"LIB_PathHasNullByte": "Path cannot contain null bytes",
"LIB_OperationFailed": "Failed %s: %s",
"LIB_UseFirstGlobMatch": "Multiple workspace matches. using first.",
"LIB_MergeTestResultNotSupported": "Merging test results from multiple files to one test run is not supported on this version of build agent for OSX/Linux, each test result file will be published as a separate test run in VSO/TFS.",
"LIB_PlatformNotSupported": "Platform not supported: %s",
"TOOL_LIB_CachingTool": "Caching tool: %s %s %s",
"_TOOL_LIB_CachingTool.comment": "This informational log message indicates that a tool, that was just downloaded, is being copied into the cache directory. %s %s %s represent the tool name, version information, and processor architecture.",
"TOOL_LIB_Downloading": "Downloading: %s",
"_TOOL_LIB_Downloading.comment": "This information log message indicates that a file is being downloaded. %s represents the URL being downloaded.",
"TOOL_LIB_ExtractingArchive": "Extracting archive",
"_TOOL_LIB_ExtractingArchive.comment": "This informational log message indicates that an archive file is being extracted. For example, a .zip file, .7z file, or .tar.gz file.",
"TOOL_LIB_FoundInCache": "Found tool in cache: %s %s %s",
"_TOOL_LIB_FoundInCache.comment": "This informational log message indicates that the request tool is already cached, and does not need to be downloaded again. %s %s %s represent the tool name, version information, and processor architecture.",
"TOOL_LIB_PrependPath": "Prepending PATH environment variable with directory: %s",
"_TOOL_LIB_PrependPath.comment": "This informational log message indicates that a directory is being prepended to the front of the PATH environment variable. The directories specified by the PATH environment variable are used to resolve the location of command line tools."
}
}

View File

@@ -0,0 +1,41 @@
{
"id": "e3022448-b00d-4b57-b504-606a0bcf8279",
"name": "gitreleasemanager-setup",
"friendlyName": "Setup GitReleaseManager Task",
"description": "Tool for creating and exporting releases for software applications hosted on GitHub",
"author": "GitTools Contributors",
"helpMarkDown": "See the [documentation](https://gittools.github.io/GitReleaseManager/docs/) for help",
"category": "Build",
"demands": [],
"version": {
"Major": "1",
"Minor": "0",
"Patch": "0"
},
"minimumAgentVersion": "2.115.0",
"execution": {
"Node": {
"target": "bundle.js",
"argumentFormat": "",
"workingDirectory": "."
}
},
"instanceNameFormat": "gitreleasemanager-setup",
"inputs": [{
"name": "versionSpec",
"type": "string",
"label": "The version spec",
"defaultValue": "",
"required": true,
"helpMarkDown": "Required version in the form of 0.10.x or exact version like 0.10.2"
},
{
"name": "includePrerelease",
"type": "boolean",
"label": "Include pre-release versions",
"defaultValue": "false",
"required": false,
"helpMarkDown": "Include pre-release versions when matching a version"
}
]
}

File diff suppressed because one or more lines are too long

View File

@@ -3,8 +3,8 @@
"name": "gitversion-setup",
"friendlyName": "Setup GitVersion Task",
"description": "Easy Semantic Versioning (http://semver.org) for projects using Git",
"author": "GitVersion Contributors",
"helpMarkDown": "See the [documentation](http://gitversion.readthedocs.org/en/latest/) for help",
"author": "GitTools Contributors",
"helpMarkDown": "See the [documentation](https://gitversion.net/docs/) for help",
"category": "Build",
"demands": [],
"version": {

View File

@@ -11,8 +11,9 @@
"id": "Microsoft.VisualStudio.Services"
}],
"files": [
{ "path": "setup-gitversion" },
{ "path": "execute-gitversion" },
{ "path": "setup-gitversion" }
{ "path": "setup-gitreleasemanager" }
],
"categories": [
"Azure Pipelines"
@@ -32,10 +33,10 @@
],
"links": {
"learn": {
"uri": "http://gitversion.readthedocs.org/en/stable"
"uri": "https://github.com/GitTools/actions"
},
"getstarted": {
"uri": "http://gitversion.readthedocs.org/en/stable/build-server-support/build-server/tfs-build-vnext/#running-inside-tfs"
"uri": "https://github.com/GitTools/actions"
},
"license": {
"uri": "https://github.com/GitTools/actions/blob/master/LICENSE"
@@ -77,5 +78,14 @@
"properties": {
"name": "execute-gitversion"
}
}, {
"id": "setup-gitreleasemanager-task",
"type": "ms.vss-distributed-task.task",
"targets": [
"ms.vss-distributed-task.tasks"
],
"properties": {
"name": "setup-gitreleasemanager"
}
}]
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,18 @@
name: gitreleasemanager-setup
description: GitHub Action for creating and exporting releases for software applications hosted on GitHub. Installs the specific version of GitReleaseManager.Tool
author: GitTools
branding:
color: gray-dark
icon: git-pull-request
runs:
using: node12
main: ../../dist/github/setup-gitreleasemanager/bundle.js
inputs:
versionSpec:
description: Required version in the form of 0.10.x or exact version like 0.10.2
required: true
default: ''
includePrerelease:
description: Include pre-release versions when matching a version
required: false
default: false

View File

@@ -6,7 +6,7 @@ branding:
icon: git-pull-request
runs:
using: node12
main: ../dist/github/execute-gitversion/bundle.js
main: ../../dist/github/execute-gitversion/bundle.js
inputs:
targetPath:
description: Optionally supply the path to the working directory

View File

@@ -6,7 +6,7 @@ branding:
icon: git-pull-request
runs:
using: node12
main: ../dist/github/setup-gitversion/bundle.js
main: ../../dist/github/setup-gitversion/bundle.js
inputs:
versionSpec:
description: Required version in the form of 5.x or exact version like 5.0.0

64
package-lock.json generated
View File

@@ -5,9 +5,9 @@
"requires": true,
"dependencies": {
"@actions/core": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.1.tgz",
"integrity": "sha512-xD+CQd9p4lU7ZfRqmUcbJpqR+Ss51rJRVeXMyOLrZQImN9/8Sy/BEUBnHO/UKD3z03R686PVTLfEPmkropGuLw=="
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.2.tgz",
"integrity": "sha512-IbCx7oefq+Gi6FWbSs2Fnw8VkEI6Y4gvjrYprY3RV//ksq/KPMlClOerJ4jRosyal6zkUIc8R9fS/cpRMlGClg=="
},
"@actions/exec": {
"version": "1.0.3",
@@ -18,9 +18,19 @@
}
},
"@actions/http-client": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.1.tgz",
"integrity": "sha512-vy5DhqTJ1gtEkpRrD/6BHhUlkeyccrOX0BT9KmtO5TWxe5KSSwVHFE+J15Z0dG+tJwZJ/nHC4slUIyqpkahoMg=="
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-1.0.3.tgz",
"integrity": "sha512-wFwh1U4adB/Zsk4cc9kVqaBOHoknhp/pJQk+aWTocbAZWpIl4Zx/At83WFRLXvxB+5HVTWOACM6qjULMZfQSfw==",
"requires": {
"tunnel": "0.0.6"
},
"dependencies": {
"tunnel": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
"integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg=="
}
}
},
"@actions/io": {
"version": "1.0.2",
@@ -28,13 +38,13 @@
"integrity": "sha512-J8KuFqVPr3p6U8W93DOXlXW6zFvrQAJANdS+vw0YhusLIq+bszW8zmK2Fh1C2kDPX8FMvwIl1OUcFgvJoXLbAg=="
},
"@actions/tool-cache": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-1.3.0.tgz",
"integrity": "sha512-pbv32I89niDShw1YTDo0OFQmWPkZPElE7e3So1jfEzjIyzGRfYIzshwOVhemJZLcDtzo3kxO3GFDAmuVvub/6w==",
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-1.3.1.tgz",
"integrity": "sha512-sKoEJv0/c7WzjPEq2PO12Sc8QdEp58XIBHMm3c4lUn/iZWgLz9HBeCuFGpLQjDvXJNfLZ4g+WD+rMjgOmpH4Ag==",
"requires": {
"@actions/core": "^1.2.0",
"@actions/exec": "^1.0.0",
"@actions/http-client": "^1.0.1",
"@actions/http-client": "^1.0.3",
"@actions/io": "^1.0.1",
"semver": "^6.1.0",
"uuid": "^3.3.2"
@@ -48,18 +58,18 @@
}
},
"@babel/code-frame": {
"version": "7.5.5",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
"integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
"integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
"dev": true,
"requires": {
"@babel/highlight": "^7.0.0"
"@babel/highlight": "^7.8.3"
}
},
"@babel/highlight": {
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz",
"integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==",
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
"integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
"dev": true,
"requires": {
"chalk": "^2.0.0",
@@ -68,9 +78,9 @@
}
},
"@types/node": {
"version": "13.1.8",
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.1.8.tgz",
"integrity": "sha512-6XzyyNM9EKQW4HKuzbo/CkOIjn/evtCmsU+MUM1xDfJ+3/rNjBttM1NgN7AOQvN6tP1Sl1D1PIKMreTArnxM9A==",
"version": "13.5.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.5.0.tgz",
"integrity": "sha512-Onhn+z72D2O2Pb2ql2xukJ55rglumsVo1H6Fmyi8mlU9SvKdBk/pUSUAiBY/d9bAOF7VVWajX3sths/+g6ZiAQ==",
"dev": true
},
"@types/q": {
@@ -1562,9 +1572,9 @@
"dev": true
},
"diff": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz",
"integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==",
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
"dev": true
},
"diffie-hellman": {
@@ -5455,9 +5465,9 @@
"dev": true
},
"tslint": {
"version": "5.20.1",
"resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz",
"integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==",
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/tslint/-/tslint-6.0.0.tgz",
"integrity": "sha512-9nLya8GBtlFmmFMW7oXXwoXS1NkrccqTqAtwXzdPV9e2mqSEvCki6iHL/Fbzi5oqbugshzgGPk7KBb2qNP1DSA==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
@@ -5471,7 +5481,7 @@
"mkdirp": "^0.5.1",
"resolve": "^1.3.2",
"semver": "^5.3.0",
"tslib": "^1.8.0",
"tslib": "^1.10.0",
"tsutils": "^2.29.0"
}
},

View File

@@ -24,10 +24,10 @@
],
"license": "MIT",
"dependencies": {
"@actions/core": "^1.2.1",
"@actions/core": "^1.2.2",
"@actions/exec": "^1.0.3",
"@actions/io": "^1.0.2",
"@actions/tool-cache": "^1.3.0",
"@actions/tool-cache": "^1.3.1",
"azure-pipelines-task-lib": "^2.9.3",
"azure-pipelines-tool-lib": "^0.12.0",
"inversify": "^5.0.1",
@@ -35,7 +35,7 @@
"uuid": "^3.4.0"
},
"devDependencies": {
"@types/node": "^13.1.8",
"@types/node": "^13.5.0",
"@types/q": "^1.5.2",
"@types/semver-compare": "^1.0.1",
"@types/uuid": "^3.4.6",
@@ -44,7 +44,7 @@
"replace-in-file-webpack-plugin": "^1.0.6",
"tfx-cli": "^0.7.11",
"ts-loader": "^6.2.1",
"tslint": "^5.20.1",
"tslint": "^6.0.0",
"typescript": "^3.7.5",
"webpack": "^4.41.5",
"webpack-cli": "^3.3.10"

View File

@@ -4,11 +4,20 @@ import * as os from "os";
import * as path from "path";
import * as semver from "semver";
import * as http from "typed-rest-client/HttpClient";
import cmp from "semver-compare";
import { inject, injectable } from "inversify";
import { IBuildAgent, IDotnetTool, IExecResult, IGitVersionOptions, IGitVersionTool, IVersionManager } from "./interfaces";
import { IBuildAgent,
IDotnetTool,
IExecResult,
IGitReleaseManagerTool,
IGitVersionOptions,
IGitVersionTool,
IVersionManager,
} from "./interfaces";
import { TYPES } from "./types";
@injectable()
@@ -221,6 +230,25 @@ class GitVersionTool implements IGitVersionTool {
}
}
@injectable()
class GitReleaseManagerTool implements IGitReleaseManagerTool {
private buildAgent: IBuildAgent;
private dotnetTool: IDotnetTool;
constructor(
@inject(TYPES.IBuildAgent) buildAgent: IBuildAgent,
@inject(TYPES.IDotnetTool) dotnetTool: IDotnetTool,
) {
this.buildAgent = buildAgent;
this.dotnetTool = dotnetTool;
}
public async install(versionSpec: string, includePrerelease: boolean): Promise<void> {
await this.dotnetTool.toolInstall("GitReleaseManager.Tool", versionSpec, false, includePrerelease);
}
}
@injectable()
class VersionManager implements IVersionManager {
@@ -271,6 +299,7 @@ class VersionManager implements IVersionManager {
export {
DotnetTool,
GitReleaseManagerTool,
GitVersionTool,
VersionManager,
};

View File

@@ -0,0 +1,22 @@
import { IBuildAgent, IGitReleaseManagerTool } from "./interfaces";
import { ioc } from "./ioc";
import { SetupOptions, TYPES } from "./types";
const gitReleaseManagerTool = ioc.get<IGitReleaseManagerTool>(TYPES.IGitReleaseManagerTool);
const buildAgent = ioc.get<IBuildAgent>(TYPES.IBuildAgent);
export async function setup() {
try {
buildAgent.exportVariable("DOTNET_CLI_TELEMETRY_OPTOUT", "1");
const versionSpec = buildAgent.getInput(SetupOptions.versionSpec);
const includePrerelease = buildAgent.getBooleanInput(SetupOptions.includePrerelease);
await gitReleaseManagerTool.install(versionSpec, includePrerelease);
buildAgent.setSucceeded("GitVersionManager installed successfully", true);
} catch (error) {
buildAgent.setFailed(error.message, true);
}
}

View File

@@ -41,6 +41,10 @@ export interface IGitVersionTool {
install(versionSpec: string, includePrerelease: boolean): Promise<void>;
run(options: IGitVersionOptions): Promise<IExecResult>;
}
export interface IGitReleaseManagerTool {
install(versionSpec: string, includePrerelease: boolean): Promise<void>;
}
export interface IExecResult {
stdout: string;
stderr: string;

View File

@@ -1,8 +1,8 @@
import { Container } from "inversify";
import { BuildAgent } from "../agent/mock/build-agent";
import { DotnetTool, GitVersionTool, VersionManager } from "./common";
import { IBuildAgent, IDotnetTool, IGitVersionTool, IVersionManager } from "./interfaces";
import { DotnetTool, GitReleaseManagerTool, GitVersionTool, VersionManager } from "./common";
import { IBuildAgent, IDotnetTool, IGitReleaseManagerTool, IGitVersionTool, IVersionManager } from "./interfaces";
import { TYPES } from "./types";
const ioc = new Container();
@@ -11,5 +11,6 @@ ioc.bind<IVersionManager>(TYPES.IVersionManager).to(VersionManager);
ioc.bind<IBuildAgent>(TYPES.IBuildAgent).to(BuildAgent);
ioc.bind<IDotnetTool>(TYPES.IDotnetTool).to(DotnetTool);
ioc.bind<IGitVersionTool>(TYPES.IGitVersionTool).to(GitVersionTool);
ioc.bind<IGitReleaseManagerTool>(TYPES.IGitReleaseManagerTool).to(GitReleaseManagerTool);
export { ioc };

View File

@@ -2,6 +2,7 @@ const TYPES = {
IBuildAgent: Symbol.for("BuildAgent"),
IDotnetTool: Symbol.for("DotnetTool"),
IGitVersionTool: Symbol.for("GitVersionTool"),
IGitReleaseManagerTool: Symbol.for("GitReleaseManagerTool"),
IVersionManager: Symbol.for("VersionManager"),
};

View File

@@ -0,0 +1,4 @@
import "reflect-metadata";
import { setup } from "./core/gitreleasemanager";
setup();

View File

@@ -9,6 +9,7 @@ module.exports = (env) => {
return {
entry: {
'setup-gitversion': path.resolve(__dirname, 'src/setup-gitversion.ts'),
'setup-gitreleasemanager': path.resolve(__dirname, 'src/setup-gitreleasemanager.ts'),
'execute-gitversion': path.resolve(__dirname, 'src/execute-gitversion.ts'),
},
target: 'node',