The app is developed using Ember CLI. It requires nodejs with npm installed.
In order to run the app you need to install dependencies with:
npm ci
And then install ember-cli globally in order to have access to the ember
command:
npm install -g ember-cli
Now you can run the server:
ember serve
And open http://localhost:4200 in the browser.
Alternatively you can run ember build --watch
and start the server with waiter/script/server
Should you encounter issues installing Puma while bundling Waiter on a recent OSX version, you need to tinker with Homebrew:
brew install openssl
brew link --force openssl
You should then be able to run bundle install
as usual.
At the moment Travis CI is available as two separate sites - https://travis-ci.org for Open Source
projects and https://travis-ci.com for private projects. travis-web will connect
to the Open Source version by default. In order to connect it to the API for private projects you need to setup your .env
file.
Copy .env.example
to .env
$ cp .env.example .env
Update the .env
file to run the app in private repos mode:
TRAVIS_PRO=true
After setting up environment variables, you can run the app like so:
ember serve --ssl --ssl-key=ssl/server.key --ssl-cert=ssl/server.crt
One caveat here is that the command will start server with SSL, so the page will
be accessible at https://localhost:4200 (note https
part).
Sometimes there is a need to test the app with an SSL connection. This is required to make Pusher work when running Travis CI Pro, but it may also be needed in other situations.
There's already an SSL certificate in the ssl
directory, which is set for localhost
host. If you want to use it, you can start the server with:
ember serve --ssl --ssl-key=ssl/server.key --ssl-cert=ssl/server.crt
In case you want your own certificate, you can follow the instructions posted
here: https://gist.github.com/trcarden/3295935 and then point the server to your
certificate with --ssl-key
and --ssl-cert
.
To run the test suite execute:
ember test
You can also start an interactive test runner for easier development:
ember test --serve
npm run lint:hbs
npm run lint:js
npm run lint:js -- --fix
travis-web
is beginning the transition to use feature flags wherever it makes
sense. To enable/disable/add/remove a feature flag for the application, you can
edit the config/environment.js
file. For instance, to enable some-feature
, you would
simply add/update the file like so:
{
featureFlags: {
'some-feature': true
}
}
This uses the awesome ember-feature-flags addon under the hood, so be sure to read its own documentation for more information.
Ember's default logging has been disabled in all environments by default and
moved to a feature flag. To enable it, simply edit the debug-logging
feature
flag as mentioned previously in the Feature Flags
section.
ember-cli-deploy
is available for deploying pull requests. See after_success
in .travis.yaml
and associated scripts for details. It uses the “lightning
strategy” of deploying assets to S3 and index.html
to a Redis server. You can
deploy from your own machine too. First, update your .env
file with the following variables:
AWS_KEY=key
AWS_SECRET=secret
Then run:
npm run deploy
After success, your deployment will be available at branch.test-deployments.travis-ci.org.
See the documentation for the full list of deployment environments and more details.
The Redis server is a modified version of waiter/lib/travis/web/app.rb
. We will eventually replace
that with travis-web-index
and move to using
ember-cli-deploy
for all deployments.
Upon a merge to master
, the application is built with the latest beta and canary versions
of Ember, running against the production API. This uses the same infrastructure as the
pull request deployments. You can visit these deployments at:
- https://ember-beta.travis-ci.org
- https://ember-beta.travis-ci.com
- https://ember-canary.travis-ci.org
- https://ember-canary.travis-ci.com
These deployments are also performed with the weekly cron build.
Note that scripts/k8s-deploy.sh script is started on each deployment. If there's an AIDA_URL env defined - aida.js will be downloaded from this URL and replace the original delivered in asktravis package.