- go - The Go programming language
- dep - Go dependency manager
- nvm - Node Version Manager (for installing NodeJS and NPM)
The following steps guide you through a fresh checkout
# Create a workspace
cd ~/Projects/grpc-web # or wherever you want your checkout to live
export GOPATH=$(pwd)
# Checkout project sources into your new go workspace
go get -u github.com/improbable-eng/grpc-web/go
cd $GOPATH/src/github.com/improbable-eng/grpc-web
# Install go dependencies
dep ensure
# Install NodeJS dependencies
nvm use
npm install
Note you will also need to install prototool and add it to your PATH
environment variable if you wish to re-generate the integration test proto files.
Before you run the tests for the first time, please follow these steps:
In order to run the Karma (Integration) tests, you will need to add the certificate found in misc/localhostCA.pem
to your system's list of trusted certificates. This will vary from operating system to operating system.
- Open Keychain Access
- Select 'System' from the list of Keychains
- From the
File
menu, selectImport Items
- Select
misc/localhost.crt
- Double click on the new
GRPC Web example dev server
certificate - Expand the `Trust' section
- Change the
When using this certificate
option toAlways Trust
- Close the certificate details pop-up.
Repeat the above process for misc/localhostCA.pem
.
Add the following entries to your system's hosts
file:
# grpc-web
127.0.0.1 testhost
127.0.0.1 corshost
These steps assume you have performed all the necessary testing prerequisites. Also note that running all the tests will require you to open a web-browser on your machine.
To start the test suite, run:
cd src/github.com/improbable-eng/grpc-web
npm test
At some point during the test run, execution will pause and the following line will be printed:
INFO [karma]: Karma v3.0.0 server started at https://0.0.0.0:9876/
This is your prompt to open a web browser on https://localhost:9876 at which point the tests will continue to run.
- From a fresh checkout of master, create a release branch, ie:
feature/prepare-x.y.z-release
- Update
CHANGELOG.md
by comparing commits to master since the last Github Release - Raise a pull request for your changes, have it reviewed and landed into master.
- Switch your local checkout back to the master branch, pull your merged changes and run
./publish-release.sh
. - Create the ARM binaries and attach them to the Github release.