adam
b3853befc8
Some checks failed
gitea.arg.rip/_template-service/pipeline/head There was a failure building this commit
84 lines
2.4 KiB
Groovy
84 lines
2.4 KiB
Groovy
pipeline {
|
|
agent any
|
|
environment {
|
|
linuxServiceAccount=credentials('UUID')
|
|
productiondatabase_connectionString="?"
|
|
targetServer="string"
|
|
}
|
|
stages {
|
|
stage('build'){
|
|
//"hey self, what if once in your life you try a *different* language?" "then i'll update this file, moai.emoji."
|
|
//dotnetBuild(outputDirectory: "./", project: "Deployment/Deployment.csproj")
|
|
}
|
|
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 ${env.targetServer} rm -rf temp_deploy'
|
|
sh 'ssh ${env.targetServer} mkdir -p temp_deploy'
|
|
sh 'scp -r dist ${env.targetServer}:temp_deploy'
|
|
}
|
|
}
|
|
stage ('stop')
|
|
{
|
|
when {
|
|
branch "release"
|
|
}
|
|
steps{
|
|
script{
|
|
//user is the service user
|
|
ssh ${env.targetServer} 'bash -s' << 'ENDSSH'
|
|
systemctl --user stop $svcname
|
|
ENDSSH
|
|
}
|
|
}
|
|
}
|
|
stage ('backup db')
|
|
{
|
|
when {
|
|
branch "release"
|
|
}
|
|
steps{
|
|
//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"
|
|
}
|
|
steps{
|
|
sh 'ssh ${env.targetServer} "rm -rf dist/ && mv temp_deploy/ dist/"'
|
|
}
|
|
}
|
|
stage ('spin up')
|
|
{
|
|
when {
|
|
branch "release"
|
|
}
|
|
steps{
|
|
script{
|
|
ssh ${env.targetServer} 'bash -s' << 'ENDSSH'
|
|
systemctl --user start $svcname
|
|
ENDSSH
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |