21 Commits
v0.3.1 ... v0.4

Author SHA1 Message Date
Artur Stolear
5e98e2ad3c disable release in prod mode 2020-01-22 19:42:02 +02:00
Artur Stolear
1e937858a2 added the compiled versions 2020-01-22 19:31:05 +02:00
Artur Stolear
0eae1609b6 actually building the code in the CI 2020-01-22 19:26:46 +02:00
Artur Stolear
ee69b451cc fix for webpack bundle 2020-01-22 17:53:35 +02:00
Artur Stolear
5ed9f1a870 using webpack for azure task 2020-01-20 19:06:54 +02:00
Artur Stolear
8c92ba9adb added webpack config 2020-01-20 18:52:56 +02:00
dependabot-preview[bot]
df7bec89f0 Bump typescript from 3.7.4 to 3.7.5
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 3.7.4 to 3.7.5.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v3.7.4...v3.7.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-19 17:07:03 +02:00
Artur Stolear
b9310160df display logs 2020-01-19 17:07:03 +02:00
Artur Stolear
0dc080dece display logs 2020-01-17 13:16:15 +02:00
Artur Stolear
e15823128e merge json resources 2020-01-16 14:20:59 +02:00
Artur Stolear
43b2de33fa setting the azure pipeline task version 2020-01-15 22:42:44 +02:00
Artur Stolear
ab48b3cddc made the azure pipeline task version 1.0.0 2020-01-15 18:31:08 +02:00
Artur Stolear
3f6597b086 update readme 2020-01-15 18:09:15 +02:00
Artur Stolear
65b3a90f3f remove @zeit/ncc in favor of webpack 2020-01-15 18:05:09 +02:00
Artur Stolear
88007cb218 use actions/checkout@v2 2020-01-15 17:59:19 +02:00
Artur Stolear
036fb8fb1d set version 5.1.2 for now 2020-01-15 17:44:41 +02:00
Artur Stolear
019e954030 move to webpack 2020-01-15 17:41:37 +02:00
Artur Stolear
f09d4de93d moved to core folder the common scripts 2020-01-15 17:41:30 +02:00
James Schafer
af8f283fe6 Remove private repo command from the basic example 2019-12-07 21:34:47 +02:00
James Schafer
8e8806b8a9 Update README.md 2019-12-07 21:34:47 +02:00
James Schafer
28adff5627 Add private repo documentation
Add git credentials to documentation to support private repositories
2019-12-07 21:34:47 +02:00
45 changed files with 80766 additions and 53634 deletions

View File

@@ -9,15 +9,19 @@ jobs:
matrix:
os: [windows-latest, ubuntu-latest, macos-latest]
steps:
- uses: actions/checkout@v1
- name: Fetch tags and master for GitVersion
- uses: actions/checkout@v2
- name: Fetch all history for all tags and branches
run: |
git fetch --tags
git branch --create-reflog master origin/master
git fetch --prune --unshallow
- run: |
npm install
npm run build:github
npm run build:azure
name: Build code
- name: Install GitVersion
uses: ./setup-gitversion
with:
versionSpec: '5.1.x'
versionSpec: '5.1.2'
- name: Use GitVersion
id: gitversion # step id used as reference for output values
uses: ./execute-gitversion

View File

@@ -11,23 +11,33 @@ jobs:
matrix:
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v1
- name: Fetch tags and master for GitVersion
- uses: actions/checkout@v2
- name: Fetch all history for all tags and branches
run: |
git fetch --tags
git branch --create-reflog master origin/master
git fetch --prune --unshallow
- run: |
npm install
npm run build:github
npm run build:azure
name: Build code
- name: Install GitVersion
uses: ./setup-gitversion
with:
versionSpec: '5.1.x'
versionSpec: '5.1.2'
- name: Use GitVersion
id: gitversion # step id used as reference for output values
uses: ./execute-gitversion
- run: |
npm install
$date = Get-Date -format "yyMMddHHmm"
$version = "${{steps.gitversion.outputs.majorMinorPatch}}.$date"
$override = '{\"version\": \"' + $version + '\"}'
npm run publish-azure -- --token ${{ secrets.TFX_TOKEN }} --override $override
$major = "${{steps.gitversion.outputs.major}}"
$minor = "${{steps.gitversion.outputs.minor}}"
. .\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
npm run publish:azure -- --token ${{ secrets.TFX_TOKEN }}
shell: pwsh
name: Publish Azure extension

54
.vscode/launch.json vendored
View File

@@ -5,40 +5,52 @@
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"preLaunchTask": "tsc: build - src/azure/tsconfig.json",
"name": "Run Azure Pipeline (setup) Task",
"program": "${workspaceFolder}/src/azure/setup.ts",
"outFiles": ["${workspaceFolder}/**/*.js"]
"preLaunchTask": "Build-Mock",
"name": "Debug Mock Setup GitVersion",
"program": "${workspaceFolder}/dist/mock/setup-gitversion/bundle.js",
"outFiles": [ "${workspaceFolder}/**/*.js" ]
},
{
"type": "node",
"request": "launch",
"preLaunchTask": "tsc: build - src/github/tsconfig.json",
"name": "Run GitHub Actions (setup)",
"program": "${workspaceFolder}/src/github/setup.ts",
"outFiles": ["${workspaceFolder}/**/*.js"]
"preLaunchTask": "Build-Azure",
"name": "Debug Azure Setup GitVersion",
"program": "${workspaceFolder}/dist/azure/setup-gitversion/bundle.js",
"outFiles": [ "${workspaceFolder}/**/*.js" ]
},
{
"type": "node",
"request": "launch",
"preLaunchTask": "tsc: build - src/azure/tsconfig.json",
"name": "Run Azure Pipeline (execute) Task",
"program": "${workspaceFolder}/src/azure/execute.ts",
"outFiles": ["${workspaceFolder}/**/*.js"]
"preLaunchTask": "Build-GitHub",
"name": "Debug GitHub Setup GitVersion",
"program": "${workspaceFolder}/dist/github/setup-gitversion/bundle.js",
"outFiles": [ "${workspaceFolder}/**/*.js" ]
},
{
"type": "node",
"request": "launch",
"preLaunchTask": "tsc: build - src/github/tsconfig.json",
"name": "Run GitHub Actions (execute)",
"program": "${workspaceFolder}/src/github/execute.ts",
"outFiles": ["${workspaceFolder}/**/*.js"]
}
"preLaunchTask": "Build-Mock",
"name": "Debug Mock Execute GitVersion",
"program": "${workspaceFolder}/dist/mock/execute-gitversion/bundle.js",
"outFiles": [ "${workspaceFolder}/**/*.js" ]
},
{
"type": "node",
"request": "launch",
"preLaunchTask": "Build-Azure",
"name": "Debug Azure Execute GitVersion",
"program": "${workspaceFolder}/dist/azure/execute-gitversion/bundle.js",
"outFiles": [ "${workspaceFolder}/**/*.js" ]
},
{
"type": "node",
"request": "launch",
"preLaunchTask": "Build-GitHub",
"name": "Debug GitHub Execute GitVersion",
"program": "${workspaceFolder}/dist/github/execute-gitversion/bundle.js",
"outFiles": [ "${workspaceFolder}/**/*.js" ]
},
]
}

22
.vscode/tasks.json vendored Normal file
View File

@@ -0,0 +1,22 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "Build-Mock",
"type": "npm",
"script": "build:mock"
},
{
"label": "Build-Azure",
"type": "npm",
"script": "build:azure"
},
{
"label": "Build-GitHub",
"type": "npm",
"script": "build:github"
},
]
}

View File

@@ -5,6 +5,7 @@
GitHub Actions that allow to install and use the GitVersion and GitReleaseManager tools
[![Build Status](https://github.com/GitTools/actions/workflows/CI/badge.svg)](https://github.com/GitTools/actions/actions)
[![Build Status](https://github.com/GitTools/actions/workflows/release/badge.svg)](https://github.com/GitTools/actions/actions)
## Usage
@@ -17,11 +18,10 @@ There are two step dependencies that are required in your workflow before runnin
```yaml
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Fetch tags and master for GitVersion
run: |
git fetch --tags
git branch --create-reflog master origin/master
uses: actions/checkout@v2
- name: Fetch all history for all tags and branches
run: |
git fetch --prune --unshallow
```
Basic:
@@ -71,4 +71,20 @@ Basic:
echo "CommitsSinceVersionSource: ${{ steps.gitversion.outputs.commitsSinceVersionSource }}"
echo "CommitsSinceVersionSourcePadded: ${{ steps.gitversion.outputs.commitsSinceVersionSourcePadded }}"
echo "CommitDate: ${{ steps.gitversion.outputs.commitDate }}"
```
### Private Repositories
Private repos require credentials before you can fetch the master branch and tags.
```yaml
steps:
- name: Checkout
- name: Checkout
uses: actions/checkout@v2
- name: Fetch all history for all tags and branches
run: |
git config remote.origin.url https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}
git fetch --prune --unshallow
```

18286
dist/azure/execute-gitversion/bundle.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,37 @@
{
"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",

View File

@@ -1,36 +0,0 @@
{
"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"
}
}

View File

@@ -8,11 +8,18 @@
"category": "Build",
"demands": [],
"version": {
"Major": "5",
"Major": "1",
"Minor": "0",
"Patch": "2"
"Patch": "0"
},
"minimumAgentVersion": "2.115.0",
"execution": {
"Node": {
"target": "bundle.js",
"argumentFormat": "",
"workingDirectory": "."
}
},
"instanceNameFormat": "gitversion-execute",
"groups": [{
"name": "gitversionDetails",
@@ -77,13 +84,5 @@
"helpMarkDown": "Additional arguments to send to GitVersion",
"groupName": "additional"
}
],
"execution": {
"Node": {
"target": "index.js",
"argumentFormat": "",
"workingDirectory": "."
}
}
]
}

View File

@@ -2,5 +2,5 @@ Versioning when using Git, solved. GitVersion looks at your Git history and work
It works with most branching strategies but has been designed mainly around GitFlow and GitHubFlow (pull request workflow). The calculated version numbers can then be accessed through variables such as `$(GitVersion.NuGetVersion)` and `$(GitVersion.SemVer)`. It is also very configurable to allow it to work with most release workflows!
![Build Task](https://raw.githubusercontent.com/GitTools/GitVersion/master/src/GitVersionVsixTask/images/build-task.png)
![Builds](https://raw.githubusercontent.com/GitTools/GitVersion/master/src/GitVersionVsixTask/images/builds.png)
![Build Task](https://raw.githubusercontent.com/GitTools/actions/master/dist/azure/images/build-task.png)
![Builds](https://raw.githubusercontent.com/GitTools/actions/master/dist/azure/images/builds.png)

18286
dist/azure/setup-gitversion/bundle.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,37 @@
{
"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",

View File

@@ -1,36 +0,0 @@
{
"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"
}
}

View File

@@ -8,11 +8,19 @@
"category": "Build",
"demands": [],
"version": {
"Major": "5",
"Major": "1",
"Minor": "0",
"Patch": "2"
"Patch": "0"
},
"minimumAgentVersion": "2.115.0",
"execution": {
"Node": {
"target": "bundle.js",
"argumentFormat": "",
"workingDirectory": "."
}
},
"instanceNameFormat": "gitversion-setup",
"inputs": [{
"name": "versionSpec",
"type": "string",
@@ -29,14 +37,5 @@
"required": false,
"helpMarkDown": "Include pre-release versions when matching a version"
}
],
"instanceNameFormat": "gitversion-setup",
"execution": {
"Node": {
"target": "index.js",
"argumentFormat": "",
"workingDirectory": "."
}
}
]
}

38
dist/azure/update-version.ps1 vendored Normal file
View File

@@ -0,0 +1,38 @@
function update-task() {
param(
[Parameter(Mandatory=$True, Position=0, ValueFromPipeline=$true)]
[System.String]
$file,
[Parameter(Mandatory=$True, Position=1, ValueFromPipeline=$false)]
[System.String]
$major,
[Parameter(Mandatory=$True, Position=2, ValueFromPipeline=$false)]
[System.String]
$minor
)
$file = Resolve-Path $file
$jqMajor = '.version.Major=\"' + $major +'\"';
$jqMinor = '.version.Minor=\"' + $minor +'\"';
Write-Host "Update task from $file to version $major.$minor"
Get-Content $file | jq $jqMajor | jq $jqMinor | Set-Content $file
}
function update-manifest() {
param(
[Parameter(Mandatory=$True, Position=0, ValueFromPipeline=$true)]
[System.String]
$file,
[Parameter(Mandatory=$True, Position=1, ValueFromPipeline=$false)]
[System.String]
$version
)
$file = Resolve-Path $file
$jqVersion = '.version=\"' + $version +'\"';
Write-Host "Update manifest version to $version"
Get-Content $file | jq $jqVersion | Set-Content $file
}

11983
dist/github/execute-gitversion/bundle.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

11983
dist/github/setup-gitversion/bundle.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

7693
dist/mock/execute-gitversion/bundle.js vendored Normal file

File diff suppressed because one or more lines are too long

7693
dist/mock/setup-gitversion/bundle.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -4,6 +4,9 @@ author: GitTools
branding:
color: gray-dark
icon: git-pull-request
runs:
using: node12
main: ../dist/github/execute-gitversion/bundle.js
inputs:
targetPath:
description: Optionally supply the path to the working directory
@@ -89,7 +92,4 @@ outputs:
commitsSinceVersionSourcePadded:
description: 'The CommitsSinceVersionSourcePadded value'
commitDate:
description: 'The CommitDate value'
runs:
using: node12
main: ../dist/github/execute/index.js
description: 'The CommitDate value'

4400
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -8,14 +8,15 @@
},
"main": "main.js",
"scripts": {
"package": "npm run package-github && npm run package-azure",
"package-azure": "npm run package-azure-setup && npm run package-azure-execute",
"package-github": "npm run package-github-setup && npm run package-github-execute",
"package-azure-setup": "ncc build src/azure/setup.ts -o dist/azure/setup",
"package-azure-execute": "ncc build src/azure/execute.ts -o dist/azure/execute",
"package-github-setup": "ncc build src/github/setup.ts -o dist/github/setup",
"package-github-execute": "ncc build src/github/execute.ts -o dist/github/execute",
"publish-azure": "tfx extension publish --root ./dist/azure --no-wait-validation --auth-type pat"
"build:mock": "webpack --config webpack.config.js --env.agent=mock",
"build:azure": "webpack --config webpack.config.js --env.agent=azure",
"build:github": "webpack --config webpack.config.js --env.agent=github",
"build:mock:prod": "npm run build:mock -- --env.mode=production",
"build:azure:prod": "npm run build:azure -- --env.mode=production",
"build:github:prod": "npm run build:github -- --env.mode=production",
"build": "npm run build:mock && npm run build:azure && npm run build:github",
"build:prod": "npm run build:mock:prod && npm run build:azure:prod && npm run build:github:prod",
"publish:azure": "tfx extension publish --root ./dist/azure --no-wait-validation --auth-type pat"
},
"author": "GitTools",
"contributors": [
@@ -23,23 +24,29 @@
],
"license": "MIT",
"dependencies": {
"@actions/core": "^1.2.0",
"@actions/exec": "^1.0.1",
"@actions/io": "^1.0.1",
"@actions/tool-cache": "^1.1.2",
"azure-pipelines-task-lib": "2.9.3",
"azure-pipelines-tool-lib": "0.12.0",
"@actions/core": "^1.2.1",
"@actions/exec": "^1.0.3",
"@actions/io": "^1.0.2",
"@actions/tool-cache": "^1.3.0",
"azure-pipelines-task-lib": "^2.9.3",
"azure-pipelines-tool-lib": "^0.12.0",
"inversify": "^5.0.1",
"typed-rest-client": "1.5.0",
"uuid": "^3.3.3"
"typed-rest-client": "^1.7.1",
"uuid": "^3.4.0"
},
"devDependencies": {
"@types/node": "12.12.11",
"@types/q": "1.5.2",
"@types/node": "^13.1.8",
"@types/q": "^1.5.2",
"@types/semver-compare": "^1.0.1",
"@types/uuid": "^3.4.6",
"json-update": "^5.3.0",
"reflect-metadata": "^0.1.13",
"tfx-cli": "0.7.11",
"replace-in-file-webpack-plugin": "^1.0.6",
"tfx-cli": "^0.7.11",
"ts-loader": "^6.2.1",
"tslint": "^5.20.1",
"typescript": "^3.7.2",
"@zeit/ncc": "^0.20.5"
"typescript": "^3.7.5",
"webpack": "^4.41.5",
"webpack-cli": "^3.3.10"
}
}

View File

@@ -4,6 +4,9 @@ author: GitTools
branding:
color: gray-dark
icon: git-pull-request
runs:
using: node12
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
@@ -12,7 +15,4 @@ inputs:
includePrerelease:
description: Include pre-release versions when matching a version
required: false
default: false
runs:
using: node12
main: ../dist/github/setup/index.js
default: false

View File

@@ -3,11 +3,15 @@ import { injectable } from "inversify";
import * as taskLib from "azure-pipelines-task-lib/task";
import * as toolLib from "azure-pipelines-tool-lib/tool";
import { IBuildAgent, IExecResult } from "../interfaces";
import { IBuildAgent, IExecResult } from "../../core/interfaces";
@injectable()
class BuildAgent implements IBuildAgent {
public get agentName(): string {
return "Azure Pipelines";
}
public find(toolName: string, versionSpec: string, arch?: string): string {
return toolLib.findLocalTool(toolName, versionSpec, arch);
}
@@ -77,15 +81,15 @@ class BuildAgent implements IBuildAgent {
return taskLib.getBoolInput(input, required);
}
public isValidInputFile(input: string, file: string) {
public isValidInputFile(input: string, file: string): boolean {
return taskLib.filePathSupplied(input) && this.fileExists(file);
}
public fileExists(file: string) {
public fileExists(file: string): boolean {
return taskLib.exist(file) && taskLib.stats(file).isFile();
}
public directoryExists(file: string) {
public directoryExists(file: string): boolean {
return taskLib.exist(file) && taskLib.stats(file).isDirectory();
}
}

View File

@@ -1,6 +1,7 @@
import * as fs from "fs";
import * as path from "path";
import * as uuidV4 from "uuid/v4";
import uuidv4 from "uuid";
import * as core from "@actions/core";
import * as exe from "@actions/exec";
@@ -9,11 +10,15 @@ import * as toolCache from "@actions/tool-cache";
import { injectable } from "inversify";
import { IBuildAgent, IExecResult } from "../interfaces";
import { IBuildAgent, IExecResult } from "../../core/interfaces";
@injectable()
class BuildAgent implements IBuildAgent {
public get agentName(): string {
return "GitHub Actions";
}
public find(toolName: string, versionSpec: string, arch?: string): string {
return toolCache.find(toolName, versionSpec, arch);
}
@@ -41,7 +46,7 @@ class BuildAgent implements IBuildAgent {
}
tempDirectory = path.join(baseLocation, "actions", "temp");
}
const dest = path.join(tempDirectory, uuidV4());
const dest = path.join(tempDirectory, uuidv4());
await io.mkdirP(dest);
return dest;
}
@@ -117,17 +122,17 @@ class BuildAgent implements IBuildAgent {
return (inputValue || "false").toLowerCase() === "true";
}
public isValidInputFile(input: string, file: string) {
public isValidInputFile(input: string, file: string): boolean {
const pathValue = path.resolve(this.getInput(input) || "");
const repoRoot = this.getSourceDir();
return pathValue !== repoRoot;
}
public fileExists(file: string) {
public fileExists(file: string): boolean {
return this._exist(file) && this._stats(file).isFile();
}
public directoryExists(file: string) {
public directoryExists(file: string): boolean {
return this._exist(file) && this._stats(file).isDirectory();
}

View File

@@ -0,0 +1,104 @@
import { injectable } from "inversify";
import { IBuildAgent, IExecResult } from "../../core/interfaces";
@injectable()
class BuildAgent implements IBuildAgent {
public get agentName(): string {
console.log("getAgentName");
return "Mock";
}
public find(toolName: string, versionSpec: string, arch?: string): string {
console.log("find");
return "find";
}
public cacheDir(sourceDir: string, tool: string, version: string, arch?: string): Promise<string> {
console.log("cacheDir");
return Promise.resolve("cacheDir");
}
public createTempDir(): Promise<string> {
console.log("createTempDir");
return Promise.resolve("createTempDir");
}
public debug(message: string): void {
console.log("debug");
}
public setFailed(message: string, done?: boolean): void {
console.log("setFailed");
}
public setSucceeded(message: string, done?: boolean): void {
console.log("setSucceeded");
}
public exportVariable(name: string, val: string): void {
console.log("exportVariable");
}
public getVariable(name: string): string {
console.log("getVariable");
return "getVariable";
}
public addPath(inputPath: string): void {
console.log("addPath");
}
public which(tool: string, check?: boolean): Promise<string> {
console.log("which");
return Promise.resolve("which");
}
public exec(exec: string, args: string[]): Promise<IExecResult> {
return Promise.resolve({
code: 0,
error: null,
stderr: "result.stderr",
stdout: "result.stdout",
});
}
public getSourceDir(): string {
console.log("getSourceDir");
return "getSourceDir";
}
public setOutput(name: string, value: string): void {
console.log("setOutput");
}
public getInput(input: string, required?: boolean): string {
console.log("getInput");
return "getInput";
}
public getBooleanInput(input: string, required?: boolean): boolean {
console.log("getBooleanInput");
return false;
}
public isValidInputFile(input: string, file: string) {
console.log("isValidInputFile");
return false;
}
public fileExists(file: string) {
console.log("fileExists");
return false;
}
public directoryExists(file: string) {
console.log("directoryExists");
return false;
}
}
export {
BuildAgent,
};

View File

@@ -1,14 +0,0 @@
import "reflect-metadata";
import { IBuildAgent, IGitVersionTool } from "../interfaces";
import { ioc } from "../ioc";
import { run } from "../main";
import { TYPES } from "../types";
import { BuildAgent } from "./build-agent";
ioc.bind<IBuildAgent>(TYPES.IBuildAgent).to(BuildAgent);
const gitVersionTool = ioc.get<IGitVersionTool>(TYPES.IGitVersionTool);
const buildAgent = ioc.get<IBuildAgent>(TYPES.IBuildAgent);
run(buildAgent, gitVersionTool);

View File

@@ -1,14 +0,0 @@
import "reflect-metadata";
import { IBuildAgent, IGitVersionTool } from "../interfaces";
import { ioc } from "../ioc";
import { setup } from "../main";
import { TYPES } from "../types";
import { BuildAgent } from "./build-agent";
ioc.bind<IBuildAgent>(TYPES.IBuildAgent).to(BuildAgent);
const gitVersionTool = ioc.get<IGitVersionTool>(TYPES.IGitVersionTool);
const buildAgent = ioc.get<IBuildAgent>(TYPES.IBuildAgent);
setup(buildAgent, gitVersionTool);

View File

@@ -1,3 +0,0 @@
{
"extends": "../tsconfig.json"
}

View File

@@ -4,6 +4,7 @@ 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";
@@ -184,7 +185,7 @@ class GitVersionTool implements IGitVersionTool {
return workDir.replace(/\\/g, "/");
}
private getArguments(workDir: string, options: IGitVersionOptions) {
private getArguments(workDir: string, options: IGitVersionOptions): string[] {
const args = [
workDir,
"/output",
@@ -220,8 +221,6 @@ class GitVersionTool implements IGitVersionTool {
}
}
const cmp = require("semver-compare");
@injectable()
class VersionManager implements IVersionManager {

View File

@@ -1,8 +1,11 @@
import { IBuildAgent, IGitVersion, IGitVersionOptions, IGitVersionTool } from "./interfaces";
import { ioc } from "./ioc";
import { RunOptions, SetupOptions, TYPES } from "./types";
import { RunOptions, SetupOptions } from "./types";
const gitVersionTool = ioc.get<IGitVersionTool>(TYPES.IGitVersionTool);
const buildAgent = ioc.get<IBuildAgent>(TYPES.IBuildAgent);
export async function setup(buildAgent: IBuildAgent, gitVersionTool: IGitVersionTool) {
export async function setup() {
try {
buildAgent.exportVariable("DOTNET_CLI_TELEMETRY_OPTOUT", "1");
@@ -18,14 +21,14 @@ export async function setup(buildAgent: IBuildAgent, gitVersionTool: IGitVersion
}
}
export async function run(buildAgent: IBuildAgent, gitVersionTool: IGitVersionTool) {
export async function run() {
try {
const inputOptions: IGitVersionOptions = getGitVersionOptions(buildAgent);
const inputOptions: IGitVersionOptions = getGitVersionOptions();
const result = await gitVersionTool.run(inputOptions);
const gitversion = JSON.parse(result.stdout) as IGitVersion;
writeGitVersionToAgent(buildAgent, gitversion);
writeGitVersionToAgent(gitversion);
if (result.code === 0) {
buildAgent.setSucceeded("GitVersion executed successfully", true);
@@ -38,7 +41,7 @@ export async function run(buildAgent: IBuildAgent, gitVersionTool: IGitVersionTo
}
}
function getGitVersionOptions(buildAgent: IBuildAgent): IGitVersionOptions {
function getGitVersionOptions(): IGitVersionOptions {
const targetPath = buildAgent.getInput(RunOptions.targetPath);
@@ -63,7 +66,7 @@ function getGitVersionOptions(buildAgent: IBuildAgent): IGitVersionOptions {
};
}
function writeGitVersionToAgent(buildAgent: IBuildAgent, gitversion: IGitVersion): void {
function writeGitVersionToAgent(gitversion: IGitVersion): void {
buildAgent.setOutput("major", gitversion.Major.toString());
buildAgent.setOutput("minor", gitversion.Minor.toString());

View File

@@ -5,6 +5,7 @@ export interface IVersionManager {
}
export interface IBuildAgent {
agentName: string;
find(toolName: string, versionSpec: string, arch?: string): string;
cacheDir(sourceDir: string, tool: string, version: string, arch?: string): Promise<string>;
createTempDir(): Promise<string>;

View File

@@ -1,12 +1,14 @@
import { Container } from "inversify";
import { BuildAgent } from "../agent/mock/build-agent";
import { DotnetTool, GitVersionTool, VersionManager } from "./common";
import { IDotnetTool, IGitVersionTool, IVersionManager } from "./interfaces";
import { IBuildAgent, IDotnetTool, IGitVersionTool, IVersionManager } from "./interfaces";
import { TYPES } from "./types";
const ioc = new Container();
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);

View File

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

View File

@@ -1,14 +0,0 @@
import "reflect-metadata";
import { IBuildAgent, IGitVersionTool } from "../interfaces";
import { ioc } from "../ioc";
import { run } from "../main";
import { TYPES } from "../types";
import { BuildAgent } from "./build-agent";
ioc.bind<IBuildAgent>(TYPES.IBuildAgent).to(BuildAgent);
const gitVersionTool = ioc.get<IGitVersionTool>(TYPES.IGitVersionTool);
const buildAgent = ioc.get<IBuildAgent>(TYPES.IBuildAgent);
run(buildAgent, gitVersionTool);

View File

@@ -1,14 +0,0 @@
import "reflect-metadata";
import { IBuildAgent, IGitVersionTool } from "../interfaces";
import { ioc } from "../ioc";
import { setup } from "../main";
import { TYPES } from "../types";
import { BuildAgent } from "./build-agent";
ioc.bind<IBuildAgent>(TYPES.IBuildAgent).to(BuildAgent);
const gitVersionTool = ioc.get<IGitVersionTool>(TYPES.IGitVersionTool);
const buildAgent = ioc.get<IBuildAgent>(TYPES.IBuildAgent);
setup(buildAgent, gitVersionTool);

View File

@@ -1,3 +0,0 @@
{
"extends": "../tsconfig.json"
}

4
src/setup-gitversion.ts Normal file
View File

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

View File

@@ -1,12 +1,13 @@
{
"compilerOptions": {
"module": "commonjs",
"module": "CommonJS",
"moduleResolution": "node",
"target": "es2015",
"sourceMap": false,
"lib": ["es2015", "dom"],
"target": "ES2016",
"noImplicitAny": true,
"sourceMap": true,
"lib": ["ES2016"],
"types": ["reflect-metadata"],
"inlineSourceMap": true,
"esModuleInterop":true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true
}

56
webpack.config.js Normal file
View File

@@ -0,0 +1,56 @@
const path = require('path');
const webpack = require('webpack');
const ReplaceInFileWebpackPlugin = require('replace-in-file-webpack-plugin');
module.exports = (env) => {
const mode = env.mode || 'development';
const agent = env.agent || 'mock';
return {
entry: {
'setup-gitversion': path.resolve(__dirname, 'src/setup-gitversion.ts'),
'execute-gitversion': path.resolve(__dirname, 'src/execute-gitversion.ts'),
},
target: 'node',
mode: mode,
devtool: mode == 'development' ? 'inline-source-map' : false,
module: {
rules: [{
test: /\.tsx?$/,
use: 'ts-loader',
exclude: /node_modules/,
}],
},
resolve: {
extensions: ['.tsx', '.ts', '.js', '.json'],
},
output: {
libraryTarget: 'commonjs2',
filename: '[name]/bundle.js',
path: path.resolve(__dirname, `dist/${agent}`),
},
plugins: [
new webpack.NormalModuleReplacementPlugin(
/agent\/mock\/build-agent/,
`../agent/${agent}/build-agent`
),
new ReplaceInFileWebpackPlugin([{
dir: `dist/${agent}`,
test: /bundle.js/,
rules: [{
search: /__webpack_require__\(.*\)\(resourceFile\)/,
replace: 'require(resourceFile)'
}, {
search: /call\(this, \"\/\"\)\)/gi,
replace: "call(this, __dirname))"
}, {
search: /let pkg.*'package.json'\)\);/,
replace: ''
}, {
search: /let userAgent = 'vsts-task-installer\/' \+ pkg.version;/,
replace: "let userAgent = 'vsts-task-installer'"
}]
}])
]
}
};