this repo has no description
1pipeline {
2 agent {
3 docker {
4 image 'registry.git.facekapow.dev/darling-build-image-top:latest'
5 registryUrl 'https://registry.git.facekapow.dev'
6 alwaysPull true
7 args '-u ci:ci -v /var/run/docker.sock:/var/run/docker.sock --group-add docker'
8 label 'darling'
9 }
10 }
11
12 parameters {
13 booleanParam(name: 'DEB', defaultValue: true, description: 'If true, build Debian packages.')
14 booleanParam(name: 'RPM', defaultValue: true, description: 'If true, build RPM packages.')
15 }
16
17 triggers {
18 githubPush()
19 }
20
21 environment {
22 ESCAPED_JOB_NAME = sh(script: 'echo "${JOB_NAME}" | sed \'s/\\//-/g\'', returnStdout: true).trim()
23 CCACHE_DIR = credentials('darling-ccache-dir')
24 }
25
26 options {
27 skipDefaultCheckout()
28 disableConcurrentBuilds abortPrevious: true
29 }
30
31 stages {
32 stage('Start Job') {
33 steps {
34 scmSkip(deleteBuild: true, skipPattern:'.*\\[ci skip\\].*')
35
36 dir('source') {
37 checkout scm
38 }
39 }
40 }
41
42 stage('Prepare') {
43 steps {
44 dir('source') {
45 sh 'git submodule update --init --recursive'
46 sh 'cd src/external/swift && git lfs install && git lfs pull'
47 touch '../.submodules-cloned'
48 }
49 }
50 }
51
52 stage('Build Debian') {
53 when { expression { params.DEB } }
54 agent {
55 docker {
56 image 'registry.git.facekapow.dev/darling-build-image:latest'
57 registryUrl 'https://registry.git.facekapow.dev'
58 alwaysPull true
59 args '-u ci:ci -v ${WORKSPACE}/source:/src/mnt:rw -v ${CCACHE_DIR}:/ccache:rw'
60 label 'darling'
61 reuseNode true
62 }
63 }
64 environment {
65 DEB_DISTRO = sh(script: 'lsb_release -cs', returnStdout: true).trim()
66 CCACHE_DIR = '/ccache'
67 CCACHE_BASEDIR = '/src/mnt'
68 }
69 steps {
70 //sh 'tools/debian/make-deb --dsc'
71 sh '''#!/bin/bash
72 pushd /src/mnt
73 tools/debian/make-deb
74 popd
75 '''
76
77 sh 'rm -rf out-deb'
78 sh 'mkdir out-deb'
79
80 dir('out-deb') {
81 sh 'mv /src/*.deb ./'
82 }
83
84 archiveArtifacts artifacts: 'out-deb/**/*', fingerprint: true
85 }
86 }
87
88 stage('Build RPM') {
89 when { expression { params.RPM } }
90 agent {
91 docker {
92 image 'registry.git.facekapow.dev/darling-build-image-fedora:latest'
93 registryUrl 'https://registry.git.facekapow.dev'
94 alwaysPull true
95 args '-v ${WORKSPACE}/source:/src:ro -v ${CCACHE_DIR}:/ccache:rw'
96 label 'darling'
97 reuseNode true
98 }
99 }
100 environment {
101 CCACHE_DIR = '/ccache'
102 CCACHE_BASEDIR = '/home/ci/rpmbuild/BUILD/darling'
103 }
104 steps {
105 sh 'bash -xv /src/rpm/build.bsh'
106
107 sh 'rm -rf out-rpm'
108 sh 'mkdir out-rpm'
109
110 dir('out-rpm') {
111 sh 'mv ${HOME}/rpmbuild/RPMS/x86_64/*.rpm ./'
112 }
113
114 archiveArtifacts artifacts: 'out-rpm/**/*', fingerprint: true
115 }
116 }
117 }
118
119 post {
120 cleanup {
121 script {
122 if (!fileExists('.submodules-cloned')) {
123 sh 'rm -rf source'
124 }
125 }
126 }
127 }
128}