Background
Travis-CI is a hosted Continuous Integration & Continuous Delivery tool. Based on configurations, users can have their application deployed to production. They provide free service to open source projects. The CI&CD environment currently using Linux.
Aim
- Have the CI & CD pipeline trigger for each and every commit going into GitHub. Deploy only to staging or testing area.
- Testing / staging area is GitHub pages hosted in the same repo. Deploy to staging should not trigger another build which ends up as infinite loop. Not into gh-pages branch but to \docs folder.
- When there is tagged commit deploy to production.
How its done
Avoid build on commit from Travis-CI bot
The word bot is used to indicate the CI&CD account used by Travis-CI. We can see that account on the commits from Travis-CI. When the bot commits, it uses message as follows.
""Deploy <github userid>/<project> to github.com/<github userid>/<project>.git:master""
One such example given below.
"Deploy joymon/prayerbook to github.com/joymon/prayerbook.git:master"
We need to write build conditions at the top of .travis.yml file to bye pass the build if the commit message is matching.
Build and deploy on commit tag
This is another condition we need to put into condition. If we don't put this Travis-CI will not build on tag commit. Below is one example.if: tag IS present OR commit_message != "Deploy joymon/prayerbook to github.com/joymon/prayerbook.git:master" OR tag = true
If we use tag = true alone it may not work. Needs more analysis on the Travis-CI yml schema.
A sample travis.yml file can be found below which works based on the above conditions.
https://github.com/joymon/prayerbook/blob/master/.travis.yml
References
https://stackoverflow.com/questions/18216991/create-a-tag-in-github-repositoryhttps://docs.travis-ci.com/user/conditions-v1
https://github.com/travis-ci/travis-ci/issues/8518
Disclaimer
The author is not working for Travis-CI or any of their subsidiaries or partners. There is no guarantee that the technique mentioned in this post will work forever. Travis-CI may change their system the way they want it to be.
This is not at a sponsored post.
No comments:
Post a Comment