aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2018-05-23 11:23:11 +0200
committerGerd Hoffmann <kraxel@redhat.com>2018-05-23 11:23:11 +0200
commite14d8381ec7c2ef19ffd1d3a08944c7e87cc16b1 (patch)
tree7aef163597d1467beabf222a60217aa855bad4c1
downloadjenkinsfiles-e14d8381ec7c2ef19ffd1d3a08944c7e87cc16b1.tar.gz
initial files from master branch
-rw-r--r--Makefile7
-rw-r--r--jenkinsfile.firmware.repo69
-rw-r--r--jenkinsfile.firmware.sync45
-rw-r--r--jenkinsfile.kernel.repo56
-rw-r--r--jenkinsfile.kernel.sync45
-rw-r--r--jenkinsfile.mock.repo61
-rwxr-xr-xscripts/rsync-rpm-repo.sh26
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 "#"