{"id":47990,"date":"2016-02-20T23:32:40","date_gmt":"2016-02-20T23:32:40","guid":{"rendered":"http:\/\/ahay.org\/blog\/?p=47990"},"modified":"2016-02-20T23:32:40","modified_gmt":"2016-02-20T23:32:40","slug":"continuous-reproducibility-using-circleci","status":"publish","type":"post","link":"https:\/\/ahay.org\/blog\/2016\/02\/20\/continuous-reproducibility-using-circleci\/","title":{"rendered":"Continuous reproducibility using CircleCI"},"content":{"rendered":"<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Continuous_integration\">Continuous Integration<\/a> (CI) is a powerful discipline of software engineering, which involves a shared code repository, where developers contribute frequently (possibly several times per day), and an automated build system which includes testing scripts.<\/p>\n<p><img decoding=\"async\" src=\"\/blog\/wp-content\/uploads\/2016\/02\/Benefits_of_Continuous_Integration.png\" alt=\"\" title=\"\" \/><\/p>\n<p>As <a href=\"\/blog\/2013\/11\/11\/continuous-integration-and-reproducibility\/\">previously suggested<\/a>, CI tools can be easily adopted to perform <em>continuous reproducibility<\/em>: repeatedly testing if previously reproducible results remain reproducibe after software changes. Continuous reproducibility can assure that reproducible documents stay &#8220;alive&#8221; and continue to be usable.<\/p>\n<p><img decoding=\"async\" src=\"\/blog\/wp-content\/uploads\/2016\/02\/circleci.png\" alt=\"\" title=\"\" \/><\/p>\n<p>Numerous tools have appeared in recent years to offer CI services in the cloud: <a href=\"http:\/\/www.travis-ci.org\/\">Travis CI<\/a>, <a href=\"https:\/\/semaphoreci.com\/\">Semaphore<\/a>, <a href=\"https:\/\/codeship.com\/\">Codeship<\/a>, <a href=\"http:\/\/www.shippable.com\/\">Shippable<\/a>, etc. It is hard to choose one. I would pick <a href=\"http:\/\/circleci.com\/\">CircleCI<\/a>. <strong>CircleCI<\/strong> is developed by a startup company from San Francisco. Its product is not fundamentally different from analogous services but provides a solid implementation, which includes:<\/p>\n<ul>\n<li>Integration with <a href=\"\/blog\/2015\/07\/28\/hello-github\/\">GitHub<\/a><\/li>\n<li>SSH access<\/li>\n<li>Sleek user interface<\/li>\n<li>Simple configuration via <a href=\"https:\/\/github.com\/ahay\/src\/blob\/master\/circle.yml\">circle.yml<\/a> file<\/li>\n<li>Fast parallel execution <\/li>\n<\/ul>\n<p>Let us test if it can serve as a good platform for Madagascar&#8217;s continuous reproducibility.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Continuous Integration (CI) is a powerful discipline of software engineering, which involves a shared code repository, where developers contribute frequently (possibly several times per day), and an automated build system which includes testing scripts. As previously suggested, CI tools can be easily adopted to perform continuous reproducibility: repeatedly testing if previously reproducible results remain reproducibe [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","activitypub_content_warning":"","activitypub_content_visibility":"local","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"","footnotes":""},"categories":[6],"tags":[],"class_list":["post-47990","post","type-post","status-publish","format-standard","hentry","category-systems"],"_links":{"self":[{"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/posts\/47990","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/comments?post=47990"}],"version-history":[{"count":4,"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/posts\/47990\/revisions"}],"predecessor-version":[{"id":48248,"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/posts\/47990\/revisions\/48248"}],"wp:attachment":[{"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/media?parent=47990"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/categories?post=47990"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/tags?post=47990"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}