Third Week [June 3rd - June 9th] [1st PSF Blog]

Youssef15015
Published: 06/09/2019

This week, we are on the verge of finishing the intended task of moving from travis-ci to azure pipelines for continiously integrating the code of our repository [Tardis]. I was able to successuly install a ssh-key, which is used as a deploy key for deployment to github. The format of this was different from that used from travis-ci. The Azure library stores and encrypts the key files, which is then decrypted whenever the pipeline runs. There were three obstacles. The main obstacle was the steps suggested by the azure website to install the key was not detailed enough, as it requested three inputs [public key, private key, and know hosts], but did not specify what input format. The error I was getting was specific to the public key, but giving me somewhat of a vague error with little google solutions [Cannot get the base64 portion of the public key], I was able to figure this out from the azure repository on github, and traced it back to the main code file, in which it was clear that the input is a string. https://github.com/microsoft/azure-pipelines-tasks/blob/master/Tasks/InstallSSHKeyV0/installsshkey-util.ts, and I was then able to identify the correct input of the knownhost also. Another mainly due to changing from the main tardis repository to my forked repository. During the process documenting the build, it retrieves files from another repository [in reference to the main one] which is referenced based on an enviromental variable of the name of the main tardis repo. Since I also changed the environmental variable to the name of my forked repository[Youssef15015/tardis] of the main tardis repository[tardis-sn/tardis], the files were not retrieved from the second primary repository[tardis-sn/tardis-refdata]. I simply forked the second repository being used, so the naming reference was solved [Youssef15015/tardis-refdata]. This will not be an issue when I merge to the main branch, but it was good to make sure everything works. I could have also changed the environmental variable. Another issue that is still unsolved, is with making the html documentation itself using sphinx rather than doctr (which is only intended for travis). Eventhough there is a line to empty the documentation from last time every time it runs for the new documentation to be stored, the second time I run the code some parts fail to be written due to conflict of already existing content. I am unsure at the moment why this is a problem, but I do not suspect it to be an issue for long. I also documented what I did in the pipeline yaml fille [The file that is used to communicate to Azure-services] (generating the key, downloading the file the ssh-key from the azure library, format of each file for the ssh key, and then leading them to the file that is used to build and deploy. I also helped another summer coder make this entire setup for himself, and must catch up to fix my third error and make a final pull request to merge to the main repository. The next steps would be to completely optimize the script to the minimum, making sure that doctr cannot be used for azure-services, and then exploring all the wonderful and many additional services offered by azure.

1000 characters left