NOTE: since originally posting this, I have setup appveyor and dramatically simplfiied our process. for backreference, i branched the repo with the old scripted setup here: https://github.com/ngOfficeUIFabric/nuget-ngofficeuifabric/tree/scripted-deploy. Links below have been updated to point to that branch.
masternow contains the appveyor build out
full repo: https://github.com/ngOfficeUIFabric/nuget-ngofficeuifabric
goal of this library is to hold contents for a NuGet package, then using CI (travisci / circleci) have it run two gulp tasks to create the nuget package & submit via HTTP PUT to NuGet.org, updating this nuget package: https://www.nuget.org/packages/ng-office-ui-fabric/
external dependencies:
npm install -g typescript tsdall work is done using gulp written in typescript, so get everything you need (type def's) and compile (ref)
npm run buildrun the gulp task to build the package (everything for the package is in the /src folder)... this programatically creates a ZIP file using this code
gulp build-packagethat code is what's causing an issue... when you try to submit the above package using the following:
gulp submit-package --pkgsrc "dist/ng-office-ui-fabric.0.5.0.nupkg" --nugetApiKey "11111-11111-11111-1111-111111111"you get this from your endpoint:
'The NuGet package contains an invaid .nuspec file. The error encountered was:'Data at the root level is invalid. Line 1, position 1.'. Correct the error and try again.',
if i try to submit the package i download from nuget using this same process (just not running our packaging logic), it works as expected (well the endpoint reports and error that the package with the same verison is already deployed)
the confusing part is if you unzip the contents and compare it to the contents of the nupkg file you download from nuget.org, it's identical... even using a comnparison tool... no differences.
btw... the existing releases on nuget.org for this package were created not using this process... we're simply trying to automate it. the backup plan is to add the stuff we need to use the command line client and use appveyor for windows-based hosted CI to automate the submission