Best practices on how to erase everything in destination deployment folder and restart the app after deployment
Hello,
so far I have managed to get a simple deployment procedure running via SFTP. I really need to make two more steps:
1) Erase everything inside the folder that I am deploying to before I deploy a fresh build into it or (even better not sure this is possible) see what has changed and upload only the required and erase the non required.
2) Restart the app after deployment is done.
I can see something like this can be achieved with Web Deploy. I'm currently deplyoing to an Ubuntu machine and it will probably require some extra configuration that I don't really want to get into before double checking on a possibility of an existance of another method.
Is there any other, maybe easir way this can be achieved? Thank you.
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
1 Posted by yzolotarev on 13 Dec, 2017 08:13 AM
So it actually only took one line of code:
1) First take the SSH public key from the settings page inside the appveyor project and make sure you put it into the authorized_keys inside user_that_you_are_going_to_login_with_from_appveyor/.ssh/authorized_keys
2) To clear the folder before deploying to it on a Ubuntu server
before_deploy:
ssh user@host -t "rm -r -v /pathtofolder/*;exit; bash --login"
3) Now about the restart of the app I wanted to use after_deploy however there is a problem with that. After deploy fires straight after deploy and doesn't wait untill upload is finished. I wanted to use it to run
systemctl restart myapp
However the problem seemed to solved itself because systemctl restarted my app at the moment when it was substituted with a new one or maybe at the moment when I call it the first time after the files have been reloaded. So far it seems I have a new app running after I run the script.
2 Posted by Ilya Finkelshte... on 13 Dec, 2017 05:45 PM
Thank you for update. This -- "after deploy fires straight after deploy and doesn't wait untill upload is finished." -- looks strange. Are you doing inline or environment deployment? Difference described here.
3 Posted by yzolotarev on 18 Dec, 2017 06:49 AM
I am using environment deployement... Should I be using inline in order for this to run synchroniously? Thank you.
version: 1.0.{build}
branches:
only:
- master
image: Visual Studio 2017
configuration: Release
before_build:
- cmd: set ASPNETCORE_ENVIRONMENT=Production
- cmd: dotnet restore
build_script:
- cmd: dotnet publish
after_build:
- dir BoatInspectorWebApi\bin\Release\netcoreapp2.0
artifacts:
- path: '\BoatInspectorWebApi\bin\Release\netcoreapp2.0\publish'
name: BIAPI
type: WebDeployPackage
before_deploy:
ssh user@host -t "ls; rm -r -v /var/www/asp/boat/*; ls; exit; bash --login"
deploy:
- provider: Environment
name: YZApplications_SSH
Ilya Finkelshteyn closed this discussion on 25 Aug, 2018 02:25 AM.