specifications
1 click deployment
Ideally a project would have a jenkinsfile, so jenkins would do it.
so jenkins could have a "deploy" step in a jenkinsfile.
if you can get jenkins to store secrets, the jenkinsfile can say "ssh in to this machine and set it up".
with the power of SCP, jenkins doesn't have to host, or wget when you get there. so you should SCP the drop, then deploy it. as demonstrated in sample.jenkinsfile, a file sitting on your desktop in your face for like 8 months. speaking of which, is "dist" the build file? might be set up in the build. so set that up in your build, and be sure to scp -r
whatever directory you choose.
ok great. we've copied our files. what do now?
systemctl --user
- you'll have to set up Lingering.
systemctl --user stop dontexist
# mv
systemctl --user start dontexist
great. That's for an update. What if it doesn't exist yet? drop your service file in .config/systemd/user.
how does jenkins know where to deploy? it feels like hardcoding to put a deployment server in a repo. ...yeah adam, that's called "configuration". Hence a jenkinsfile. and our User syncronization style is "manual" (a.k.a., none), so just be sure to create the same user with the same creds on every system. boom done. ...but what about "as-you" stuff? director's assistant is for doing things "as self". Build in "update software". but what about itself?
wait this is all stupid. apps can update themselves. Especially now that you have a fkn domain. now jenkins can just do what it's comfortable with: build and "publish".
...ok how?
curl -X 'GET' \
'https://gitea.arg.rip/api/v1/repos/beefhavers/dusk-good/releases/latest' \
-H 'accept: application/json' \
-H 'authorization: Basic [TOKEN]'
now wtf are you going to want to deploy later? just write a proper fucking jenkinsfile.
Eligos
whatever I did to keep the windows machine off the internet... Eligos can't reach Gitea, and ssh-ing into eligos doesn't work. Fuck eligos, we'll do it the hard way.
1 click deploy as service
//TODO
1 click deploy as director's assistant function
//TODO
configuration hot reloading
//TODO