Rake tasks for developers
Setup db with developer seeds
Note that if your db user does not have advanced privileges you must create the db manually before running this command.
bundle exec rake setup
setup task is a alias for
This tasks calls
db:reset to create the database, calls
add_limits_mysql that adds limits to the database schema in case of a MySQL database and finally it calls
db:seed_fu to seed the database.
db:seed but this does nothing.
In order to run the test you can use the following commands:
rake spinachto run the spinach suite
rake specto run the rspec suite
rake karmato run the karma test suite
rake gitlab:testto run all the tests
rake spinach and
rake spec takes significant time to pass.
Instead of running full test suite locally you can save a lot of time by running
a single test or directory related to your changes. After you submit merge request
CI will run full test suite for you. Green CI status in the merge request means
full test suite is passed.
Note: You can't run
rspec . since this will try to run all the
files it can find, also the ones in
To run a single test file you can use:
bin/rspec spec/controllers/commit_controller_spec.rbfor a rspec test
bin/spinach features/project/issues/milestones.featurefor a spinach test
To run several tests inside one directory:
bin/rspec spec/requests/api/for the rspec tests if you want to test API only
bin/spinach features/profile/for the spinach tests if you want to test only profile pages
Speed-up tests, rake tasks, and migrations
Spring is a Rails application preloader. It speeds up development by keeping your application running in the background so you don't need to boot it every time you run a test, rake task or migration.
If you want to use it, you'll need to export the
Compile Frontend Assets
You shouldn't ever need to compile frontend assets manually in development, but if you ever need to test how the assets get compiled in a production environment you can do so with the following command:
RAILS_ENV=production NODE_ENV=production bundle exec rake gitlab:assets:compile
with all other frontend assets (images, fonts, etc) into
they can be easily inspected.
Generate API documentation for project services (e.g. Slack)
bundle exec rake services:doc
Updating Emoji Digests
To update the Emoji digests file (used for Emoji autocomplete) you must run the following:
bundle exec rake gemojione:digests
This will update the file
fixtures/emojis/digests.json based on the currently
Generating a sprite file containing all the Emoji can be done by running:
bundle exec rake gemojione:sprite
If new emoji are added, the spritesheet may change size. To compensate for
such changes, first generate the
emoji.png spritesheet with the above Rake
task, then check the dimensions of the new spritesheet and update the
SPRITESHEET_HEIGHT constants accordingly.