I'm developing a node.js web server which will have built source code of server and client part at once. I mean, my web server is on the isomorphic level. this means editing source code of client part eventually give some effects on server-side code.
so when I've finished to develop (fixing bugs, etc.) my web server application enough, I would build it and upload to my own physical web server and restart the web server application to apply (execute) built source codes.
In this situation, my problem just came out:
How do I automate all the publishing (building, uploading, restarting, etc.) task?
For now, I'm deploying new source codes in the following steps:
1. found a bug or required feature 2. develop to implement features or fix problems 3. build the web server or client source codes 4. upload it to the physical web server 5. restart web server application that is run on the physical web server
this is quite ridiculously annoying tasks when I have really tiny problems to fix on the source code. (like typo errors)
I had googled about 'CI' or 'CD', but I've got some information of Jenkins but they aren't enough to give me the answer because most of them uses Git as their (maybe) middleware to publish their code. I don't want to publish any part of my source code publicly.
I would write some bash scripts that'll automate publishing stuffs but I want to accomplish it as like I'm in company-level environment. anyways, I have absolutely no experience how convenient the distribution process of BIG companies is. so I don't how they accomplish their work on my problem.
Additionally, In the node.js environment, I must restart the web server to apply built source codes which is uploaded to the physical web server. However, this will prevent users from accessing the web app I made while the web server is restarting. this sounds really critical.
so I'll be really thankful if someone let me know about whether there's a edgy way to apply new source codes without restarting web server application in node.js environment.