diff --git a/.gitignore b/.gitignore index 4a69e9b..fa03698 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,7 @@ coverage # Compiled binary addons (http://nodejs.org/api/addons.html) build/Release dist +.vscode # Dependency directories node_modules diff --git a/README.md b/README.md new file mode 100644 index 0000000..4cd5870 --- /dev/null +++ b/README.md @@ -0,0 +1,21 @@ +# Windows Machine File Copy Task (WinRM) +### Overview +The task is used to copy application files and other artifacts that are required to install the application on Windows Machines like PowerShell scripts, PowerShell-DSC modules etc. The task provides the ability to copy files to Windows Machines. The tasks uses WinRM for the data transfer. + + +> This task defers from the original task that ships with VSTS/TFS by the fact that this implementation uses WinRM for the file transfer instead of robocopy on which the original task is based on. +In certain situations, due to the network restrictions, mounting the drive and using the necessary protocols is not possible. Thus, for such scenarios, where WinRM is enabled, this task will solve the issue. + +### Requirements + +The only requirement is PowerShell V5 installed both on the build server and on the machine on which you are trying to copy the files to. + +### The different parameters of the task are explained below: + +* **Source**: The source of the files. As described above using pre-defined system variables like $(Build.Repository.LocalPath) make it easy to specify the location of the build on the Build Automation Agent machine. The variables resolve to the working folder on the agent machine, when the task is run on it. Wild cards like **\*.zip are not supported. +* **Machines**: Specify comma separated list of machine FQDNs/ip addresses along with port(optional). For example dbserver.fabrikam.com, dbserver_int.fabrikam.com:5986,192.168.34:5986. +* **Admin Login**: Domain/Local administrator of the target host. Format: <Domain or hostname>\ < Admin User>. +* **Password**: Password for the admin login. It can accept variable defined in Build/Release definitions as '$(passwordVariable)'. You may mark variable type as 'secret' to secure it. +* **Destination Folder**: The folder in the Windows machines where the files will be copied to. An example of the destination folder is c:\FabrikamFibre\Web. +* **Clean Target**: Checking this option will clean the destination folder prior to copying the files to it. +* **Copy Files in Parallel**: Checking this option will copy files to all the target machines in parallel, which can speed up the copying process. \ No newline at end of file diff --git a/src/README.md b/src/README.md index 9989960..4cd5870 100644 --- a/src/README.md +++ b/src/README.md @@ -1,32 +1,21 @@ -# WinRmFileCopy `0.1.0` -Windows Machine File Copy (WinRM) +# Windows Machine File Copy Task (WinRM) +### Overview +The task is used to copy application files and other artifacts that are required to install the application on Windows Machines like PowerShell scripts, PowerShell-DSC modules etc. The task provides the ability to copy files to Windows Machines. The tasks uses WinRM for the data transfer. -> INSTRUCTIONS -> -> Your shiny new extension is ready! Try `gulp package` to check out :) -> -> Customize your extension as you like... -> * Replace the logo.png, logo_large.svg files with your extension\'s logo. -> * Replace the icon.png, icon.svg files with your task\'s logo. We recommend inkscape to create these files. -> * Update ' + this.destinationPath('README.md')); -> -> Or publish the vsix if you\'re feeling adventurous. -> -> If you have feedback/bugs/praise for us, share it at -> http://github.com/codito/generator-vsts-task/issues -> We welcome patches/pull requests too ;) -> EDIT ME -> This content will show up in the Visualstudio Marketplace -> homepage for your extension +> This task defers from the original task that ships with VSTS/TFS by the fact that this implementation uses WinRM for the file transfer instead of robocopy on which the original task is based on. +In certain situations, due to the network restrictions, mounting the drive and using the necessary protocols is not possible. Thus, for such scenarios, where WinRM is enabled, this task will solve the issue. -# Configuration +### Requirements -> TODO -> Show how to configure the extension +The only requirement is PowerShell V5 installed both on the build server and on the machine on which you are trying to copy the files to. -# Usage +### The different parameters of the task are explained below: -> TODO -> And then document the primary flows. Feel free to link to -> your repository or website for detailed steps. +* **Source**: The source of the files. As described above using pre-defined system variables like $(Build.Repository.LocalPath) make it easy to specify the location of the build on the Build Automation Agent machine. The variables resolve to the working folder on the agent machine, when the task is run on it. Wild cards like **\*.zip are not supported. +* **Machines**: Specify comma separated list of machine FQDNs/ip addresses along with port(optional). For example dbserver.fabrikam.com, dbserver_int.fabrikam.com:5986,192.168.34:5986. +* **Admin Login**: Domain/Local administrator of the target host. Format: <Domain or hostname>\ < Admin User>. +* **Password**: Password for the admin login. It can accept variable defined in Build/Release definitions as '$(passwordVariable)'. You may mark variable type as 'secret' to secure it. +* **Destination Folder**: The folder in the Windows machines where the files will be copied to. An example of the destination folder is c:\FabrikamFibre\Web. +* **Clean Target**: Checking this option will clean the destination folder prior to copying the files to it. +* **Copy Files in Parallel**: Checking this option will copy files to all the target machines in parallel, which can speed up the copying process. \ No newline at end of file diff --git a/src/images/logo-large.png b/src/images/logo-large.png new file mode 100644 index 0000000..165fa8c Binary files /dev/null and b/src/images/logo-large.png differ diff --git a/src/images/logo.png b/src/images/logo.png index e792675..be08c6b 100644 Binary files a/src/images/logo.png and b/src/images/logo.png differ diff --git a/src/images/logo_large.png b/src/images/logo_large.png deleted file mode 100644 index d697bf1..0000000 Binary files a/src/images/logo_large.png and /dev/null differ diff --git a/src/vss-extension.json b/src/vss-extension.json index 5788f73..46a1a81 100644 --- a/src/vss-extension.json +++ b/src/vss-extension.json @@ -1,17 +1,17 @@ { "manifestVersion": 1, "extensionId": "win-rm-file-copy", - "name": "WinRmFileCopy", - "version": "0.1.0", + "name": "WinRm File Copy", + "version": "1.0.0", "publisher": "mmajcica", "description": "Windows Machine File Copy (WinRM)", "public": false, "galleryFlags": [ - "Preview" + "Public" ], "icons": { "default": "images/logo.png", - "large": "images/logo_large.png" + "large": "images/logo-large.png" }, "categories": [ "Build and release" @@ -27,12 +27,22 @@ "uri": "http://blog.majcica.com/" }, "support": { - "uri": "http://blog.majcica.com/" + "uri": "http://blog.majcica.com/2017/12/01/using-windows-machine-file-copy-winrm-vsts-extension" + }, + "repository": { + "uri": "https://github.com/mmajcica/win-rm-file-copy" + }, + "issues": { + "uri": "https://github.com/mmajcica/win-rm-file-copy/issues" } }, + "repository": { + "type": "git", + "uri": "https://github.com/mmajcica/win-rm-file-copy" + }, "branding": { - "color": "#777", - "theme": "light" + "color": "#09090B", + "theme": "dark" }, "content": { "details": { diff --git a/src/win-rm-file-copy/icon.png b/src/win-rm-file-copy/icon.png index aa23f71..ad1edb9 100644 Binary files a/src/win-rm-file-copy/icon.png and b/src/win-rm-file-copy/icon.png differ diff --git a/src/win-rm-file-copy/task.json b/src/win-rm-file-copy/task.json index dc18005..b1c34e5 100644 --- a/src/win-rm-file-copy/task.json +++ b/src/win-rm-file-copy/task.json @@ -4,7 +4,7 @@ "friendlyName": "Windows Machine File Copy (WinRM)", "description": "Copy files on remote machines via WinRM", "author": "Mario Majcica", - "helpMarkDown": "Replace with markdown to show in help", + "helpMarkDown": "[More Information](https://marketplace.visualstudio.com/items?itemName=mmajcica.win-rm-file-copy)", "category": "Deploy", "visibility": [ "Build",