Working on installer.to with SCoRe Lab for GSoC 2020: Week 10
My previous Medium article got published under SCoRe as https://medium.com/scorelab/working-on-installer-to-with-score-lab-for-gsoc-2020-week-9-113c8c8708f4
This week is special! I made the final part of my proposal complete! Yes, with this week I completed all the work I have planned and what’s left is adding fine tuning to the complete flow.
The final piece of the the journey was to make the users hint about the package manager hints in the cURL URL and giving them the package-manager-dependent installer script.
For example, if a user send the cURL request like follows and pipe it to bash
curl https://installer.to/git?with=yum | bash
then what will be downloaded is an installer script specific to yum
and other package-manager related commands will not be there. This makes the installers very small and fast downloading.
In addition to to the package-manager-dependent flags, I also added minifying flags. If a user sends a cURL request like follows and pipe it to bash,
curl https://installer.to/git?min=yes | bash
then what will be downloaded is a minified script which is smaller than the usual installer scripts. The best part is users can combine these two flags together!
curl https://installer.to/git?with=apt&min=yes | bash
When users cURL like above, they will only get the package-manager-dependent installer script and it will be a minified script.
To make this happen, in the continuous delivery flow, I am now generating separate installer scripts for each package-manager we have installer steps defined in the installer.toml
and then generating minified installers for each of them.
For example git/installer.toml
will generate set of files like,
installer.sh
installer.min.sh
installer.apt.sh
installer.apt.min.sh
installer.yum.sh
installer.yum.min.sh
Then all these files are uploaded to the cloud storage bucket and stored there. I updated the Firebase function, when the user sends the query params like with
, min
then Firebase function will pick the correct installer file.
For example, if the user cURls for the following URL,
curl https://installer.to/git?with=apt&min=yes
then it will pick the installer.apt.min.sh
and send to the user.
With this my whole plan for this GSoC is complete and i’m working with my awesome mentors to fine tune the Continuous Delivery ad Continuous Deployment flows to the best.