-
Notifications
You must be signed in to change notification settings - Fork 57
Document and set up generalized deployment #683
Comments
You beat me to it! Let's make this the main issue for documentation and add deployment adjustments/fixes as new issues as they come up. |
This is critical in order for us to implement the Heroku button and export this app effectively. I've documented the Yale deployment process fairly well in my presentation, but we need to extract from the deployment script a generalized set of deployment instructions. Moving to v4.2, will start discussions with Mike to figure out what needs to happen. |
There has been a lot of discussion about this in the PR for party foul (#770) since I removed an outdated Capistrano deployment script in that branch. We should ultimately offer a generalized deployment strategy using some standard tool for future clients and that script can serve as a starting point for that work. Until then, as I said in the other conversation, I'd rather have no script than a broken one. |
Don't forget to add instructions for the cookie session store (see #880) |
I'm going to go through the current shell script and describe what it does; we can use this as a foundation for our conventional deployment script:
So... not too much actual Rails setup, most of this is just moving code around in a way that is probably specific to Passenger / the Yale Rails farm. Next step: look into Capistrano and figure out what actual steps we need to configure / prepare a fresh app (and potentially look into using the production version of |
Capistrano info here |
Ok, so reading more into Capistrano it seems like it would almost be a replacement for our deploy script, rather than a supplement to it. It also seems like we wouldn't want to commit Capistrano files that are Yale-specific, so I'm not sure how much of our workflow belongs in the repo and how much should be handled by ITS. I'm going to put this on hold pending further discussion w/ ITS folks. |
When we get to Rails 4.1 we might use the |
Ooo good idea. I'll add an issue for that separately. |
In-progress list of environment variables:
|
Deployment-dependent environment variables (to be saved by Jenkins):
These are necessary to set up the deploy directory. EDIT Alternatively, we can just have |
don't forget to add |
Ok, I set up a basic |
Added the e-mail config to |
I also need to do some more documentation (e.g. write up a wiki page and update the README). |
On second thought, I've merged #653 into here and have implemented the code. Testing for now... |
Ok, so via manual testing it appears as though LDAP works post-refactor, both for CAS and non-CAS authentication (you search by e-mail for non-CAS authentication). This should be documented somewhere but that was way less painful than I imagined it to be. |
I realized that I haven't tried our test suite since making all of these changes... taking a look now :-) |
NVM, all of these were already passing via Travis. I think it's time to document all of the relevant parameters in the wiki and then it's time to merge so that I can move on to Heroku / #275. EDIT I think we're probably better off forgetting about Capistrano for now and just focusing on the general configurability and deployment of Reservations. The specific deployment methodology might take some time to iron out with ITS but I don't think we should let it block these improvements. |
Configuration parameter definitions now written up here. |
Ok, README has been updated to point people to the wiki page where all of the environment variables are defined. It also includes instructions for setting up The authentication wiki page needs to actually be written (I kinda left it bare-bones when I finished #2), but I think otherwise we're ready to move things forward. Once this is merged in I think we'll be ready for Heroku (see #275)! |
Right now, deployment is a black box that only few understand, and I'm sick of reading about everyone deploying all the time. As our test suite, continuous integration and in-production monitoring get better, I think we should work towards the ability to deploy (a) often, (b) comfortably, (c) simply and (d) without bothering Michael Dunlap all the time.
2014/11/11
Deployment:
secrets.yml
withENV
calls forproduction
dotenv-deployment
in theproduction
andstaging
groupsdeploy.rb
Logistics:
DEV
instance databasesFigure out new deployment script structure (maybe still use Capistrano?)Should we be resetting the secret key every time? (probably not)The text was updated successfully, but these errors were encountered: