From 8c5ba6484858b423d88c8375947a0daa7ba92d74 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sun, 2 Oct 2022 16:20:01 +0300 Subject: add Jenkinsfile --- Jenkinsfile | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..6093857 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,73 @@ +pipeline { + agent any + + environment { + deploy_key = "srv.tt-rss.org" + deploy_host = "tt-rss.fakecake.org" + } + + stages { + stage('build') { + steps { + sh """ + docker run --rm --user 1000 \ + -v ${env.WORKSPACE}:/app --workdir /app \ + adactive/docker-electron-installer-windows \ + sh -c 'unset WINEPREFIX && \ + npm install && npm run package-lin && \ + npm run package-win && \ + npm run create-installer-win' + """ + } + } + stage('compress') { + steps { + dir('release-builds') { + sh """ + tar -czf 'Pow! Comics Reader-linux-x64.tgz' 'Pow! Comics Reader-linux-x64' + tar -czf 'Pow! Comics Reader-win32-x64.tgz' 'Pow! Comics Reader-win32-x64' + """ + } + } + } + stage('archive') { + steps { + dir('release-builds') { + archiveArtifacts 'installer/*.exe, *.tgz' + } + } + } + stage('deploy') { + steps { + dir('release-builds') { + sshagent(credentials: ["${deploy_key}"]) { + script { + def files = findFiles(glob: '**/installer/*.exe, *.tgz') + + for (String file : files) { + sh("scp -oStrictHostKeyChecking=no \"${file}\" ${deploy_host}:builds/tt-comics/") + } + } + } + } + } + } + stage('cleanup') { + steps { + sh """ + rm -rfv -- release-builds + """ + } + } + } + + post { + failure { + mail body: "Project: ${env.JOB_NAME}
Build Number: ${env.BUILD_NUMBER}
build URL: ${env.BUILD_URL}", + charset: 'UTF-8', from: 'jenkins@fakecake.org', + mimeType: 'text/html', + subject: "Build failed: ${env.JOB_NAME}", + to: "fox@fakecake.org"; + } + } +} -- cgit v1.2.3