diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2018-05-23 11:23:11 +0200 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2018-05-23 11:23:11 +0200 |
commit | e14d8381ec7c2ef19ffd1d3a08944c7e87cc16b1 (patch) | |
tree | 7aef163597d1467beabf222a60217aa855bad4c1 | |
download | jenkinsfiles-e14d8381ec7c2ef19ffd1d3a08944c7e87cc16b1.tar.gz |
initial files from master branch
-rw-r--r-- | Makefile | 7 | ||||
-rw-r--r-- | jenkinsfile.firmware.repo | 69 | ||||
-rw-r--r-- | jenkinsfile.firmware.sync | 45 | ||||
-rw-r--r-- | jenkinsfile.kernel.repo | 56 | ||||
-rw-r--r-- | jenkinsfile.kernel.sync | 45 | ||||
-rw-r--r-- | jenkinsfile.mock.repo | 61 | ||||
-rwxr-xr-x | scripts/rsync-rpm-repo.sh | 26 |
7 files changed, 309 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..9e04958 --- /dev/null +++ b/Makefile @@ -0,0 +1,7 @@ + +all: + @echo "targets: clean" + +clean: + rm -f *~ scripts/*~ + diff --git a/jenkinsfile.firmware.repo b/jenkinsfile.firmware.repo new file mode 100644 index 0000000..c647b39 --- /dev/null +++ b/jenkinsfile.firmware.repo @@ -0,0 +1,69 @@ +#!/usr/bin/env groovy +/* + * job name: firmware-repo + */ + +def CopyFirmware(project) { + copyArtifacts([ + filter: 'rpms/*/*.rpm', + flatten: true, + projectName: project, + selector: lastSuccessful(), + target: "rpms/$project" + ]) +} + +def CopyFirmwareOld(project) { + copyArtifacts([ + filter: 'rpmbuild/rpm/RPMS/*/*.rpm,rpmbuild/rpm/SRPMS/*.rpm', + flatten: true, + projectName: project, + selector: lastSuccessful(), + target: "rpms/$project" + ]) +} + +pipeline { + agent { + node 'sys-rhel7-x64' + } + + options { + buildDiscarder(logRotator(numToKeepStr: '3')) + disableConcurrentBuilds() + } + + triggers { + upstream(upstreamProjects: 'seabios,u-boot,coreboot,edk2,ipxe', + threshold: hudson.model.Result.SUCCESS) + } + + stages { + stage ('cleanup') { + steps { + dir('rpms') { + deleteDir() + } + } + } + stage ('copy firmware') { + steps { + CopyFirmware('coreboot') + CopyFirmware('edk2') + CopyFirmware('ipxe') + CopyFirmware('seabios') + CopyFirmware('u-boot') + + CopyFirmwareOld('qboot-old') + CopyFirmwareOld('sgabios-old') + } + } + stage ('create repo') { + steps { + sh 'createrepo rpms' + sh 'find rpms -print' + archiveArtifacts 'rpms/*/*' + } + } + } +} diff --git a/jenkinsfile.firmware.sync b/jenkinsfile.firmware.sync new file mode 100644 index 0000000..1a52998 --- /dev/null +++ b/jenkinsfile.firmware.sync @@ -0,0 +1,45 @@ +#!/usr/bin/env groovy +/* + * job name: firmware-sync + */ + +def base = "bigendian.kraxel.org:/public/vhosts/www.kraxel.org/repos" +def dest = "jenkins" + +pipeline { + agent any + + options { + buildDiscarder(logRotator(numToKeepStr: '3')) + disableConcurrentBuilds() + } + + triggers { + upstream(upstreamProjects: 'firmware-repo', + threshold: hudson.model.Result.SUCCESS) + } + + stages { + stage ('cleanup') { + steps { + dir('rpms') { + deleteDir() + } + } + } + stage ('copy repo') { + steps { + copyArtifacts([ + filter: 'rpms/*/*', + projectName: "firmware-repo", + selector: lastSuccessful(), + ]) + } + } + stage ('rsync repo') { + steps { + sh "scripts/rsync-rpm-repo.sh rpms/ $base/$dest/" + } + } + } +} diff --git a/jenkinsfile.kernel.repo b/jenkinsfile.kernel.repo new file mode 100644 index 0000000..510eec3 --- /dev/null +++ b/jenkinsfile.kernel.repo @@ -0,0 +1,56 @@ +#!/usr/bin/env groovy +/* + * job name: kernel-repo + */ + +def CopyKernel(variant) { + copyArtifacts([ + filter: 'rpms/*/*.rpm', + excludes: 'rpms/*/*.src.rpm', + flatten: true, + projectName: "kernel-$variant", + selector: lastSuccessful(), + target: "rpms/$variant" + ]) +} + +pipeline { + agent { + node 'sys-rhel7-x64' + } + + options { + buildDiscarder(logRotator(numToKeepStr: '3')) + disableConcurrentBuilds() + } + + triggers { + upstream(upstreamProjects: 'kernel-lts-404,kernel-lts-414,kernel-mainline,kernel-candidate', + threshold: hudson.model.Result.SUCCESS) + } + + stages { + stage ('cleanup') { + steps { + dir('rpms') { + deleteDir() + } + } + } + stage ('copy kernels') { + steps { + CopyKernel('lts-404') + CopyKernel('lts-414') + CopyKernel('mainline') + CopyKernel('candidate') + } + } + stage ('create repo') { + steps { + sh 'createrepo rpms' + sh 'find rpms -print' + archiveArtifacts 'rpms/*/*' + } + } + } +} diff --git a/jenkinsfile.kernel.sync b/jenkinsfile.kernel.sync new file mode 100644 index 0000000..219b10d --- /dev/null +++ b/jenkinsfile.kernel.sync @@ -0,0 +1,45 @@ +#!/usr/bin/env groovy +/* + * job name: kernel-sync + */ + +def base = "bigendian.kraxel.org:/public/vhosts/www.kraxel.org/repos" +def dest = "kernel" + +pipeline { + agent any + + options { + buildDiscarder(logRotator(numToKeepStr: '3')) + disableConcurrentBuilds() + } + + triggers { + upstream(upstreamProjects: 'kernel-repo', + threshold: hudson.model.Result.SUCCESS) + } + + stages { + stage ('cleanup') { + steps { + dir('rpms') { + deleteDir() + } + } + } + stage ('copy repo') { + steps { + copyArtifacts([ + filter: 'rpms/*/*', + projectName: "kernel-repo", + selector: lastSuccessful(), + ]) + } + } + stage ('rsync repo') { + steps { + sh "scripts/rsync-rpm-repo.sh rpms/ $base/$dest/" + } + } + } +} diff --git a/jenkinsfile.mock.repo b/jenkinsfile.mock.repo new file mode 100644 index 0000000..7d59deb --- /dev/null +++ b/jenkinsfile.mock.repo @@ -0,0 +1,61 @@ +#!/usr/bin/env groovy +/* + * job name: mock-pipe-repos + */ + +def CopyRPMS(project) { + copyArtifacts([ + filter: 'rpms/*/*.rpm', + flatten: false, + projectName: project, + selector: lastSuccessful(), + target: "." + ]) +} + +def CreateRepos() { + sh ''' + for dir in rpms/*; do + echo "# $(basename $dir)" + createrepo $dir + done + ''' +} + +pipeline { + agent { + node 'sys-rhel7-x64' + } + + options { + buildDiscarder(logRotator(numToKeepStr: '3')) + disableConcurrentBuilds() + } + + triggers { + upstream(upstreamProjects: 'mock-pipe-libdvdcss,mock-pipe-kraxel.org', + threshold: hudson.model.Result.SUCCESS) + } + + stages { + stage ('cleanup') { + steps { + dir('rpms') { + deleteDir() + } + } + } + stage ('copy rpms') { + steps { + CopyRPMS('mock-pipe-libdvdcss') + CopyRPMS('mock-pipe-kraxel.org') + } + } + stage ('create repos') { + steps { + CreateRepos() + archiveArtifacts 'rpms/*/*.rpm,rpms/*/repodata/*' + } + } + } +} diff --git a/scripts/rsync-rpm-repo.sh b/scripts/rsync-rpm-repo.sh new file mode 100755 index 0000000..385d672 --- /dev/null +++ b/scripts/rsync-rpm-repo.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +# args +srcdir="$1" +dstdir="$2" +rate="${3-16}" + +echo "#" +echo "# srcdir: $srcdir" +echo "# dstdir: $dstdir" +echo "#" +echo "# rsync rpm packages" +rsync -av --fuzzy --bwlimit=$rate \ + --include "*.rpm" \ + --include "*/" \ + --exclude "*" \ + "$srcdir" "$dstdir" + +echo "#" +echo "# rsync repodata, cleanup" +rsync -av --delete-after --bwlimit=$rate \ + "$srcdir" "$dstdir" + +echo "#" +echo "# done" +echo "#" |