Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upLive upgrade and integration tests #508
Comments
This comment has been minimized.
This comment has been minimized.
|
Sounds good, although it wouldn't necessarily catch problems due to state, or side effects of performing several upgrades. (For example, upgrading A -> B inadvertently breaks the rustup configuration in a way not detectable on B, then upgrading B -> C fails due to that error, despite upgrades A -> C and B -> C both working. |
This comment has been minimized.
This comment has been minimized.
|
@brson you're thinking of gating releases of rustup on this as well? |
This comment has been minimized.
This comment has been minimized.
|
@alexcrichton Yes, but it will be a manual process. We'll do the dev deployment, wait for the CDN to synchronize, run the live test suite against dev-static.rlo. Then do the production deployment (there will be no opportunity to run the tests against static.rlo before it's deployed). On that note, I want to change the way deployment works so that the stable deployment is just copying from dev-static. Way less opportunity for unexpected failures that way. |
This comment has been minimized.
This comment has been minimized.
|
@Diggsey Oh, I think we can be quite exhaustive with the upgrade scenarios. We can generate tests that upgrade A->B->C->D, A->C->D, A->D, etc. performing various operations to manipulate state along the way. |
This comment has been minimized.
This comment has been minimized.
|
I guess I'm just thinking that it's nice having the deployment process be so easy today (just push to a branch), and if it gets significantly more complicated than that it may be more difficult to make releases. That being said you'll probably be doing most of the releases so it may be a moot point! |
This comment has been minimized.
This comment has been minimized.
|
@alexcrichton I think I can set this up so deployment only has two steps: build and deploy in dev, then run a script to copy the dev artifacts to prod. The only sacrifice I'll have to make in the fidelity of the tests is that they will need to go directly to the s3 server instead of cloudfront. |
brson commentedJun 2, 2016
It's critical that self-updates do not ever break. Right now I'm very unconfident that we can guarantee this.
To rectify this I intend to do several things:
cc @alexcrichton @aturon @Diggsey
This is what I intend to do next. I think before doing any further production deployments.