Skip to content
This repository has been archived by the owner on Jul 11, 2020. It is now read-only.

Deploys

David Radcliffe edited this page May 18, 2020 · 7 revisions

Shipit deploys

Our primary method of deploying the RubyGems.org application is via shipit, our deploy service. This is an instance of the open source shipit tool. This is preferred because it requires no ssh access, no kubectl access, no manual commands, and is visible to everyone on the team.

Staging deploys

Shipit automatically deploys the master branch to staging as soon as CI passes. To manually deploy a specific branch or commit to staging, see the manual installation instructions below.

Production deploys

Before deploying to production, make sure that the commit has been deployed to staging and everything is working there.

Once you are ready to deploy, go to https://shipit.rubygems.org/rubygems/rubygems.org/production. You'll be shown a list of commits that are not yet deployed, and you can choose to deploy any commit. After pushing the deploy button, Shipit will show a live deploy log, and announce the deploy in Slack as well.

Manual deploys

From the repo directory:

export REVISION=$(curl http://staging.rubygems.org/internal/revision)
export ENVIRONMENT=staging
kubernetes-deploy rubygems-$ENVIRONMENT rubygems --template-dir config/deploy/$ENVIRONMENT --bindings=environment=$ENVIRONMENT

Pushing a gem to staging

gem build some.gemspec
gem push some-1.0.0.gem --host https://staging.rubygems.org
gem list some --clear-sources -raVs https://staging.rubygems.org