Safecast / safecastapi

The app that powers api.safecast.org
44 stars 25 forks source link

Deployments via semaphoreci for AWS assets #346

Closed matschaffer closed 2 years ago

matschaffer commented 7 years ago

We should have some way to simply say "deploy build X to environment Y" from a browser.

This will help avoid the current confusion we have with c66 where sometimes staging isn't set to the intended branch.

We'll might lose the cloud66 "changes" view (at least initially), but I suspect the less branch confusion will be worth it. We may also be able to get it back via a clever deployment script.

screen shot 2017-01-12 at 16 10 52

matschaffer commented 7 years ago

Renaming since codebuild + codedeploy could be another way to tackle this w/o having to possibly pay for closed-source builds.

matschaffer commented 6 years ago

I was unable to get anything that felt point-and-click after mucking with CodePipeline/CodeBuild/CodeDeploy after a week or so. So I set up semaphore. Everything we're going to want a click-through deployment for are OSS anyway.

https://semaphoreci.com/safecast is the organization there. Repos are set up, just need to fix the builds and set up the deployment targets.

matschaffer commented 6 years ago

To note, one thing semaphore doesn't do especially well is one-click rollback like cloud66 does.

But it's fairly easy to select a previous deployment and re-deploy it to the same environment.

matschaffer commented 6 years ago

The concept of "changes" will also become a little more fluid here. But we'll have git shas we can work from to determine source of change without too much trouble.

matschaffer commented 6 years ago

Making some headway!

screen shot 2018-07-11 at 21 57 02

matschaffer commented 6 years ago

When we tackle this for safecastapi, it might be good to add a wait loop to .elasticbeanstalk/deploy.sh

We hit our first semaphore cache file-not-found error today https://semaphoreci.com/safecast/ingest/servers/dev/deploys/13

Semaphore support warned us that this might happen as cache files don't propagate immediately.

I suspect we can add a loop that checks every 5s for 10m as a workaround (until semaphore has proper artifact support).

eitoball commented 2 years ago

Currently, using Circle CI and creating application version during build.