Shippable Continuous Integration Testing

in #utopian-io8 years ago (edited)

New Features

Continuous Integration with Shippable

This pull request introduce an integration with Shippable. Shippable is like many other CI services (Travis, CircleCI, etc.). For every pull request, and every subsequent commit Shippable will boot up a virtual machine and run all test cases. It then marks whether or not these tests passed or failed - that is what the green check or red x mean.
image

A pull request now will only be merged if and when all tests are passing. It must have the "All checks has passed" mark.
image

This addition not only will make the code more reliable and stable, but it will also greatly improve the chances of getting and validating pull requests from the open source community.

image

Shippable uses a shippable.yml file to set up the environment and run tests. The current file is quite brief, as it simply loads the correct version of node, creates a mysql environment, and runs jest tests.

language: node_js
node_js:
  - 8.8.1
branches:
  only:
    - master
env:
  global:
    - DB_USER=shippable
services:
  - mysql
build:
  ci:
    - mysql -e "CREATE USER shippable@localhost IDENTIFIED BY ''; GRANT ALL ON *.* TO shippable@localhost; FLUSH PRIVILEGES;"
    - mysql -e 'create database nowplaying;'
    - mysql -e 'source ./tables.sql'

    - shippable_retry npm install
    - npm run shippable-test

The only thing of interest happening here is we start a mysql server and during the build we create a user shippable@localhost, create the database nowplaying, and lastly load the database with empty tables found in the tables.sql file. Now the shippable build has an empty local mysql server to run tests against.

There is only one test case now that covers initializing the bot and connecting to the local mysql instance. Tests will be added additionally in subsequent PRs

Now Playing

Check out the #nowplaying community and bot in action here



Posted on Utopian.io - Rewarding Open Source Contributors

Sort:  

Thank you for the contribution. It has been approved.

You can contact us on Discord.
[utopian-moderator]

Hey @vladimir-simovic, I just gave you a tip for your hard work on moderation. Upvote this comment to support the utopian moderators and increase your future rewards!

Hey @walnut1 I am @utopian-io. I have just upvoted you!

Achievements

  • You have less than 500 followers. Just gave you a gift to help you succeed!
  • Seems like you contribute quite often. AMAZING!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x

Coin Marketplace

STEEM 0.04
TRX 0.32
JST 0.080
BTC 60288.06
ETH 1572.33
USDT 1.00
SBD 0.47