more elaboration, still full of todo's
Some checks failed
gitea.arg.rip/_template-service/pipeline/head There was a failure building this commit

This commit is contained in:
adam 2024-11-17 13:23:08 -05:00
parent 5e0cd5e63a
commit 50842128ad

69
Jenkinsfile vendored
View File

@ -1,11 +1,70 @@
pipeline {
agent any
stages {
stage (Deploy) {
sh ssh user@server rm -rf temp_deploy
sh ssh user@server mkdir -p temp_deploy
sh scp -r dist user@server:temp_deploy
sh ssh user@server “rm -rf dist/ && mv temp_deploy/ dist/”’
stage('build'){
//TODO: dotnet build
}
stage('test'){
//TODO: run tests
//TODO: publish tests in some nicely readable format
}
stage ('upload') {
when {
//now my CI/CD is no longer continuous, it's just... automatic.
//(which is what I actually want tbh)
//but that does mean I have to put this condition in every single branch
branch "release"
}
steps{
sh 'ssh user@server rm -rf temp_deploy'
sh 'ssh user@server mkdir -p temp_deploy'
sh 'scp -r dist user@server:temp_deploy'
}
}
stage ('stop')
{
when {
branch "release"
}
script{
//user is the service user
ssh user@host 'bash -s' << 'ENDSSH'
systemctl --user stop $svcname
ENDSSH
}
}
stage ('backup db')
{
when {
branch "release"
}
//TODO: backup database
}
stage ('update db')
{
when {
branch "release"
}
//TODO: update database
//TODO: if updating the db fails, restore the old one
}
stage ('replace')
{
when {
branch "release"
}
sh 'ssh user@server “rm -rf dist/ && mv temp_deploy/ dist/”'
}
stage ('spin up')
{
when {
branch "release"
}
script{
ssh user@host 'bash -s' << 'ENDSSH'
systemctl --user start $svcname
ENDSSH
}
}
}
}