Warning, /packaging/snap-kf5/Jenkinsfile is written in an unsupported language. File is not indexed.
0001 env.DIST = 'xenial'
0002 env.TYPE = 'user'
0003
0004 cleanNode('master') {
0005 stage 'generate'
0006 git 'https://github.com/apachelogger/kf5-snap'
0007 sh '~/tooling/nci/contain.rb rake generate'
0008 sh "echo '----snapcraft----'; cat snapcraft.yaml; echo '----snapcraft----'"
0009 copyArtifacts projectName: env.JOB_NAME, filter: 'content.json, versions.json', optional: true
0010 // This should really be pushed into git, alas, somewhat tricky because github
0011 // and pipeline git plugin can't push on its own.
0012 archiveArtifacts 'snapcraft.yaml, content.json, versions.json'
0013 stash includes: 'Rakefile, snapcraft.yaml, extend_content.rb, stage-*.json, assets/*', name: 'snapcraft'
0014 }
0015
0016 cleanNode('cloud && amd64') {
0017 stage ('snapcraft')
0018 unstash 'snapcraft'
0019 try {
0020 sh '~/tooling/nci/contain.rb rake snapcraft'
0021 } finally {
0022 // Fix permissions, for some reason breeze' source is chowned to 1000.
0023 // That isn't even a legit user though.
0024 sh '~/tooling/nci/contain.rb chown -R root .'
0025 }
0026 sh 'ls -lah'
0027 archiveArtifacts 'stage-*.json, kde-frameworks-5_*_amd64.snap'
0028 stash name: 'snaps', includes: 'Rakefile, *_amd64.snap, kde-frameworks-5-dev_amd64.tar.xz*'
0029 }
0030
0031 cleanNode('master') {
0032 stage 'snapcraft push'
0033 unstash 'snaps'
0034 sh 'gpg2 --armor --detach-sign -o kde-frameworks-5-dev_amd64.tar.xz.sig kde-frameworks-5-dev_amd64.tar.xz'
0035 archiveArtifacts 'kde-frameworks-5-dev_amd64.tar.xz*'
0036 sh 'tree || ls -lahR'
0037 // Temporary workspace during pipeline execution can't be accessed via UI, so
0038 // this should be save.
0039 // Even so we should move to a contain.rb which forward mounts the snapcraft
0040 // dir as volume into the container.
0041 sh 'cp ~/.config/snapcraft/snapcraft.cfg snapcraft.cfg'
0042 sh '~/tooling/nci/contain.rb rake publish'
0043 }
0044
0045 def cleanNode(label = null, body) {
0046 node(label) {
0047 deleteDir()
0048 try {
0049 wrap([$class: 'AnsiColorBuildWrapper', colorMapName: 'xterm']) {
0050 wrap([$class: 'TimestamperBuildWrapper']) {
0051 body()
0052 }
0053 }
0054 } finally {
0055 step([$class: 'WsCleanup', cleanWhenFailure: true])
0056 }
0057 }
0058 }