Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"shep release" #139

Open
reconbot opened this issue Dec 22, 2016 · 3 comments
Open

"shep release" #139

reconbot opened this issue Dec 22, 2016 · 3 comments

Comments

@reconbot
Copy link
Contributor

reconbot commented Dec 22, 2016

To prevent deploying with outdated deps or with errors. I think we should do what np does.

  • verify that we have a clean working copy
  • warn if we're not deploying from master (optional?)
  • remove node_modules and npm install
  • run tests
  • then build -> deploy etc
@reconbot reconbot changed the title copy np's workflow copy np's workflow? Jan 6, 2017
@zfoster
Copy link
Contributor

zfoster commented Jan 26, 2017

I got snagged by this deploying and redeploying a new build of typeset the other day. This feels pretty high priority to me given how rapidly shep is being pushed.

I think:

  1. Verify clean
  2. warn if not deploying from master (but don't break)
  3. nombom
  4. build, deploy

skipping tests seems fine. we aren't pushing code that hasn't run that project's travis?

@reconbot
Copy link
Contributor Author

Travis is not sheps concern. So.. maybe we should run the tests?

A danger here is builds get slow. We like our builds fast in general and we like to be able to work on stuff when debugging and quickly be able to upload to lambda. It's an edge shep has on all the other tools.

I'd like to combine this discussion with #166 a little bit. Here's what I've been mulling over.

I've got two concepts I want to introduce that give us the flexibility to work fast and debug while keeping us safe by doing the work a computer should do.

  • Builds take a sha and give us a zip file for upload. When done right we can claim that we have "Deterministic deploy artifacts"
  • Dirty builds take the current state of things and give us a zip for upload. This lets us work in lambda directly.

When making a dirty build I think we run our current build step, things just go. When making a "Deterministic" build we need np's checklist.

How do we communicate this to our users? I've got two ideas

shep deploy $STAGE
# vs 
shep deploy --dirty $STAGE

or

shep deploy $STAGE
# vs
shep release $STAGE

I'm partial to the release since it doesn't change behavior and we can bake in things like tagging the sha and pushing to github and junk like that.

@zfoster
Copy link
Contributor

zfoster commented Jan 26, 2017

Yeah, thinking about shep as a build + deploy tool, we need to be running whatever tests are in the project on deploy.

I like shep release returning a sha, and shep deploy just being a push of a release to AWS

@reconbot reconbot changed the title copy np's workflow? "shep release" May 24, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants