stage-ci
stage-ci copied to clipboard
Automatically alias commits on master
Let's say I have a pizza-app
and deploy using stage-ci
. Now I want all commits on master
to automatically be deployed to production, i.e. be aliased to pizza-app.com
.
Does that work?
Not currently but it should be simple to do:
https://github.com/zpnk/stage-ci/blob/master/src/core.js#L71
The hardest part is deciding how to expose that functionality.
Environment variable on deploy of the webhook maybe? MASTER_ALIAS=pizza-app.com
That would be epic, it would essentially make stage-ci
the most awesome deployment tool ever.
I can see how this would be a really useful feature, and I like the idea a lot.
It's definitely do-able, but beyond configuration it would require adapting our implementation to respond to GitHub's PushEvent.
Quick background on how stage works currently:
- when users configure the webhook we only ask them to select the "pull request" event.
- only PullRequestEvents with either the
opened
orsynchronize
action trigger a deploy
If we add support for the push event my questions would be:
- do we ask users to select the two events? or just the "send everything" option and we filter? (may be more future-proof)
- should the configuration include the branch to auto deploy? (ie,
production
vsmaster
) - how do we communicate the deployment status to the user? GitHub's status api is less useful outside a PR context because there is no UI to display it.
In terms of configuration, environment variables are the way to go. I'd propose two:
-
STAGE_AUTODEPLOY_BRANCH
- set this to "master" to deploy commits on master -
STAGE_AUTODEPLOY_ALIAS
- set this to "pizza-app.com" to override the commit's deployment alias
I'd also propose we just allow all events and let the server filter based on what we need (PullRequest, Push).
Not sure about deployment status.
If I have time to work on this I will assign myself and remove the "help wanted" label. Otherwise, if someone else wants to grab this, just post here.
Yep that sounds absolutely brilliant!
Would this also allow to have a static website always on the same URL for the latest master
?