A simple survey API
- Install dependencies:
make install-dependencies- Set up the environment:
make env/setup- Start the dev server:
make devAdd the following build settings to run the tests in the Docker environment via Docker Compose (configuration in docker-compose.test.yml):
- Configure the environment variable
BRANCH_TAGto tag Docker images per branch:
export BRANCH_TAG=$CI_BRANCH_IDEach branch needs to have its own Docker image to avoid build settings disparities and leverage Docker image caching.
BRANCH_TAG must not contain special characters (
/) to be valid. So using $BRANCH_NAME will not work e.g. chore/setup-docker. An alternative is to use a unique identifier such as PR_ID or BRANCH_ID on the CI server.
- Pull the latest version the Docker image for the branch:
docker pull $DOCKER_IMAGE:$BRANCH_TAG || trueOn each build, the CI environment does not contain yet a cached version of the image. Therefore, it is required to pull
it first to leverage the cache_from settings of Docker Compose which avoids rebuilding the whole Docker image on subsequent test builds.
- Build the Docker image:
docker-compose -f docker-compose.test.yml buildUpon the first build, the whole Docker image is built from the ground up and tagged using $BRANCH_TAG.
- Push the latest version of the Docker image for this branch:
docker push $DOCKER_IMAGE:$BRANCH_TAG- Setup the test database:
docker-compose -f docker-compose.test.yml run test bin/bundle exec rake db:test:prepare- Run all tests:
make test- Run a specific test:
make test [rspec-params]-
Add a bot to this repository or to the organization. The bot requires permission level “Write” to be able to set a PR’s status
-
Create a token from bot account with
public_reposcope, and use it to create aDANGER_GITHUB_API_TOKENsecret on this repository
-
Install the SVGO as global (if you din't install it)
yarn global add svgo -
We place the icons in
/app/assets/images/iconsand use Svgeez to generate icon sprite -
To generate icon sprite:
bin/svg-sprite -
To use the icon we use
svg_tagprovided inSvgHelperand providedicon_idmatched with icon file name with prefixicon-:svg_tag icon_id: 'icon-[icon-file-name]', html: {}