deploy notes [skip ci]

This commit is contained in:
Brian Mann
2017-12-14 23:51:08 -05:00
parent 1fbfcd6087
commit d4e293a377

View File

@@ -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/<new version>/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/<long sha>/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!