Merge pull request #814 from GitTools/feature/691

This commit is contained in:
Artur
2023-03-11 13:46:49 +01:00
parent b30860fe81
commit cdf70088b7
56 changed files with 725 additions and 402 deletions

File diff suppressed because one or more lines are too long

View File

@@ -21,47 +21,54 @@
} }
}, },
"instanceNameFormat": "gitreleasemanager/addasset", "instanceNameFormat": "gitreleasemanager/addasset",
"inputs": [{ "inputs": [
"name": "owner", {
"type": "string", "name": "owner",
"label": "The owner of the repository", "type": "string",
"defaultValue": "", "label": "The owner of the repository",
"required": true, "defaultValue": "",
"helpMarkDown": "The owner of the repository" "required": true,
}, { "helpMarkDown": "The owner of the repository"
"name": "repository", },
"type": "string", {
"label": "The name of the repository", "name": "repository",
"defaultValue": "", "type": "string",
"required": true, "label": "The name of the repository",
"helpMarkDown": "The name of the repository" "defaultValue": "",
}, { "required": true,
"name": "token", "helpMarkDown": "The name of the repository"
"type": "string", },
"label": "The access token to access GitHub with", {
"defaultValue": "", "name": "token",
"required": true, "type": "string",
"helpMarkDown": "The access token to access GitHub with" "label": "The access token to access GitHub with",
}, { "defaultValue": "",
"name": "tagName", "required": true,
"type": "string", "helpMarkDown": "The access token to access GitHub with"
"label": "The name of the release", },
"defaultValue": "", {
"required": true, "name": "tagName",
"helpMarkDown": "The name of the release" "type": "string",
}, { "label": "The name of the release",
"name": "assets", "defaultValue": "",
"type": "multiLine", "required": true,
"label": "Path(s) to the file(s) to include in the release", "helpMarkDown": "The name of the release"
"defaultValue": "", },
"required": false, {
"helpMarkDown": "Path(s) to the file(s) to include in the release. Separated by newline" "name": "assets",
}, { "type": "multiLine",
"name": "targetDirectory", "label": "Path(s) to the file(s) to include in the release",
"type": "string", "defaultValue": "",
"label": "The directory on which GitReleaseManager should be executed. Defaults to current directory", "required": false,
"defaultValue": "", "helpMarkDown": "Path(s) to the file(s) to include in the release. Separated by newline"
"required": false, },
"helpMarkDown": "The directory on which GitReleaseManager should be executed. Defaults to current directory" {
}] "name": "targetDirectory",
"type": "string",
"label": "The directory on which GitReleaseManager should be executed. Defaults to current directory",
"defaultValue": "",
"required": false,
"helpMarkDown": "The directory on which GitReleaseManager should be executed. Defaults to current directory"
}
]
} }

File diff suppressed because one or more lines are too long

View File

@@ -21,40 +21,46 @@
} }
}, },
"instanceNameFormat": "gitreleasemanager/close", "instanceNameFormat": "gitreleasemanager/close",
"inputs": [{ "inputs": [
"name": "owner", {
"type": "string", "name": "owner",
"label": "The owner of the repository", "type": "string",
"defaultValue": "", "label": "The owner of the repository",
"required": true, "defaultValue": "",
"helpMarkDown": "The owner of the repository" "required": true,
}, { "helpMarkDown": "The owner of the repository"
"name": "repository", },
"type": "string", {
"label": "The name of the repository", "name": "repository",
"defaultValue": "", "type": "string",
"required": true, "label": "The name of the repository",
"helpMarkDown": "The name of the repository" "defaultValue": "",
}, { "required": true,
"name": "token", "helpMarkDown": "The name of the repository"
"type": "string", },
"label": "The access token to access GitHub with", {
"defaultValue": "", "name": "token",
"required": true, "type": "string",
"helpMarkDown": "The access token to access GitHub with" "label": "The access token to access GitHub with",
}, { "defaultValue": "",
"name": "milestone", "required": true,
"type": "string", "helpMarkDown": "The access token to access GitHub with"
"label": "The milestone to use", },
"defaultValue": "", {
"required": true, "name": "milestone",
"helpMarkDown": "The milestone to use" "type": "string",
}, { "label": "The milestone to use",
"name": "targetDirectory", "defaultValue": "",
"type": "string", "required": true,
"label": "The directory on which GitReleaseManager should be executed. Defaults to current directory", "helpMarkDown": "The milestone to use"
"defaultValue": "", },
"required": false, {
"helpMarkDown": "The directory on which GitReleaseManager should be executed. Defaults to current directory" "name": "targetDirectory",
}] "type": "string",
"label": "The directory on which GitReleaseManager should be executed. Defaults to current directory",
"defaultValue": "",
"required": false,
"helpMarkDown": "The directory on which GitReleaseManager should be executed. Defaults to current directory"
}
]
} }

File diff suppressed because one or more lines are too long

View File

@@ -21,75 +21,86 @@
} }
}, },
"instanceNameFormat": "gitreleasemanager/create", "instanceNameFormat": "gitreleasemanager/create",
"inputs": [{ "inputs": [
"name": "owner", {
"type": "string", "name": "owner",
"label": "The owner of the repository", "type": "string",
"defaultValue": "", "label": "The owner of the repository",
"required": true, "defaultValue": "",
"helpMarkDown": "The owner of the repository" "required": true,
}, { "helpMarkDown": "The owner of the repository"
"name": "repository", },
"type": "string", {
"label": "The name of the repository", "name": "repository",
"defaultValue": "", "type": "string",
"required": true, "label": "The name of the repository",
"helpMarkDown": "The name of the repository" "defaultValue": "",
}, { "required": true,
"name": "token", "helpMarkDown": "The name of the repository"
"type": "string", },
"label": "The access token to access GitHub with", {
"defaultValue": "", "name": "token",
"required": true, "type": "string",
"helpMarkDown": "The access token to access GitHub with" "label": "The access token to access GitHub with",
}, { "defaultValue": "",
"name": "milestone", "required": true,
"type": "string", "helpMarkDown": "The access token to access GitHub with"
"label": "The milestone to use", },
"defaultValue": "", {
"required": false, "name": "milestone",
"helpMarkDown": "The milestone to use" "type": "string",
}, { "label": "The milestone to use",
"name": "name", "defaultValue": "",
"type": "string", "required": false,
"label": "The name of the release", "helpMarkDown": "The milestone to use"
"defaultValue": "", },
"required": false, {
"helpMarkDown": "The name of the release" "name": "name",
}, { "type": "string",
"name": "inputFilePath", "label": "The name of the release",
"type": "string", "defaultValue": "",
"label": "The path to the file to be used as the content of the release notes", "required": false,
"defaultValue": "", "helpMarkDown": "The name of the release"
"required": false, },
"helpMarkDown": "The path to the file to be used as the content of the release notes" {
}, { "name": "inputFilePath",
"name": "isPreRelease", "type": "string",
"type": "boolean", "label": "The path to the file to be used as the content of the release notes",
"label": "Creates the release as a pre-release", "defaultValue": "",
"defaultValue": "false", "required": false,
"required": false, "helpMarkDown": "The path to the file to be used as the content of the release notes"
"helpMarkDown": "Creates the release as a pre-release" },
}, { {
"name": "targetcommitish", "name": "isPreRelease",
"type": "string", "type": "boolean",
"label": "The commit to tag. Can be a branch or SHA. Defaults to repository's default branch", "label": "Creates the release as a pre-release",
"defaultValue": "", "defaultValue": "false",
"required": false, "required": false,
"helpMarkDown": "The commit to tag. Can be a branch or SHA. Defaults to repository's default branch" "helpMarkDown": "Creates the release as a pre-release"
}, { },
"name": "targetDirectory", {
"type": "string", "name": "targetcommitish",
"label": "The directory on which GitReleaseManager should be executed. Defaults to current directory", "type": "string",
"defaultValue": "", "label": "The commit to tag. Can be a branch or SHA. Defaults to repository's default branch",
"required": false, "defaultValue": "",
"helpMarkDown": "The directory on which GitReleaseManager should be executed. Defaults to current directory" "required": false,
}, { "helpMarkDown": "The commit to tag. Can be a branch or SHA. Defaults to repository's default branch"
"name": "assets", },
"type": "multiLine", {
"label": "Path(s) to the file(s) to include in the release", "name": "targetDirectory",
"defaultValue": "", "type": "string",
"required": false, "label": "The directory on which GitReleaseManager should be executed. Defaults to current directory",
"helpMarkDown": "Path(s) to the file(s) to include in the release. Separated by newline" "defaultValue": "",
}] "required": false,
"helpMarkDown": "The directory on which GitReleaseManager should be executed. Defaults to current directory"
},
{
"name": "assets",
"type": "multiLine",
"label": "Path(s) to the file(s) to include in the release",
"defaultValue": "",
"required": false,
"helpMarkDown": "Path(s) to the file(s) to include in the release. Separated by newline"
}
]
} }

File diff suppressed because one or more lines are too long

View File

@@ -21,40 +21,46 @@
} }
}, },
"instanceNameFormat": "gitreleasemanager/discard", "instanceNameFormat": "gitreleasemanager/discard",
"inputs": [{ "inputs": [
"name": "owner", {
"type": "string", "name": "owner",
"label": "The owner of the repository", "type": "string",
"defaultValue": "", "label": "The owner of the repository",
"required": true, "defaultValue": "",
"helpMarkDown": "The owner of the repository" "required": true,
}, { "helpMarkDown": "The owner of the repository"
"name": "repository", },
"type": "string", {
"label": "The name of the repository", "name": "repository",
"defaultValue": "", "type": "string",
"required": true, "label": "The name of the repository",
"helpMarkDown": "The name of the repository" "defaultValue": "",
}, { "required": true,
"name": "token", "helpMarkDown": "The name of the repository"
"type": "string", },
"label": "The access token to access GitHub with", {
"defaultValue": "", "name": "token",
"required": true, "type": "string",
"helpMarkDown": "The access token to access GitHub with" "label": "The access token to access GitHub with",
}, { "defaultValue": "",
"name": "milestone", "required": true,
"type": "string", "helpMarkDown": "The access token to access GitHub with"
"label": "The milestone to use", },
"defaultValue": "", {
"required": true, "name": "milestone",
"helpMarkDown": "The milestone to use" "type": "string",
}, { "label": "The milestone to use",
"name": "targetDirectory", "defaultValue": "",
"type": "string", "required": true,
"label": "The directory on which GitReleaseManager should be executed. Defaults to current directory", "helpMarkDown": "The milestone to use"
"defaultValue": "", },
"required": false, {
"helpMarkDown": "The directory on which GitReleaseManager should be executed. Defaults to current directory" "name": "targetDirectory",
}] "type": "string",
"label": "The directory on which GitReleaseManager should be executed. Defaults to current directory",
"defaultValue": "",
"required": false,
"helpMarkDown": "The directory on which GitReleaseManager should be executed. Defaults to current directory"
}
]
} }

File diff suppressed because one or more lines are too long

View File

@@ -21,40 +21,46 @@
} }
}, },
"instanceNameFormat": "gitreleasemanager/open", "instanceNameFormat": "gitreleasemanager/open",
"inputs": [{ "inputs": [
"name": "owner", {
"type": "string", "name": "owner",
"label": "The owner of the repository", "type": "string",
"defaultValue": "", "label": "The owner of the repository",
"required": true, "defaultValue": "",
"helpMarkDown": "The owner of the repository" "required": true,
}, { "helpMarkDown": "The owner of the repository"
"name": "repository", },
"type": "string", {
"label": "The name of the repository", "name": "repository",
"defaultValue": "", "type": "string",
"required": true, "label": "The name of the repository",
"helpMarkDown": "The name of the repository" "defaultValue": "",
}, { "required": true,
"name": "token", "helpMarkDown": "The name of the repository"
"type": "string", },
"label": "The access token to access GitHub with", {
"defaultValue": "", "name": "token",
"required": true, "type": "string",
"helpMarkDown": "The access token to access GitHub with" "label": "The access token to access GitHub with",
}, { "defaultValue": "",
"name": "milestone", "required": true,
"type": "string", "helpMarkDown": "The access token to access GitHub with"
"label": "The milestone to use", },
"defaultValue": "", {
"required": true, "name": "milestone",
"helpMarkDown": "The milestone to use" "type": "string",
}, { "label": "The milestone to use",
"name": "targetDirectory", "defaultValue": "",
"type": "string", "required": true,
"label": "The directory on which GitReleaseManager should be executed. Defaults to current directory", "helpMarkDown": "The milestone to use"
"defaultValue": "", },
"required": false, {
"helpMarkDown": "The directory on which GitReleaseManager should be executed. Defaults to current directory" "name": "targetDirectory",
}] "type": "string",
"label": "The directory on which GitReleaseManager should be executed. Defaults to current directory",
"defaultValue": "",
"required": false,
"helpMarkDown": "The directory on which GitReleaseManager should be executed. Defaults to current directory"
}
]
} }

File diff suppressed because one or more lines are too long

View File

@@ -21,40 +21,46 @@
} }
}, },
"instanceNameFormat": "gitreleasemanager/publish", "instanceNameFormat": "gitreleasemanager/publish",
"inputs": [{ "inputs": [
"name": "owner", {
"type": "string", "name": "owner",
"label": "The owner of the repository", "type": "string",
"defaultValue": "", "label": "The owner of the repository",
"required": true, "defaultValue": "",
"helpMarkDown": "The owner of the repository" "required": true,
}, { "helpMarkDown": "The owner of the repository"
"name": "repository", },
"type": "string", {
"label": "The name of the repository", "name": "repository",
"defaultValue": "", "type": "string",
"required": true, "label": "The name of the repository",
"helpMarkDown": "The name of the repository" "defaultValue": "",
}, { "required": true,
"name": "token", "helpMarkDown": "The name of the repository"
"type": "string", },
"label": "The access token to access GitHub with", {
"defaultValue": "", "name": "token",
"required": true, "type": "string",
"helpMarkDown": "The access token to access GitHub with" "label": "The access token to access GitHub with",
}, { "defaultValue": "",
"name": "tagName", "required": true,
"type": "string", "helpMarkDown": "The access token to access GitHub with"
"label": "The name of the release", },
"defaultValue": "", {
"required": true, "name": "tagName",
"helpMarkDown": "The name of the release" "type": "string",
}, { "label": "The name of the release",
"name": "targetDirectory", "defaultValue": "",
"type": "string", "required": true,
"label": "The directory on which GitReleaseManager should be executed. Defaults to current directory", "helpMarkDown": "The name of the release"
"defaultValue": "", },
"required": false, {
"helpMarkDown": "The directory on which GitReleaseManager should be executed. Defaults to current directory" "name": "targetDirectory",
}] "type": "string",
"label": "The directory on which GitReleaseManager should be executed. Defaults to current directory",
"defaultValue": "",
"required": false,
"helpMarkDown": "The directory on which GitReleaseManager should be executed. Defaults to current directory"
}
]
} }

File diff suppressed because one or more lines are too long

View File

@@ -21,7 +21,8 @@
} }
}, },
"instanceNameFormat": "gitreleasemanager/setup", "instanceNameFormat": "gitreleasemanager/setup",
"inputs": [{ "inputs": [
{
"name": "versionSpec", "name": "versionSpec",
"type": "string", "type": "string",
"label": "The version spec", "label": "The version spec",
@@ -44,6 +45,14 @@
"defaultValue": "false", "defaultValue": "false",
"required": false, "required": false,
"helpMarkDown": "Treat package source failures as warnings" "helpMarkDown": "Treat package source failures as warnings"
},
{
"name": "preferLatestVersion",
"type": "boolean",
"label": "Prefer latest version",
"defaultValue": "false",
"required": false,
"helpMarkDown": "Prefer to download the latest version matching the versionSpec, even if there is a local cached version."
} }
] ]
} }

File diff suppressed because one or more lines are too long

View File

@@ -21,7 +21,8 @@
} }
}, },
"instanceNameFormat": "gitversion/execute", "instanceNameFormat": "gitversion/execute",
"groups": [{ "groups": [
{
"name": "gitversionDetails", "name": "gitversionDetails",
"displayName": "GitVersion details", "displayName": "GitVersion details",
"isExpanded": true "isExpanded": true
@@ -32,7 +33,8 @@
"isExpanded": false "isExpanded": false
} }
], ],
"inputs": [{ "inputs": [
{
"name": "targetPath", "name": "targetPath",
"type": "string", "type": "string",
"label": "Working directory path", "label": "Working directory path",

File diff suppressed because one or more lines are too long

View File

@@ -21,7 +21,8 @@
} }
}, },
"instanceNameFormat": "gitversion/setup", "instanceNameFormat": "gitversion/setup",
"inputs": [{ "inputs": [
{
"name": "versionSpec", "name": "versionSpec",
"type": "string", "type": "string",
"label": "The version spec", "label": "The version spec",
@@ -44,6 +45,14 @@
"defaultValue": "false", "defaultValue": "false",
"required": false, "required": false,
"helpMarkDown": "Treat package source failures as warnings" "helpMarkDown": "Treat package source failures as warnings"
},
{
"name": "preferLatestVersion",
"type": "boolean",
"label": "Prefer latest version",
"defaultValue": "false",
"required": false,
"helpMarkDown": "Prefer to download the latest version matching the versionSpec, even if there is a local cached version."
} }
] ]
} }

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

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

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

@@ -2,7 +2,7 @@
```yaml ```yaml
steps: steps:
- task: gitreleasemanager/close@0 - task: gitreleasemanager/close@0
inputs: inputs:
token: '$(GITHUB_TOKEN)' token: '$(GITHUB_TOKEN)'
owner: 'someOwner' owner: 'someOwner'

View File

@@ -2,7 +2,7 @@
```yaml ```yaml
steps: steps:
- task: gitreleasemanager/open@0 - task: gitreleasemanager/open@0
inputs: inputs:
token: '$(GITHUB_TOKEN)' token: '$(GITHUB_TOKEN)'
owner: 'someOwner' owner: 'someOwner'

View File

@@ -226,18 +226,19 @@ steps:
Calculate the version for the build and use the `GitVersion.BranchName` variable in a condition for starting another job. Calculate the version for the build and use the `GitVersion.BranchName` variable in a condition for starting another job.
```yaml ```yaml
job: CalculateVersion jobs:
displayName: Calculate version using GitVersion - job: CalculateVersion
steps: displayName: Calculate version using GitVersion
# gitversion/setup@0 task omitted for brevity. steps:
# gitversion/setup@0 task omitted for brevity.
- task: gitversion/execute@0 - task: gitversion/execute@0
displayName: Use GitVersion displayName: Use GitVersion
name: Version # the step MUST be named to access its output variables in another job. name: Version # the step MUST be named to access its output variables in another job.
job: CreateReleaseNotes - job: CreateReleaseNotes
condition: and(succeeded(), eq(dependencies.CalculateVersion.outputs['Version.GitVersion.BranchName'], 'main')) condition: and(succeeded(), eq(dependencies.CalculateVersion.outputs['Version.GitVersion.BranchName'], 'main'))
dependsOn: CalculateVersion dependsOn: CalculateVersion
``` ```
### Example 8 ### Example 8
@@ -245,18 +246,19 @@ dependsOn: CalculateVersion
Calculate the version for the build and map the `GitVersion.SemVer` variable into a variable in another job. Calculate the version for the build and map the `GitVersion.SemVer` variable into a variable in another job.
```yaml ```yaml
job: CalculateVersion jobs:
displayName: Calculate version using GitVersion - job: CalculateVersion
steps: displayName: Calculate version using GitVersion
# gitversion/setup@0 task omitted for brevity. steps:
# gitversion/setup@0 task omitted for brevity.
- task: gitversion/execute@0 - task: gitversion/execute@0
displayName: Use GitVersion displayName: Use GitVersion
name: Version # the step MUST be named to access its output variables in another job. name: Version # the step MUST be named to access its output variables in another job.
job: BuildAndPack - job: BuildAndPack
variables: variables:
Ver.MajorMinorPatch: $[ dependencies.CalculateVersion.outputs['Version.GitVersion.MajorMinorPatch'] ] Ver.MajorMinorPatch: $[ dependencies.CalculateVersion.outputs['Version.GitVersion.MajorMinorPatch'] ]
``` ```
### Example 9 ### Example 9

View File

@@ -21,6 +21,10 @@ ignoreFailedSources:
description: Treat package source failures as warnings. description: Treat package source failures as warnings.
required: false required: false
default: false default: false
preferLatestVersion:
description: Prefer to download the latest version matching the versionSpec, even if there is a local cached version.
required: false
default: 'false'
``` ```
--- ---
@@ -63,3 +67,16 @@ steps:
versionSpec: '6.x' versionSpec: '6.x'
includePrerelease: true includePrerelease: true
``` ```
### Example 4
Install the latest GitVersion 5 version even it there is a cached version matching the versionSpec.
```yaml
steps:
- task: gitversion/setup@0
displayName: Install GitVersion
inputs:
versionSpec: '5.x'
preferLatestVersion: true
```

View File

@@ -2,7 +2,7 @@
```yaml ```yaml
steps: steps:
- uses: gittools/actions/gitreleasemanager/addasset@v0.9.2 - uses: gittools/actions/gitreleasemanager/addassetv0
name: Add asset to a release with GitReleaseManager name: Add asset to a release with GitReleaseManager
with: with:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -2,7 +2,7 @@
```yaml ```yaml
steps: steps:
- uses: gittools/actions/gitreleasemanager/close@v0.9.2 - uses: gittools/actions/gitreleasemanager/closev0
name: Close release with GitReleaseManager name: Close release with GitReleaseManager
with: with:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -2,7 +2,7 @@
```yaml ```yaml
steps: steps:
- uses: gittools/actions/gitreleasemanager/create@v0.9.2 - uses: gittools/actions/gitreleasemanager/createv0
name: Create release with GitReleaseManager name: Create release with GitReleaseManager
with: with:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -2,7 +2,7 @@
```yaml ```yaml
steps: steps:
- uses: gittools/actions/gitreleasemanager/discard@v0.9.2 - uses: gittools/actions/gitreleasemanager/discardv0
name: Discard release with GitReleaseManager name: Discard release with GitReleaseManager
with: with:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -2,7 +2,7 @@
```yaml ```yaml
steps: steps:
- uses: gittools/actions/gitreleasemanager/open@v0.9.2 - uses: gittools/actions/gitreleasemanager/openv0
name: Open release with GitReleaseManager name: Open release with GitReleaseManager
with: with:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -2,7 +2,7 @@
```yaml ```yaml
steps: steps:
- uses: gittools/actions/gitreleasemanager/publish@v0.9.2 - uses: gittools/actions/gitreleasemanager/publishv0
name: Publish release with GitReleaseManager name: Publish release with GitReleaseManager
with: with:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -2,7 +2,7 @@
```yaml ```yaml
steps: steps:
- uses: gittools/actions/gitreleasemanager/setup@v0.9.2 - uses: gittools/actions/gitreleasemanager/setupv0
name: Install GitReleaseManager name: Install GitReleaseManager
with: with:
versionSpec: '0.10.x' versionSpec: '0.10.x'

View File

@@ -100,10 +100,10 @@ Calculate the version for the build.
```yaml ```yaml
steps: steps:
# gitversion/setup@v0.9.7 action omitted for brevity. # gitversion/setup@v0 action omitted for brevity.
- name: Determine Version - name: Determine Version
uses: gittools/actions/gitversion/execute@v0.9.7 uses: gittools/actions/gitversion/execute@v0
``` ```
### Example 2 ### Example 2
@@ -113,7 +113,7 @@ Calculate the version for the build using a config file with the default name **
```yaml ```yaml
steps: steps:
- name: Determine Version - name: Determine Version
uses: gittools/actions/gitversion/execute@v0.9.7 uses: gittools/actions/gitversion/execute@v0
with: with:
useConfigFile: true useConfigFile: true
``` ```
@@ -135,10 +135,10 @@ Calculate the version for the build using a config file named **VersionConfig.ym
```yaml ```yaml
steps: steps:
# gitversion/setup@v0.9.7 action omitted for brevity. # gitversion/setup@v0 action omitted for brevity.
- name: Determine Version - name: Determine Version
uses: gittools/actions/gitversion/execute@v0.9.7 uses: gittools/actions/gitversion/execute@v0
with: with:
useConfigFile: true useConfigFile: true
configFilePath: VersionConfig.yml configFilePath: VersionConfig.yml
@@ -150,10 +150,10 @@ Show the effective configuration for GitVersion by running the **/showConfig** c
```yaml ```yaml
steps: steps:
# gitversion/setup@v0.9.7 action omitted for brevity. # gitversion/setup@v0 action omitted for brevity.
- name: Display GitVersion config - name: Display GitVersion config
uses: gittools/actions/gitversion/execute@v0.9.7 uses: gittools/actions/gitversion/execute@v0
with: with:
useConfigFile: true useConfigFile: true
additionalArguments: '/showConfig' additionalArguments: '/showConfig'
@@ -165,11 +165,11 @@ Calculate the version for the build and display all the calculated variables in
```yaml ```yaml
steps: steps:
# gitversion/setup@v0.9.7 action omitted for brevity. # gitversion/setup@v0 action omitted for brevity.
- name: Determine Version - name: Determine Version
id: gitversion id: gitversion
uses: gittools/actions/gitversion/execute@v0.9.7 uses: gittools/actions/gitversion/execute@v0
- name: Display GitVersion outputs - name: Display GitVersion outputs
run: | run: |
@@ -213,10 +213,10 @@ Calculate the version for the build and display the value of the `GITVERSION_SEM
```yaml ```yaml
steps: steps:
# gitversion/setup@v0.9.7 action omitted for brevity. # gitversion/setup@v0 action omitted for brevity.
- name: Determine Version - name: Determine Version
uses: gittools/actions/gitversion/execute@v0.9.7 uses: gittools/actions/gitversion/execute@v0
- name: Display SemVer - name: Display SemVer
run: | run: |
@@ -239,7 +239,7 @@ jobs:
- name: Determine Version - name: Determine Version
id: gitversion id: gitversion
uses: gittools/actions/gitversion/execute@v0.9.7 uses: gittools/actions/gitversion/execute@v0
create-release-notes: create-release-notes:
name: Create Release Notes name: Create Release Notes
@@ -268,7 +268,7 @@ jobs:
- name: Determine Version - name: Determine Version
id: gitversion id: gitversion
uses: gittools/actions/gitversion/execute@v0.9.7 uses: gittools/actions/gitversion/execute@v0
display-semver: display-semver:
name: Display Semantic Version name: Display Semantic Version

View File

@@ -34,7 +34,7 @@ Install the latest GitVersion 5 version.
```yaml ```yaml
steps: steps:
- name: Install GitVersion - name: Install GitVersion
uses: gittools/actions/gitversion/setup@v0.9.7 uses: gittools/actions/gitversion/setup@v0
with: with:
versionSpec: '5.x' versionSpec: '5.x'
``` ```
@@ -46,7 +46,7 @@ Install GitVersion 5.5.0.
```yaml ```yaml
steps: steps:
- name: Install GitVersion - name: Install GitVersion
uses: gittools/actions/gitversion/setup@v0.9.7 uses: gittools/actions/gitversion/setup@v0
with: with:
versionSpec: '5.5.0' versionSpec: '5.5.0'
``` ```
@@ -58,8 +58,21 @@ Install the latest GitVersion 6 pre-release version. For example **6.0.0-beta1.
```yaml ```yaml
steps: steps:
- name: Install GitVersion - name: Install GitVersion
uses: gittools/actions/gitversion/setup@v0.9.7 uses: gittools/actions/gitversion/setup@v0
with: with:
versionSpec: '6.x' versionSpec: '6.x'
includePrerelease: true includePrerelease: true
``` ```
### Example 4
Install the latest GitVersion 5 version even it there is a cached version matching the versionSpec.
```yaml
steps:
- name: Install GitVersion
uses: gittools/actions/gitversion/setup@v0
with:
versionSpec: '5.x'
preferLatestVersion: true
```

View File

@@ -20,3 +20,7 @@ inputs:
description: Treat package source failures as warnings. description: Treat package source failures as warnings.
required: false required: false
default: 'false' default: 'false'
preferLatestVersion:
description: Prefer to download the latest version matching the versionSpec, even if there is a local cached version.
required: false
default: 'false'

View File

@@ -20,3 +20,7 @@ inputs:
description: Treat package source failures as warnings. description: Treat package source failures as warnings.
required: false required: false
default: 'false' default: 'false'
preferLatestVersion:
description: Prefer to download the latest version matching the versionSpec, even if there is a local cached version.
required: false
default: 'false'

View File

@@ -4,13 +4,13 @@ import * as path from 'path'
import * as http from 'typed-rest-client/HttpClient' import * as http from 'typed-rest-client/HttpClient'
import { inject, injectable } from 'inversify' import { inject, injectable } from 'inversify'
import { TYPES, IExecResult, IBuildAgent } from './models' import { IBuildAgent, IExecResult, TYPES } from './models'
import { IVersionManager } from './versionManager' import { IVersionManager } from './versionManager'
import { ISetupSettings } from '../tools/common/models' import { ISetupSettings } from '../tools/common/models'
export interface IDotnetTool { export interface IDotnetTool {
disableTelemetry(): void disableTelemetry(): void
toolInstall(toolName: string, checkLatest: boolean, setupSettings: ISetupSettings): Promise<string> toolInstall(toolName: string, setupSettings: ISetupSettings): Promise<string>
} }
@injectable() @injectable()
@@ -37,13 +37,14 @@ export class DotnetTool implements IDotnetTool {
return this.buildAgent.exec(cmd, args) return this.buildAgent.exec(cmd, args)
} }
public async toolInstall(toolName: string, checkLatest: boolean, setupSettings: ISetupSettings): Promise<string> { public async toolInstall(toolName: string, setupSettings: ISetupSettings): Promise<string> {
console.log('') console.log('')
console.log('--------------------------') console.log('--------------------------')
console.log(`Acquiring ${toolName} version spec: ${setupSettings.versionSpec}`) console.log(`Acquiring ${toolName} version spec: ${setupSettings.versionSpec}`)
console.log('--------------------------') console.log('--------------------------')
let version: string let version: string
let checkLatest = setupSettings.preferLatestVersion
if (this.versionManager.isExplicitVersion(setupSettings.versionSpec)) { if (this.versionManager.isExplicitVersion(setupSettings.versionSpec)) {
checkLatest = false // check latest doesn't make sense when explicit version checkLatest = false // check latest doesn't make sense when explicit version
version = setupSettings.versionSpec version = setupSettings.versionSpec

View File

@@ -1,13 +1,15 @@
export enum SetupFields { export enum SetupFields {
includePrerelease = 'includePrerelease', includePrerelease = 'includePrerelease',
versionSpec = 'versionSpec', versionSpec = 'versionSpec',
ignoreFailedSources = 'ignoreFailedSources' ignoreFailedSources = 'ignoreFailedSources',
preferLatestVersion = 'preferLatestVersion'
} }
export interface ISetupSettings { export interface ISetupSettings {
[SetupFields.versionSpec]: string [SetupFields.versionSpec]: string
[SetupFields.includePrerelease]: boolean [SetupFields.includePrerelease]: boolean
[SetupFields.ignoreFailedSources]: boolean [SetupFields.ignoreFailedSources]: boolean
[SetupFields.preferLatestVersion]: boolean
} }
export interface ISettingsProvider { export interface ISettingsProvider {

View File

@@ -10,11 +10,13 @@ export class SettingsProvider implements ISettingsProvider {
const versionSpec = this.buildAgent.getInput(SetupFields.versionSpec) const versionSpec = this.buildAgent.getInput(SetupFields.versionSpec)
const includePrerelease = this.buildAgent.getBooleanInput(SetupFields.includePrerelease) const includePrerelease = this.buildAgent.getBooleanInput(SetupFields.includePrerelease)
const ignoreFailedSources = this.buildAgent.getBooleanInput(SetupFields.ignoreFailedSources) const ignoreFailedSources = this.buildAgent.getBooleanInput(SetupFields.ignoreFailedSources)
const preferLatestVersion = this.buildAgent.getBooleanInput(SetupFields.preferLatestVersion)
return { return {
versionSpec, versionSpec,
includePrerelease, includePrerelease,
ignoreFailedSources ignoreFailedSources,
preferLatestVersion
} }
} }
} }

View File

@@ -33,7 +33,7 @@ export class GitReleaseManagerTool extends DotnetTool implements IGitReleaseMana
} }
public async install(setupSettings: ISetupSettings): Promise<void> { public async install(setupSettings: ISetupSettings): Promise<void> {
await this.toolInstall('GitReleaseManager.Tool', false, setupSettings) await this.toolInstall('GitReleaseManager.Tool', setupSettings)
} }
public create(settings: GitReleaseManagerCreateSettings): Promise<IExecResult> { public create(settings: GitReleaseManagerCreateSettings): Promise<IExecResult> {

View File

@@ -18,7 +18,7 @@ export class GitVersionTool extends DotnetTool implements IGitVersionTool {
} }
public async install(setupSettings: ISetupSettings): Promise<void> { public async install(setupSettings: ISetupSettings): Promise<void> {
await this.toolInstall('GitVersion.Tool', false, setupSettings) await this.toolInstall('GitVersion.Tool', setupSettings)
} }
public run(options: GitVersionSettings): Promise<IExecResult> { public run(options: GitVersionSettings): Promise<IExecResult> {
@@ -149,7 +149,7 @@ export class GitVersionTool extends DotnetTool implements IGitVersionTool {
} }
private toCamelCase(input: string): string { private toCamelCase(input: string): string {
return input.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g, function (match, index) { return input.replace(/^\w|[A-Z]|\b\w|\s+/g, function (match, index) {
if (+match === 0) return '' // or if (/\s+/.test(match)) for white spaces if (+match === 0) return '' // or if (/\s+/.test(match)) for white spaces
return index == 0 ? match.toLowerCase() : match.toUpperCase() return index == 0 ? match.toLowerCase() : match.toUpperCase()
}) })