AfterBuild not respected for WebDeploy
Hi,
I've hit a problem when it comes to using WebDeploy in a project of mine: https://ci.appveyor.com/project/JohnReilly/proverb-offline
This project uses gulp to create a build folder which contains static assets (JS / CSS / fonts etc). To handle this the appveyor.yml contains the following section:
before_build:
- cmd: >-
nuget restore Proverb.sln
npm install -g bower
npm install -g gulp
cd Proverb.Web
bower install
npm install
gulp
cd ..
This creates the build folder under the Proverb.Web folder. (When built in Visual Studio the Task Runner Explorer runs the gulp task as part of the Visual Studio build - it is separately invoked here because Visual Studio is not performing the build in AppVeyor.)
Also in the appveyor.yml are the following build and deploy settings:
build:
project: Proverb.sln
publish_wap: true
verbosity: minimal
# snip
deploy:
- provider: WebDeploy
server:
secure: NvzatElBACvT9rl9q93l4Ou1LdB7WvF4cAV61SyergZ20myLeUxsCfsUkgsGTcjC8Khw2jC0HrTdJsGrfwx2YCI90yYgC7xqDnGF4TLpnc0=
website: proverb
username:
secure: hF4z+9jP+et7duuTVWcVBw==
password:
secure: dSc6RSokZrmvp0+a4tYUSJhsVUN+IasvnJ8LrQpQCoqUOIfYF5TbNK7E6MGGH1K7ao3UzrSUodQ18KJhhvsI9g==
remove_files: true
Which push out the build to Azure websites here. Unfortunately this does not appear to be respecting the AfterBuild section of Proverb.Webs csproj:
<Target Name="AfterBuild">
<ItemGroup>
<!-- what ever is in the build folder should be included in the project -->
<Content Include="build\**\*.*" />
</ItemGroup>
</Target>
This includes the contents of the build folder after the build has taken place. However, when I look at what is being deployed I can see that the build folder is not being included by AppVeyor.
Any idea why that would be?
Comments are currently closed for this discussion. You can start a new one.
Keyboard shortcuts
Generic
? | Show this help |
---|---|
ESC | Blurs the current field |
Comment Form
r | Focus the comment reply box |
---|---|
^ + ↩ | Submit the comment |
You can use Command ⌘
instead of Control ^
on Mac
Support Staff 1 Posted by Feodor Fitsner on 27 Jan, 2015 02:45 PM
Hi Johnny,
Have you tried the method described here: http://www.appveyor.com/docs/deployment/web-deploy#including-custom...?
It worked pretty well on a few projects.
Support Staff 2 Posted by Feodor Fitsner on 27 Jan, 2015 02:49 PM
Also, we use
BeforeBuild
to publish www.appveyor.com and it works:3 Posted by johnny_reilly on 28 Jan, 2015 01:18 PM
Thanks for the help Feodor - I'm using the first approach you suggested and it seems to work just fine.
It's weird that AfterBuild doesn't work given it does when you publish directly from Visual Studio. Most strange.
Unfortunately I can't use the BeforeBuild approach as that would break the TypeScript build. (Duplicate files would collide :-( )
Currently I'm ignoring the JS files built from TypeScript as part of the build. I'm running the
gulp release-build
task before the actual build takes place which is not quite a reflection of how it works on my own machine. From the docs I think I could swap to a custom build script like this:Does that look about right?
Support Staff 4 Posted by Feodor Fitsner on 28 Jan, 2015 03:50 PM
Yeah, the script does look quite right to me.
5 Posted by johnny_reilly on 28 Jan, 2015 06:04 PM
Nearly there - getting this error:
Neither 'WebDeploy package', nor 'Web application', nor 'Zip archive' artifact was found that can be deployed using WebDeploy provider.
Do I need to place the zip in a special location perhaps?
Support Staff 6 Posted by Feodor Fitsner on 28 Jan, 2015 06:06 PM
You should configure pushing artifact: http://www.appveyor.com/docs/packaging-artifacts
Make sure you specify "WebDeployPackage" as its type.
7 Posted by johnny_reilly on 28 Jan, 2015 09:33 PM
I think we're sorted!
johnny_reilly closed this discussion on 29 Jan, 2015 09:24 AM.