Hello experienced programmers, I ask for advice regarding my workflow.
I'm writing a lot of small programs to use on a server in order to execute several operations and calculations.
My workflow is to simply open the server, open vim and write the code; then store it directly in a stow directory if it's python or its compiled binary if it's something else.
The more I do this the more I realize this is unsustainable:
- I'm not using git, which is problematic as I often have to come back and make some adjustments.
- I cannot use a different IDE, which I would prefer.
- I don't really have proper personal backups.

The advantage of this, is that I just have to write the code and I can immediately use it.
What I would like is: write the code on my personal computer and seamlessly have the software available in my server ~/.local/bin to be run.
I do not want to have to run rsync 20 times in order to do this.
Do you know how I could set up my system in order to achieve this?
Thank you.


So, what I ended up doing is the following: I have a folder on my local computer which is tracked through git and I sync this with a remote server.
On the server on which I need the software I do not have the git repository.
In the git repository I have all the documents I'm developing, a lib folder, a build folder, a deploy folder and a virtual environment.
I have a post-commit hook which builds all the software and in the deploy folder I have symlinks to all the executables I want to have on the server.
The hook also pushed everything in the deploy folder and everything in the lib folder to a stow directory on the server through rsync.
At this point I can update any existing software by simply changing the code and committing.
To add new programs I have to perform an extra step, which is to restow the folder on the server.
This works out quite nicely for me, since virtual environment and all build dependencies stay out of the way and I easily get everything on the server.
I might as well start writing some tests for my software, but that will come a bit later...

@rastinza seems like a classic CI/CD example.

One could have used a hook on the push to main which would automatically build and then send to server. This is what still missing for my setup.

I do something similar, where I wrote my own bash script that would build the code and then rsync to server via ssh.

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.