From d4e293a377e3482859e619ab91540858f044baef Mon Sep 17 00:00:00 2001 From: Brian Mann Date: Thu, 14 Dec 2017 23:51:08 -0500 Subject: [PATCH] deploy notes [skip ci] --- DEPLOY.md | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/DEPLOY.md b/DEPLOY.md index 9c90580d5e..3cffdd526e 100644 --- a/DEPLOY.md +++ b/DEPLOY.md @@ -1,9 +1,9 @@ ## Deployment -Anyone can build the binary and NPM package, but you can only deploy Cypress application +Anyone can build the binary and NPM package, but you can only deploy Cypress application and publish NPM module `cypress` if you are a member of `cypress` NPM organization. -**important** see the [publishing](#publishing) section for how to build, test and publish a +**important** see the [publishing](#publishing) section for how to build, test and publish a new official version of the binary and `cypress` NPM package. ### Set next version on CIs @@ -16,7 +16,7 @@ Use script command `npm run set-next-ci-version` to do this. ### Building the NPM package -Building a new NPM package is very quick. +Building a new NPM package is very quick. - increment the version in the root `package.json` - `cd cli && npm run build` @@ -71,9 +71,9 @@ npm run binary-build-linux In order to publish a new `cypress` package to the NPM registry, we must build and test it across multiple platforms and test projects. This makes publishing *directly* into the NPM registry -impossible. Instead we +impossible. Instead we -- Build the package (with new target version baked in) and the binary. +- Build the package (with new target version baked in) and the binary. We build Linux and Windows binaries on CircleCI and AppVeyor. - upload binaries *and the new NPM package* to Cypress CDN under "beta" url - launch test CI projects, like [cypress-test-node-versions](https://github.com/cypress-io/cypress-test-node-versions) and [cypress-test-example-repos](https://github.com/cypress-io/cypress-test-example-repos) with unique urls instead of installing from the NPM registry. @@ -88,20 +88,20 @@ npm i https://cdn.../npm//hash/cypress.tgz to make sure new binary and NPM package really work without breaking any of the tests. - Each binary and NPM package has new version inside and in the URL, for example `1.0.5`. The url also contains the original commit SHA from which it was built. -- Build the Mac binary and upload (see above) to the CDN. Make sure to build it from the +- Build the Mac binary and upload (see above) to the CDN. Make sure to build it from the same commit as the binaries built by CI -- The upload from Mac binary will create new folder on CDN like - `https://cdn.../desktop/1.0.5/osx64`. We need to create parallel subfolders for +- The upload from Mac binary will create new folder on CDN like + `https://cdn.../desktop/1.0.5/osx64`. We need to create parallel subfolders for Windows and Linux binaries. Go to AWS console and create them. In this case you would create folders `desktop/1.0.5/linux64` and `desktop/1.0.5/win64`. - Copy _the tested binaries_ from unique `binary` folder into `desktop/1.0.5` subfolders for each platform. -- Publish the new NPM package under dev tag. The unique link to the package file `cypress.tgz` +- Publish the new NPM package under dev tag. The unique link to the package file `cypress.tgz` is the one already tested above. You can publish to NPM registry straight from the URL $ npm publish https://cdn.../npm/1.0.5//cypress.tgz --tag dev + cypress@1.0.5 -- Check that new version has the right tag using +- Check that new version has the right tag using [available-versions](https://github.com/bahmutov/available-versions) ``` @@ -121,5 +121,6 @@ $ vers cypress - close issues (link to changelog) - update npm dist tag to `latest` using `npm dist-tag add cypress@1.0.5` - update `manifest.json` for download server `npm run binary-release -- --version 1.0.5` +- push out updated changes to manifest for `on.cypress.io` if needed Take a break, you deserve it!