{"id":62,"date":"2016-03-22T01:39:12","date_gmt":"2016-03-21T23:39:12","guid":{"rendered":"http:\/\/erez.heilweil.com\/alm\/?p=62"},"modified":"2019-02-12T01:46:48","modified_gmt":"2019-02-11T23:46:48","slug":"deploying-ivr","status":"publish","type":"post","link":"http:\/\/erez.heilweil.com\/alm\/2016\/03\/22\/deploying-ivr\/","title":{"rendered":"Deploying IVR"},"content":{"rendered":"<p>I was asked to <a href=\"http:\/\/erez.heilweil.com\/alm\/go\/Build\">build<\/a> a full <a href=\"http:\/\/erez.heilweil.com\/alm\/alm\/\" target=\"_blank\">ALM<\/a>&nbsp;process for&nbsp;the company&nbsp;Interactive voice response (IVR). IVR is consisted of&nbsp;&nbsp;lots of files (1.5 GB) mostly binaries (Voice files) and a Genesis studio projects. &nbsp;I was asked to be able to keep track on changes and automate the process of keeping the file changes at it&#8217;s minimum. I need to emphasize that the IVR&nbsp;process&nbsp;Today&nbsp;is manual and is consisted of copying files manually and organize&nbsp;requirements and changes in excel files.<\/p>\n<p>Since I&nbsp;am not familiar with the IVR development my <a href=\"http:\/\/erez.heilweil.com\/alm\/go\/Planning\">plan<\/a> was first to add all files to the source control and keep track on file changes. &nbsp;Doing so I could have seen that all changes are under four main folder and by tracking these folder and and adding comments and work items I could&nbsp;implement a&nbsp;<a href=\"http:\/\/erez.heilweil.com\/alm\/alm\/planning\/\" target=\"_blank\">planing<\/a> and <a href=\"http:\/\/erez.heilweil.com\/alm\/alm\/coding\/\" target=\"_blank\">coding<\/a> phases. Still <a href=\"http:\/\/erez.heilweil.com\/alm\/go\/Coding\">coding<\/a> is not full since i lack the ability to automate the Genesis studio &nbsp;compilation process which has no command line interface. Therefore, I decided to keep the compiled files under the source control as well. I have a vague idea of how to compile the Genesis&nbsp;using visual automation <a href=\"http:\/\/erez.heilweil.com\/alm\/go\/testing\">test<\/a> tools, but i will keep it for later development.<\/p>\n<p>So now I&nbsp;left with a <a href=\"http:\/\/erez.heilweil.com\/alm\/alm\/build\/\" target=\"_blank\">build<\/a> process.&nbsp;In all common <a href=\"http:\/\/erez.heilweil.com\/alm\/alm\/build\/\">build<\/a> process I will use &nbsp;compiling&nbsp;and keeping the output files and of course label the code. but here since I&nbsp;have a lot of files and some of them are huge So I decide not to copy files on <a href=\"http:\/\/erez.heilweil.com\/alm\/alm\/build\/\" target=\"_blank\">build<\/a> but only to keep a text files consisted of&nbsp;all the changed file names, and of course labeling. by using this method I conserve allot of storage and still keep anything i need for the <a href=\"http:\/\/erez.heilweil.com\/alm\/go\/deployment\">deployment<\/a> phase.<\/p>\n<p>In my <a href=\"http:\/\/erez.heilweil.com\/alm\/alm\/deployment-2\/\">deployment<\/a> process &nbsp;I always keep track on the previous&nbsp;deployed version. This is done by keeping TFS&nbsp;text file containing all build &nbsp;data&nbsp;which include &nbsp;the label details as well. So now I have my current deployed build label and the the label that I want to deploy and all what left is to&nbsp;go over all the labels between and get&nbsp;their changed file names. By joining all the file names i can get a list of all files that has changed between these labels. &nbsp;Now it&#8217;s time to sync all files to the correct label and then deploy&nbsp;them to the required environment. by doing this i don&#8217;t really &nbsp;need to keep many files which are not needed to in the build process and all the changes are kept automatically and not manually on an excel file.<\/p>\n<p>One downfall with this process is the going backward process which need to deploy a previous version. In ordinary process&nbsp;I&nbsp;will go to the build with the required label and hit the deploy button but here&nbsp;I&nbsp;can only go forward since previous label contains only the changed files from it&#8217;s previous label and not from this label which is more advanced. This means moving to a new branch from the required label and running the &nbsp;build phase. by doing so the difference between these labels will consist of all files that need to be replaced in order to deploy.<\/p>\n<p>So this is in short how to make a long and manual tedious process with lots&nbsp;of files as simple &#8220;click of a button&#8221; process to the the IVR team.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/bIziRZibT85HFosvzWiqLEcxfjkn3rbgOx5bLpEWud66h6HFZJPtxVci_k3s3A15_DT0DDMwNfzWa50Rc-rH2iitThwxN2bJjHvr6wm5El7qullhMAkxm-oLOuKV3sLvmPMKiu-c-xD7TFRl-IO_LQ99giOygQTK8QyoS2QS90qf6dPdh0DBO5MA39ROahgpac1amZ802r1KjaDnPsXwk4hgETLo5zCVwv0HhbsLRlj55clOG2_PbTuTG8t5gqrqrHPl4FQtRUlQsls8dyD3gn-XQBQdeHQ9AHZ49oLY-1GMD4y0QurLhnAAn12C6Q28jK41K85fEfKGrVAvkzX3z20TI-ZLo_cjQjJGmSD_CuO02yrP63E78M_14wI_4r3mDjEAzymbZzk1lSHyMLtoUwDPkAORI95Hvcdk_ResvaXftZCzOpD8mhNP1xLLY5-CllnTwPW70XX4XOY8R0cGyqUgcFydrk-FNM4b1Nnj_VsyoUoR4Wj12ZYC0Vyl9GnkrEr5Bpl7EHhOVIWWPkNF1otWdg0ec52jUeMeC70RQPqWxzUuGFt_DIJBPD9s1Mi58yA4RCFfhTMYWfcXq14ktnRaLePM-mPrfupSeNLCgbVFljNsQ3wfHUHIQKSjZMzIihlnk4hxCzr4VUQTr5w1iZLYheRqvJE0=w1006-h566-no\" alt=\"\"\/><figcaption>Now, make a process out of that&#8230;<\/figcaption><\/figure>","protected":false},"excerpt":{"rendered":"<p>I was asked to build a full ALM&nbsp;process for&nbsp;the company&nbsp;Interactive voice response (IVR). IVR is consisted of&nbsp;&nbsp;lots of files (1.5 GB) mostly binaries (Voice files) and a Genesis studio projects.<\/p>\n<div class=\"read-more\"><a class=\"btn button-secondary\" href=\"http:\/\/erez.heilweil.com\/alm\/2016\/03\/22\/deploying-ivr\/\">Read More<\/a><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","footnotes":"","jetpack_publicize_message":""},"categories":[5],"tags":[6,13,7,14,11,12,10],"class_list":["post-62","post","type-post","status-publish","format-standard","hentry","category-work-related","tag-build","tag-coding","tag-deployment","tag-genesis","tag-ivr","tag-planing","tag-tfs"],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p7mMlm-10","jetpack-related-posts":[],"_links":{"self":[{"href":"http:\/\/erez.heilweil.com\/alm\/wp-json\/wp\/v2\/posts\/62","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/erez.heilweil.com\/alm\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/erez.heilweil.com\/alm\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/erez.heilweil.com\/alm\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/erez.heilweil.com\/alm\/wp-json\/wp\/v2\/comments?post=62"}],"version-history":[{"count":5,"href":"http:\/\/erez.heilweil.com\/alm\/wp-json\/wp\/v2\/posts\/62\/revisions"}],"predecessor-version":[{"id":138,"href":"http:\/\/erez.heilweil.com\/alm\/wp-json\/wp\/v2\/posts\/62\/revisions\/138"}],"wp:attachment":[{"href":"http:\/\/erez.heilweil.com\/alm\/wp-json\/wp\/v2\/media?parent=62"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/erez.heilweil.com\/alm\/wp-json\/wp\/v2\/categories?post=62"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/erez.heilweil.com\/alm\/wp-json\/wp\/v2\/tags?post=62"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}