A tool for automating tests for your Open Source projects. Travis CI is used to build and test the software projects at GitHub. Its written on Ruby and freely available under MIT Licence. Which means we can use the Software without the Restrictions.
So, Here the question is “What we can do with this?. Is it really can be helpful in developing any kind of Software/Application?”.
Yesterday, In a discussion about Open Source with Yathartha, he told about his Open Source Contribution to a Python Module. When he contributed his first code in the repository he got an error of “Failure: Travis CI build Failed”. So then he read about the “Travis CI” that is a kind of Bot that can help you making cool thing faster and better with testing.
The owner of the Repository can set the rules for pushing the code or can create a set of rules. In every commit/push the code is tested with that particular data set.
In the discussion i was thinking of adding the Travis CI to the WordPress Theme Creation. There is a lot of rules for writing the good code in WordPress. There is a GitHub Repository dedicated for WordPress Coding Standards :P. So, Now the Integration part comes.
Integration with WordPress
There is a lot of documentation and tutorial/examples are available in their website on integrating with each language. Lots of languages are supported by Travis CI. Tutorials are available for each of the supported languages eg. PHP integration.
Creating a rule set that check the code with all the coding standards is not an easy task. So I looked over the themes that were created by the WordPress.org itself. So I have looked over the theme “Twenty Seventeen”. I have also looked over the WordPress starter theme “_S”. The YAML file is just like a bouncer. I have no idea what is written in the file. But after a lot of struggle I deciphered all the content 😉 .
The YAML file is more like a script. You have to add the details of your tests. Here are some values we have to add in the YAML file:
- language : Declaring the Project Language
- php : Declaring the php version to use (if language is PHP)
- before_script : All the dependencies or requirements for the tests are listed in this section, It is more like the “Making a Web Development Environment” .
- script : This section is for the tests commands. If any test return with code 0(zero) then it is passed the test otherwise the Build will show Failure.
It take me total of 9 commits to get my build successful pass after adding the
.travis.yml file to my project. Means I have not following many rules from the WordPress Coding Standards. BTW the all checks failed were all about adding the function definition comment and the spaces before and after the parentheses 😉 .
Tips for adding into WordPress :
- Don’t forgot to add a codesniffer.ruleset.xml . It’s all about the rules while sniffing the project.
- Use JSHint for detecting the errors in JS. Also with a file .jshintignore if you want to ignore some files while checking (eg. bootstrap.js will give error if checked by the JSHint).
So, Now I can add a badge to my github repository Readme for the last commit. It made me happy today the Badge 🙂 .
“Stop stressing. Press publish.”