2.7 KiB
To run tests
Make sure your environment is set up with:
yarn
In a separate process, run the WebSockets server:
yarn ws-server
Run the browser tests using Karma:
yarn test
Run the node.js tests:
yarn test-node
Run tslint:
yarn lint
Run format with clang-format:
yarn format
Run all checks (lint/format/browser test/test-node):
yarn ci
Before Commit
Please make sure you pass all following checks before commit
- yarn gulp lint (tslint)
- yarn gulp format (clang-format)
- yarn promisetest (promise a+ test)
- yarn bazel test //packages/zone.js/... (all tests)
Webdriver Test
zone.js
also supports running webdriver e2e tests.
- run locally
yarn webdriver-start
yarn webdriver-http
yarn webdriver-test
- run locally with sauce connect
// export SAUCE_USERNAME and SAUCE_ACCESS_KEY
export SAUCE_USERNAME=XXXX
export SAUCE_ACCESS_KEY=XXX
sc -u $SAUCE_USERNAME -k $SAUCE_ACCESS_KEY
yarn webdriver-http
yarn webdriver-sauce-test
Releasing
Releasing zone.js
is a two step process.
- Create a PR which updates the changelog, and get it merged using normal merge process.
- Once the PR is merged check out the merge SHA of the PR and release
zone.js
from that SHA and tag it.
1. Creating a PR for release
export PREVIOUS_ZONE_TAG=`git tag -l 'zone.js-*' | tail -n1`
export VERSION=`(cd packages/zone.js; npm version patch --no-git-tag-version)`
export VERSION=${VERSION#v}
export TAG="zone.js-${VERSION}"
echo "Releasing zone.js version ${TAG}. Last release was ${PREVIOUS_ZONE_TAG}."
yarn gulp changelog:zonejs
Inspect the packages/zone.js/CHANGELOG.md
for any issues and than commit it with this command.
Create a dry run build to make sure everything is ready.
yarn bazel --output_base=$(mktemp -d) run //packages/zone.js:npm_package.pack --workspace_status_command="echo BUILD_SCM_VERSION $VERSION"
If everything looks good commit the changes and push them to your origin to create a PR.
git co -b "release_${TAG}"
git add packages/zone.js/CHANGELOG.md packages/zone.js/package.json
git ci -m "release: cut the ${TAG} release"
git push origin "release_${TAG}"
2. Cutting a release
Check out the SHA on master which has the changelog commit of the zone.js
git fetch upstream
export VERSION=`(node -e "console.log(require('./packages/zone.js/package.json').version)")`
export TAG="zone.js-${VERSION}"
export SHA=`git log upstream/master --oneline -n 1000 | grep "release: cut the ${TAG} release" | cut -f 1 -d " "`
git co ${SHA}
yarn bazel \
--output_base=$(mktemp -d) run //packages/zone.js:npm_package.publish \
--workspace_status_command="echo BUILD_SCM_VERSION $VERSION"
git tag ${TAG} ${SHA}
git push upstream ${TAG}