U4-10006 - Finalize Core VSTS/PS migration

Created by Stephan 11 Jun 2017, 19:44:22 Updated by Sebastiaan Janssen 14 Sep 2017, 07:54:38

Tags: Unscheduled

Relates to: U4-10414

Subtask of: U4-9609

@ZpqrtBnk did some work before CG17, then more during the retreat, to the point that it is almost done. Do not want to lose what has been done, so this task is to finalize it and migrate Core build to VSTS and PowerShell. Also, it could be used as a template for other projects (Deploy, Forms).

7 Attachments

Download belle.log

Download build.tmp.zip

Download belle.log

Comments

Stephan 12 Jun 2017, 17:23:33

Current status: complete build OK via PS script on localhost. On VSTS, version management, pre-build, compile, post-build all OK - tests not running due to VSTS oddities, so still need to work on tests then packing NuGet


Stephan 15 Jun 2017, 13:52:20

PR: https://github.com/umbraco/Umbraco-CMS/pull/2003

Status:

New PS-based build mechanism, produces identical NuGet packages and identical zip files, except some intentional differences:

  • the new WebPI zip file contain pdb files
  • the new AllBinaries zip file does not contain useless *.dll.config files
  • the new AllBinaries zip file does not contain a rogue dotless.Core.pdb file
  • the new Cms zip file contains pdb files

Review:

Read the build/build.md documentation file, rebuild Umbraco entirely, compare the zip files and NuGet packages produced by the build with what build.bat was producing.

Ensure that the Cms Continuous VSTS build definition builds correctly.

Ensure that Visual Studio can rebuild a fresh clone of the solution (including Belle).

Note:

Test ThreadSafetyServiceTest has been disabled on VSTS because SqlCE consistently fails/locks when running the test, and I could not figure out why. Will require further analysis.


Stephan 15 Jun 2017, 14:14:31

Also note that on VSTS some of our tests that rely on pure luck (such as comparing dates, etc) may fail... we need to fix them eventually.


Shannon Deminick 06 Jul 2017, 04:00:37

So the main thing missing from all of this is the very easy ability for a community member to execute a single file which is an absolute must.

Any person should be able to clone the source and execute a single file to create build outputs. So all of this Powershell module importing, etc... is going to need to be put into a .bat or .ps1 file that a user can execute and all of this is done for them.

This is also part of the reason the UmbracVersion.txt file existed since it provided a very simple way to set an umbraco version for the build. If we continue to not use it that is fine but the built in .bat and/or .ps1 file is going to need to allow injecting this parameter.

The other thing is this build should perform the doc building which is found currently in BuildDocs.ps1, this builds the sln with msbuild and then creates the .NET and Angular docs. The build server is configured to push these to Our, see https://ci.appveyor.com/project/Umbraco/umbraco-cms/settings/notifications


Shannon Deminick 06 Jul 2017, 04:01:19

Unfortunately my build stalls here


Stephan 07 Jul 2017, 14:18:22

Will create a build.ps1 script that imports the module and build.

Once the module is imported, changing the version is just eg "Set-UmbracoVersion 7.6.4-alpha33 " which IMHO is simpler than editing the version file (and "Get-UmbracoVersion" reports the current version). But it requires the module to be imported, so again, will find out an easy way to do this.

Proposing to add a parameter to build.ps1 so if a version is supplied, it will "Set-UmbracoVersion" for you.

Regarding BuildDocs.ps1... haven't touched it as build.bat was not dealing with it either - will do.

Finally... annoying that your build stalls while downloading Node - so IIC nothing happens? It just stays there forever and never returns?


Stephan 07 Jul 2017, 14:45:08

Have pushed build.ps1 script - so now, a user just needs to fire Powershell, cd to the Git repo's root, and run "build\build.ps1" to build. Additionally, it's possible to build a different version by running "build\build.ps1 7.6.33-gamma42" provided that the version is a valid semver version.

Works OK here, so not exactly sure what's happening with the Node download, using a standard Powershell WebClient.DownloadFile... are you sure it's not your "fast & reliable" Internet link having a moment?

Next: looking into building the docs too!


Stephan 09 Jul 2017, 16:48:56

Have pushed updates... now one can do

build\build.ps1 -mo

for "module only" = it loads the PowerShell module and that's all.

And then have moved docs to the new Build-UmbracoDocs command. So basically in a new PowerShell at the root of the repo,

build\build.ps1 -mo Build-UmbracoDocs

produces the docs artifacts in build.out.


Stephan 10 Jul 2017, 14:03:12

Have updated the VSTS tasks so now it generates the docs and upload the docs files as artifacts.


Stephan 12 Jul 2017, 08:59:04

see this build: https://umbraco.visualstudio.com/Umbraco%20Cms/_build/index?buildId=1238&_a=summary

worked, and has docs as artifacts (docs artifacts folder also contains nupkg, that's an error that's fixed now)

also, the whole PS works on my machine = back into review


Shannon Deminick 14 Jul 2017, 01:25:21

I added a comment on the PR, i think you checked in a change to the trees config that you weren't meant to.

When I run build.ps1 it 'builds' but I get errors so it doesn't build correctly:

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> .\build.ps1
Import Umbraco build Powershell module
Setup Umbraco build Environment
Download NuGet...
Download 7-Zip...
Download VsWhere...
Download Semver...
Download Npm...
The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
Build Umbraco
>> Build-Umbraco <all> <>
Get Build Environment
Download NuGet...
Download 7-Zip...
Download VsWhere...
Get Version
Download NuGet...
Download 7-Zip...
Download VsWhere...
Version 7.6.4
>> Prepare Build
Clear folders and files
Save existing web.config as web.config.temp-build
(will be restored during post-build)
Create clean web.config
>> Restore NuGet
Logging to C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build.tmp\nuget.restore.log
>> Compile Belle
Logging to C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build.tmp\belle.log
& : The term 'grunt' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
At C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build\Modules\Umbraco.Build\Umbraco.Build.psm1:93 char:4
+   &grunt build --buildversion=$version.Release >> $tmp\belle.log 2>&1
+    ~~~~~
    + CategoryInfo          : ObjectNotFound: (grunt:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Set hidden attribute on node_modules
>> Compile Umbraco
Logging to C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build.tmp\msbuild.umbraco.log
>> Prepare Tests
Copy data files
Create bin directory
>> Compile Tests
Logging to C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build.tmp\msbuild.tests.log
>> Prepare Packages
Restoring existing web.config
Clean build
Cleanup presentation
Create directories
Copy xml documentation
Copy transformed configs and langs
Copy transformed web.config
Offset dlls timestamps
Copy SqlCE libraries
Copy Belle
ls : Cannot find path
C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\src\Umbraco.Web.UI.Client\build\belle\ because it does not
exist.
At C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build\Modules\Umbraco.Build\Utilities.ps1:56 char:12
+   $files = ls -r "$source\$select"
+            ~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\Users\Shanno...nt\build\belle\:String) [Get-ChildItem], ItemNotFound
   Exception
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

Prepare WebPI

I've attached the belle.log and all other log files.

After this I get a crazy amount of powershell errors, for example:

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> Save existing web.config as web.config.temp-build
Save : The term 'Save' is not recognized as the name of a cmdlet, function, script file, or operable program. Check
the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Save existing web.config as web.config.temp-build
+ ~~~~
    + CategoryInfo          : ObjectNotFound: (Save:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> (will be restored during post-build)
will : The term 'will' is not recognized as the name of a cmdlet, function, script file, or operable program. Check
the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:2
+ (will be restored during post-build)
+  ~~~~
    + CategoryInfo          : ObjectNotFound: (will:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> Create clean web.config
Create : The term 'Create' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Create clean web.config
+ ~~~~~~
    + CategoryInfo          : ObjectNotFound: (Create:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> >> Restore NuGet
>> : The term '>>' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ >> Restore NuGet
+ ~~
    + CategoryInfo          : ObjectNotFound: (>>:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> Logging to C:\Users\Shannon\Documents\_Projects\Umbra
co\Umbraco_7.5\build.tmp\nuget.restore.log
Logging : The term 'Logging' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Logging to C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\b ...
+ ~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Logging:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> >> Compile Belle
>> : The term '>>' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ >> Compile Belle
+ ~~
    + CategoryInfo          : ObjectNotFound: (>>:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> Logging to C:\Users\Shannon\Documents\_Projects\Umbra
co\Umbraco_7.5\build.tmp\belle.log
Logging : The term 'Logging' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Logging to C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\b ...
+ ~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Logging:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> & : The term 'grunt' is not recognized as the name of
 a cmdlet, function, script file, or operable program. Check the
& : The term ':' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:3
+ & : The term 'grunt' is not recognized as the name of a cmdlet, funct ...
+   ~
    + CategoryInfo          : ObjectNotFound: (::String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> spelling of the name, or if a path was included, veri
fy that the path is correct and try again.
spelling : The term 'spelling' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ spelling of the name, or if a path was included, verify that the path ...
+ ~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (spelling:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> At C:\Users\Shannon\Documents\_Projects\Umbraco\Umbra
co_7.5\build\Modules\Umbraco.Build\Umbraco.Build.psm1:93 char:4
The AT command has been deprecated. Please use schtasks.exe instead.

Invalid command.

The AT command schedules commands and programs to run on a computer at
a specified time and date. The Schedule service must be running to use
the AT command.

AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\computername] time [/INTERACTIVE]
    [ /EVERY:date[,...] | /NEXT:date[,...]] "command"

\\computername     Specifies a remote computer. Commands are scheduled on the
                   local computer if this parameter is omitted.
id                 Is an identification number assigned to a scheduled
                   command.
/delete            Cancels a scheduled command. If id is omitted, all the
                   scheduled commands on the computer are canceled.
/yes               Used with cancel all jobs command when no further
                   confirmation is desired.
time               Specifies the time when command is to run.
/interactive       Allows the job to interact with the desktop of the user
                   who is logged on at the time the job runs.
/every:date[,...]  Runs the command on each specified day(s) of the week or
                   month. If date is omitted, the current day of the month
                   is assumed.
/next:date[,...]   Runs the specified command on the next occurrence of the
                   day (for example, next Thursday).  If date is omitted, the
                   current day of the month is assumed.
"command"          Is the Windows NT command, or batch program to be run.

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> +   &grunt build --buildversion=$version.Release >> $
tmp\belle.log 2>&1
At line:1 char:2
+ +   &grunt build --buildversion=$version.Release >> $tmp\belle.log 2> ...
+  ~
Missing expression after unary operator '+'.
At line:1 char:5
+ +   &grunt build --buildversion=$version.Release >> $tmp\belle.log 2> ...
+     ~
Unexpected token '&' in expression or statement.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : MissingExpressionAfterOperator

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> +    ~~~~~
At line:1 char:2
+ +    ~~~~~
+  ~
Missing expression after unary operator '+'.
At line:1 char:6
+ +    ~~~~~
+      ~~~~~
Unexpected token '~~~~~' in expression or statement.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : MissingExpressionAfterOperator

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build>     + CategoryInfo          : ObjectNotFound: (grunt:
String) [], CommandNotFoundException
At line:1 char:6
+     + CategoryInfo          : ObjectNotFound: (grunt:String) [], Comm ...
+      ~
Missing expression after unary operator '+'.
At line:1 char:7
+     + CategoryInfo          : ObjectNotFound: (grunt:String) [], Comm ...
+       ~~~~~~~~~~~~
Unexpected token 'CategoryInfo' in expression or statement.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : MissingExpressionAfterOperator

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build>     + FullyQualifiedErrorId : CommandNotFoundExceptio
n
At line:1 char:6
+     + FullyQualifiedErrorId : CommandNotFoundException
+      ~
Missing expression after unary operator '+'.
At line:1 char:7
+     + FullyQualifiedErrorId : CommandNotFoundException
+       ~~~~~~~~~~~~~~~~~~~~~
Unexpected token 'FullyQualifiedErrorId' in expression or statement.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : MissingExpressionAfterOperator

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build>
PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> Set hidden attribute on node_modules
Set-Variable : A positional parameter cannot be found that accepts argument 'on'.
At line:1 char:1
+ Set hidden attribute on node_modules
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Set-Variable], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.SetVariableCommand

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> >> Compile Umbraco
>> : The term '>>' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ >> Compile Umbraco
+ ~~
    + CategoryInfo          : ObjectNotFound: (>>:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> Logging to C:\Users\Shannon\Documents\_Projects\Umbra
co\Umbraco_7.5\build.tmp\msbuild.umbraco.log
Logging : The term 'Logging' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Logging to C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\b ...
+ ~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Logging:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> >> Prepare Tests
>> : The term '>>' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ >> Prepare Tests
+ ~~
    + CategoryInfo          : ObjectNotFound: (>>:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> Copy data files
Copy : Cannot find path 'C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build\data' because it does not
exist.
At line:1 char:1
+ Copy data files
+ ~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\Users\Shanno..._7.5\build\data:String) [Copy-Item], ItemNotFoundExce
   ption
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.CopyItemCommand

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> Create bin directory
Create : The term 'Create' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Create bin directory
+ ~~~~~~
    + CategoryInfo          : ObjectNotFound: (Create:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> >> Compile Tests
>> : The term '>>' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ >> Compile Tests
+ ~~
    + CategoryInfo          : ObjectNotFound: (>>:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> Logging to C:\Users\Shannon\Documents\_Projects\Umbra
co\Umbraco_7.5\build.tmp\msbuild.tests.log
Logging : The term 'Logging' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Logging to C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\b ...
+ ~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Logging:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> >> Prepare Packages
>> : The term '>>' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ >> Prepare Packages
+ ~~
    + CategoryInfo          : ObjectNotFound: (>>:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> Restoring existing web.config
Restoring : The term 'Restoring' is not recognized as the name of a cmdlet, function, script file, or operable
program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Restoring existing web.config
+ ~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Restoring:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> Clean build
Clean : The term 'Clean' is not recognized as the name of a cmdlet, function, script file, or operable program. Check
the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Clean build
+ ~~~~~
    + CategoryInfo          : ObjectNotFound: (Clean:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> Cleanup presentation
Cleanup : The term 'Cleanup' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Cleanup presentation
+ ~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Cleanup:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> Create directories
Create : The term 'Create' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Create directories
+ ~~~~~~
    + CategoryInfo          : ObjectNotFound: (Create:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> Copy xml documentation
Copy : Cannot find path 'C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build\xml' because it does not exist.
At line:1 char:1
+ Copy xml documentation
+ ~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\Users\Shanno...o_7.5\build\xml:String) [Copy-Item], ItemNotFoundExce
   ption
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.CopyItemCommand

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> Copy transformed configs and langs
Copy-Item : A positional parameter cannot be found that accepts argument 'and'.
At line:1 char:1
+ Copy transformed configs and langs
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Copy-Item], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.CopyItemCommand

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> Copy transformed web.config
Copy : Cannot find path 'C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build\transformed' because it does
not exist.
At line:1 char:1
+ Copy transformed web.config
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\Users\Shanno...ild\transformed:String) [Copy-Item], ItemNotFoundExce
   ption
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.CopyItemCommand

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> Offset dlls timestamps
Offset : The term 'Offset' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Offset dlls timestamps
+ ~~~~~~
    + CategoryInfo          : ObjectNotFound: (Offset:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> Copy SqlCE libraries
Copy : Cannot find path 'C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build\SqlCE' because it does not
exist.
At line:1 char:1
+ Copy SqlCE libraries
+ ~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\Users\Shanno...7.5\build\SqlCE:String) [Copy-Item], ItemNotFoundExce
   ption
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.CopyItemCommand

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> Copy Belle
Copy : Cannot find path 'C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build\Belle' because it does not
exist.
At line:1 char:1
+ Copy Belle
+ ~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\Users\Shanno...7.5\build\Belle:String) [Copy-Item], ItemNotFoundExce
   ption
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.CopyItemCommand

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> ls : Cannot find path
Get-ChildItem : A positional parameter cannot be found that accepts argument 'find'.
At line:1 char:1
+ ls : Cannot find path
+ ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Get-ChildItem], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> 'C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco
_7.5\src\Umbraco.Web.UI.Client\build\belle\' because it does not
At line:1 char:99
+ ... o\Umbraco_7.5\src\Umbraco.Web.UI.Client\build\belle\' because it does ...
+                                                           ~~~~~~~
Unexpected token 'because' in expression or statement.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : UnexpectedToken

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> exist.
exist. : The term 'exist.' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ exist.
+ ~~~~~~
    + CategoryInfo          : ObjectNotFound: (exist.:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> At C:\Users\Shannon\Documents\_Projects\Umbraco\Umbra
co_7.5\build\Modules\Umbraco.Build\Utilities.ps1:56 char:12
The AT command has been deprecated. Please use schtasks.exe instead.

Invalid command.

The AT command schedules commands and programs to run on a computer at
a specified time and date. The Schedule service must be running to use
the AT command.

AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\computername] time [/INTERACTIVE]
    [ /EVERY:date[,...] | /NEXT:date[,...]] "command"

\\computername     Specifies a remote computer. Commands are scheduled on the
                   local computer if this parameter is omitted.
id                 Is an identification number assigned to a scheduled
                   command.
/delete            Cancels a scheduled command. If id is omitted, all the
                   scheduled commands on the computer are canceled.
/yes               Used with cancel all jobs command when no further
                   confirmation is desired.
time               Specifies the time when command is to run.
/interactive       Allows the job to interact with the desktop of the user
                   who is logged on at the time the job runs.
/every:date[,...]  Runs the command on each specified day(s) of the week or
                   month. If date is omitted, the current day of the month
                   is assumed.
/next:date[,...]   Runs the specified command on the next occurrence of the
                   day (for example, next Thursday).  If date is omitted, the
                   current day of the month is assumed.
"command"          Is the Windows NT command, or batch program to be run.

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> +   $files = ls -r "$source\$select"
At line:1 char:1
+ +   $files = ls -r "$source\$select"
+ ~~~~~~~~~~
The assignment expression is not valid. The input to an assignment operator must be an object that is able to accept
assignments, such as a variable or a property.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : InvalidLeftHandSide

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build> +            ~~~~~~~~~~~~~~~~~~~~~~~
At line:1 char:2
+ +            ~~~~~~~~~~~~~~~~~~~~~~~
+  ~
Missing expression after unary operator '+'.
At line:1 char:14
+ +            ~~~~~~~~~~~~~~~~~~~~~~~
+              ~~~~~~~~~~~~~~~~~~~~~~~
Unexpected token '~~~~~~~~~~~~~~~~~~~~~~~' in expression or statement.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : MissingExpressionAfterOperator

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build>     + CategoryInfo          : ObjectNotFound: (C:\Use
rs\Shanno...nt\build\belle\:String) [Get-ChildItem], ItemNotFound
At line:1 char:6
+     + CategoryInfo          : ObjectNotFound: (C:\Users\Shanno...nt\b ...
+      ~
Missing expression after unary operator '+'.
At line:1 char:7
+     + CategoryInfo          : ObjectNotFound: (C:\Users\Shanno...nt\b ...
+       ~~~~~~~~~~~~
Unexpected token 'CategoryInfo' in expression or statement.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : MissingExpressionAfterOperator

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build>    Exception
Exception : The term 'Exception' is not recognized as the name of a cmdlet, function, script file, or operable
program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:4
+    Exception
+    ~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Exception:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\Users\Shannon\Documents\_Projects\Umbraco\Umbraco_7.5\build>     + FullyQualifiedErrorId : PathNotFound,Microsoft.
PowerShell.Commands.GetChildItemCommand
At line:1 char:6
+     + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Comma ...
+      ~
Missing expression after unary operator '+'.
At line:1 char:7
+     + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Comma ...
+       ~~~~~~~~~~~~~~~~~~~~~
Unexpected token 'FullyQualifiedErrorId' in expression or statement.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : MissingExpressionAfterOperator


Stephan 17 Jul 2017, 07:46:58

did some fixing over the weekend, just pushed everything, ready for testing


Stephan 21 Jul 2017, 12:18:03

the long paths issue may be addressed with Git config core.longpaths = true

FF = fixed a few things, now it works on VSTS as well as on my machine and should be way more robust - any chance u can test again?


Shannon Deminick 24 Jul 2017, 09:40:46

Apart from this one error which i fixed by deleting the folder, it worked. I'm sure the script can deal with the folder already existing quite easily though... oh but it seems it already tries that since on second built it 'just worked'

I had some NPM errors in my belle.log but the output seems to have still worked (i've attached that too)

I've tested:

  • The build.tmp/WebApp works by running it in VS Code just like we could do with the old built.bat = OK
  • I compared the build.out/UmbracoCms.7.6.5.zip output with the zip file that you download from our and they are exactly the same apart from a bunch of text files that have DOS line endings instead of UNIX line ending but that is probably totally fine. There are no extra or missing files
  • I did the same with the nupkg files and it's the same result, except for some odd metadata file but that must be a nuget special file that is generated on package build (see screenshot)

So I think it's good

Maybe @sebastiaan has other feedback?


Sebastiaan Janssen 24 Jul 2017, 19:23:04

There's a ~/Properties/Settings.settings folder in the zip file which is not supposed to be there. dotless.Core.pdb is not supposed to be in the bin folder

All the pdbs and the source are not supposed to be in the .Core NuGet package but in the symbols package (see screenshot).


Stephan 25 Jul 2017, 11:48:29

@Shandem re your screenshots: first one is because we (silently) failed to delete the directory, not sure why, will look into it later. second one is expected, building belle produces all sorts of errors... third is expected too afaik

@sebastiaan will look into these (but low prio for now)


Sebastiaan Janssen 25 Jul 2017, 14:50:54

All looking good now after a few adjustments!


Sebastiaan Janssen 14 Sep 2017, 07:43:59

This all works now, I will create a few more tasks for getting a release build for final releases and deployment (to blob / nuget).


Priority: Normal

Type: Task

State: Fixed

Assignee:

Difficulty: Normal

Category:

Backwards Compatible: True

Fix Submitted:

Affected versions:

Due in version:

Sprint: Sprint 67

Story Points: 5

Cycle: