Remove old Jenkins jobs

The new Jenkins jobs are hosed at:

  https://github.com/coreos/jenkins-os

Signed-off-by: Geoff Levand <geoff@infradead.org>
This commit is contained in:
Geoff Levand 2017-03-20 15:36:03 -07:00
parent 09fd7a37c1
commit 1c16018906
21 changed files with 0 additions and 2411 deletions

View File

@ -1,114 +0,0 @@
#!/bin/bash
#
# Jenkins job for creating build manifests.
#
# Input Parameters:
#
# MANIFEST_REF=master
# Git branch or tag in github.com/coreos/manifest to build
#
# LOCAL_MANIFEST=
# Repo local manifest to amend the branch's default manifest with.
# https://wiki.cyanogenmod.org/w/Doc:_Using_manifests#The_local_manifest
#
# Input Artifacts:
#
# $WORKSPACE/bin/cork from a recent mantle build.
#
# Git:
#
# github.com/coreos/manifest checked out to $WORKSPACE/manifest
# SSH push access to github.com/coreos/manifest-builds
#
# Output:
#
# Pushes build tag to manifest-builds.
# Writes manifest.properties w/ parameters for sdk and toolchain jobs.
set -ex
export GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=no"
finish() {
local tag="$1"
git -C "${WORKSPACE}/manifest" push \
"ssh://git@github.com/coreos/manifest-builds.git" \
"refs/tags/${tag}:refs/tags/${tag}"
tee "${WORKSPACE}/manifest.properties" <<EOF
MANIFEST_URL = https://github.com/coreos/manifest-builds.git
MANIFEST_REF = refs/tags/${tag}
MANIFEST_NAME = release.xml
COREOS_OFFICIAL = ${COREOS_OFFICIAL:-0}
EOF
}
# Branches are of the form remote-name/branch-name. Tags are just tag-name.
# If we have a release tag use it, for branches we need to make a tag.
COREOS_OFFICIAL=0
if [[ "${GIT_BRANCH}" != */* ]]; then
COREOS_OFFICIAL=1
finish "${GIT_BRANCH}"
exit
fi
MANIFEST_BRANCH="${GIT_BRANCH##*/}"
MANIFEST_NAME="${MANIFEST_BRANCH}.xml"
[[ -f "manifest/${MANIFEST_NAME}" ]]
source manifest/version.txt
export COREOS_BUILD_ID="${MANIFEST_BRANCH}-${BUILD_NUMBER}"
# hack to get repo to set things up using the manifest repo we already have
# (amazing that it tolerates this considering it usually is so intolerant)
mkdir -p .repo
ln -sfT ../manifest .repo/manifests
ln -sfT ../manifest/.git .repo/manifests.git
# Cleanup/setup local manifests
rm -rf .repo/local_manifests
if [[ -n "${LOCAL_MANIFEST}" ]]; then
mkdir -p .repo/local_manifests
cat >.repo/local_manifests/local.xml <<<"${LOCAL_MANIFEST}"
fi
./bin/cork update --create --downgrade-replace --verbose \
--manifest-url "${GIT_URL}" \
--manifest-branch "${GIT_COMMIT}" \
--manifest-name "${MANIFEST_NAME}" \
--new-version "${COREOS_VERSION}" \
--sdk-version "${COREOS_SDK_VERSION}"
./bin/cork enter --experimental -- sh -c \
"pwd; repo manifest -r > '/mnt/host/source/manifest/${COREOS_BUILD_ID}.xml'"
cd manifest
git add "${COREOS_BUILD_ID}.xml"
ln -sf "${COREOS_BUILD_ID}.xml" default.xml
ln -sf "${COREOS_BUILD_ID}.xml" release.xml
git add default.xml release.xml
tee version.txt <<EOF
COREOS_VERSION=${COREOS_VERSION_ID}+${COREOS_BUILD_ID}
COREOS_VERSION_ID=${COREOS_VERSION_ID}
COREOS_BUILD_ID=${COREOS_BUILD_ID}
COREOS_SDK_VERSION=${COREOS_SDK_VERSION}
EOF
git add version.txt
EMAIL="jenkins@jenkins.coreos.systems"
GIT_AUTHOR_NAME="CoreOS Jenkins"
GIT_COMMITTER_NAME="${GIT_AUTHOR_NAME}"
export EMAIL GIT_AUTHOR_NAME GIT_COMMITTER_NAME
git commit \
-m "${COREOS_BUILD_ID}: add build manifest" \
-m "Based on ${GIT_URL} branch ${MANIFEST_BRANCH}" \
-m "${BUILD_URL}"
git tag -m "${COREOS_BUILD_ID}" "${COREOS_BUILD_ID}" HEAD
# assert that what we just did will work, update symlink because verify doesn't have a --manifest-name option yet
cd "${WORKSPACE}"
ln -sf "manifests/${COREOS_BUILD_ID}.xml" .repo/manifest.xml
./bin/cork verify
finish "${COREOS_BUILD_ID}"

View File

@ -1,63 +0,0 @@
#!/bin/bash
#
# Jenkins job for building the SDK tarball.
#
# Input Parameters:
#
# USE_CACHE=false
# Enable use of any binary packages cached locally from previous builds.
# Currently not safe to enable, particularly bad with multiple branches.
#
# MANIFEST_URL=https://github.com/coreos/manifest-builds.git
# MANIFEST_REF=refs/tags/
# MANIFEST_NAME=release.xml
# Git URL, tag, and manifest file for this build.
#
# COREOS_OFFICIAL=0
# Set to 1 when building official releases.
#
# Input Artifacts:
#
# $WORKSPACE/bin/cork from a recent mantle build.
#
# Secrets:
#
# GPG_SECRET_KEY_FILE=
# Exported GPG public/private key used to sign uploaded files.
#
# GOOGLE_APPLICATION_CREDENTIALS=
# JSON file defining a Google service account for uploading files.
#
# Output:
#
# Uploads binary packages and tarball to gs://builds.developer.core-os.net
set -ex
enter() {
./bin/cork enter --experimental -- "$@"
}
# hack because catalyst leaves things chowned as root
[[ -d .cache/sdks ]] && sudo chown -R $USER .cache/sdks
source .repo/manifests/version.txt
export COREOS_BUILD_ID
# Set up GPG for signing images
export GNUPGHOME="${PWD}/.gnupg"
sudo rm -rf "${GNUPGHOME}"
trap "sudo rm -rf '${GNUPGHOME}'" EXIT
mkdir --mode=0700 "${GNUPGHOME}"
gpg --import "${GPG_SECRET_KEY_FILE}"
# Wipe all of catalyst or just clear out old tarballs taking up space
if [[ "${COREOS_OFFICIAL:-0}" -eq 1 || "$USE_CACHE" == false ]]; then
sudo rm -rf src/build/catalyst
fi
sudo rm -rf src/build/catalyst/builds
enter sudo emerge -uv --jobs=2 catalyst
enter sudo /mnt/host/source/src/scripts/bootstrap_sdk \
--sign buildbot@coreos.com --sign_digests buildbot@coreos.com \
--upload --upload_root gs://builds.developer.core-os.net

View File

@ -1,60 +0,0 @@
#!/bin/bash
#
# Jenkins job for building the SDK's cross toolchains.
#
# Input Parameters:
#
# USE_CACHE=false
# Enable use of any binary packages cached locally from previous builds.
# Currently not safe to enable, particularly bad with multiple branches.
#
# MANIFEST_URL=https://github.com/coreos/manifest-builds.git
# MANIFEST_REF=refs/tags/
# MANIFEST_NAME=release.xml
# Git URL, tag, and manifest file for this build.
#
# COREOS_OFFICIAL=0
# Set to 1 when building official releases.
#
# Input Artifacts:
#
# $WORKSPACE/bin/cork from a recent mantle build.
#
# Secrets:
#
# GPG_SECRET_KEY_FILE=
# Exported GPG public/private key used to sign uploaded files.
#
# GOOGLE_APPLICATION_CREDENTIALS=
# JSON file defining a Google service account for uploading files.
#
# Output:
#
# Uploads binary packages to gs://builds.developer.core-os.net
set -ex
enter() {
./bin/cork enter --experimental -- "$@"
}
source .repo/manifests/version.txt
export COREOS_BUILD_ID
# Set up GPG for signing images
export GNUPGHOME="${PWD}/.gnupg"
sudo rm -rf "${GNUPGHOME}"
trap "sudo rm -rf '${GNUPGHOME}'" EXIT
mkdir --mode=0700 "${GNUPGHOME}"
gpg --import "${GPG_SECRET_KEY_FILE}"
# Wipe all of catalyst or just clear out old tarballs taking up space
if [[ "${COREOS_OFFICIAL:-0}" -eq 1 || "$USE_CACHE" == false ]]; then
sudo rm -rf src/build/catalyst
fi
sudo rm -rf src/build/catalyst/builds
enter sudo emerge -uv --jobs=2 catalyst
enter sudo /mnt/host/source/src/scripts/build_toolchains \
--sign buildbot@coreos.com --sign_digests buildbot@coreos.com \
--upload --upload_root gs://builds.developer.core-os.net

View File

@ -1,67 +0,0 @@
#!/bin/bash
#
# Jenkins job for building board binary packages.
#
# Input Parameters:
#
# MANIFEST_URL=https://github.com/coreos/manifest-builds.git
# MANIFEST_REF=refs/tags/
# MANIFEST_NAME=release.xml
# Git URL, tag, and manifest file for this build.
#
# COREOS_OFFICIAL=0
# Set to 1 when building official releases.
#
# BOARD=amd64-usr
# Target board to build.
#
# Input Artifacts:
#
# $WORKSPACE/bin/cork from a recent mantle build.
#
# Secrets:
#
# GOOGLE_APPLICATION_CREDENTIALS=
# JSON file defining a Google service account for uploading files.
#
# Output:
#
# Uploads binary packages to gs://builds.developer.core-os.net
set -ex
# use a ccache dir that persists across sdk recreations
# XXX: alternatively use a ccache dir that is usable by all jobs on a given node.
mkdir -p .cache/ccache
enter() {
./bin/cork enter --experimental -- env \
CCACHE_DIR="/mnt/host/source/.cache/ccache" \
CCACHE_MAXSIZE="5G" "$@"
}
script() {
local script="/mnt/host/source/src/scripts/${1}"; shift
enter "${script}" "$@"
}
source .repo/manifests/version.txt
export COREOS_BUILD_ID
# figure out if ccache is doing us any good in this scheme
enter ccache --zero-stats
#if [[ "${COREOS_OFFICIAL:-0}" -eq 1 ]]; then
script setup_board --board=${BOARD} \
--skip_chroot_upgrade \
--getbinpkgver=${COREOS_VERSION} \
--toolchainpkgonly \
--force
#fi
script build_packages --board=${BOARD} \
--skip_chroot_upgrade \
--getbinpkgver=${COREOS_VERSION} \
--toolchainpkgonly \
--upload --upload_root gs://builds.developer.core-os.net
enter ccache --show-stats

View File

@ -1,96 +0,0 @@
#!/bin/bash
#
# Jenkins job for building the base production image and dev container.
#
# Input Parameters:
#
# USE_CACHE=false
# Enable use of any binary packages cached locally from previous builds.
# Currently not safe to enable, particularly bad with multiple branches.
#
# MANIFEST_URL=https://github.com/coreos/manifest-builds.git
# MANIFEST_REF=refs/tags/
# MANIFEST_NAME=release.xml
# Git URL, tag, and manifest file for this build.
#
# COREOS_OFFICIAL=0
# Set to 1 when building official releases.
#
# BOARD=amd64-usr
# Target board to build.
#
# Input Artifacts:
#
# $WORKSPACE/bin/cork from a recent mantle build.
#
# Secrets:
#
# GPG_SECRET_KEY_FILE=
# Exported GPG public/private key used to sign uploaded files.
#
# GOOGLE_APPLICATION_CREDENTIALS=
# JSON file defining a Google service account for uploading files.
#
# Output:
#
# Uploads test branch images to gs://builds.developer.core-os.net and
# official images to gs://builds.release.core-os.net
set -ex
# first thing, clear out old images
sudo rm -rf src/build
script() {
local script="/mnt/host/source/src/scripts/${1}"; shift
./bin/cork enter --experimental -- "${script}" "$@"
}
source .repo/manifests/version.txt
export COREOS_BUILD_ID
# Set up GPG for signing images
export GNUPGHOME="${PWD}/.gnupg"
rm -rf "${GNUPGHOME}"
trap "rm -rf '${GNUPGHOME}'" EXIT
mkdir --mode=0700 "${GNUPGHOME}"
gpg --import "${GPG_SECRET_KEY_FILE}"
sudo rm -rf chroot/build
script setup_board --board=${BOARD} \
--getbinpkgver="${COREOS_VERSION}" \
--regen_configs_only
if [[ "${COREOS_OFFICIAL}" -eq 1 ]]; then
GROUP=stable
UPLOAD=gs://builds.release.core-os.net/stable
script set_official --board=${BOARD} --official
else
GROUP=developer
UPLOAD=gs://builds.developer.core-os.net
script set_official --board=${BOARD} --noofficial
fi
script build_image --board=${BOARD} \
--group=${GROUP} \
--getbinpkg \
--getbinpkgver="${COREOS_VERSION}" \
--sign=buildbot@coreos.com \
--sign_digests=buildbot@coreos.com \
--upload_root=${UPLOAD} \
--upload prod container
if [[ "${COREOS_OFFICIAL}" -eq 1 ]]; then
script image_set_group --board=${BOARD} \
--group=alpha \
--sign=buildbot@coreos.com \
--sign_digests=buildbot@coreos.com \
--upload_root=gs://builds.release.core-os.net/alpha \
--upload
script image_set_group --board=${BOARD} \
--group=beta \
--sign=buildbot@coreos.com \
--sign_digests=buildbot@coreos.com \
--upload_root=gs://builds.release.core-os.net/beta \
--upload
fi

View File

@ -1,106 +0,0 @@
#!/bin/bash
#
# Jenkins job for building final VM and OEM target images.
#
# Input Parameters:
#
# USE_CACHE=false
# Enable use of any binary packages cached locally from previous builds.
# Currently not safe to enable, particularly bad with multiple branches.
#
# MANIFEST_URL=https://github.com/coreos/manifest-builds.git
# MANIFEST_REF=refs/tags/
# MANIFEST_NAME=release.xml
# Git URL, tag, and manifest file for this build.
#
# COREOS_OFFICIAL=0
# Set to 1 when building official releases.
#
# BOARD=amd64-usr
# Target board to build.
#
# FORMAT=qemu
# Target VM or OEM.
#
# GROUP=developer
# Target update group.
#
# Input Artifacts:
#
# $WORKSPACE/bin/cork from a recent mantle build.
#
# Secrets:
#
# GPG_SECRET_KEY_FILE=
# Exported GPG public/private key used to sign uploaded files.
#
# GOOGLE_APPLICATION_CREDENTIALS=
# JSON file defining a Google service account for uploading files.
#
# Output:
#
# Uploads test branch images to gs://builds.developer.core-os.net and
# official images to gs://builds.release.core-os.net
# Writes gce.properties for triggering a GCE test job if applicable.
set -ex
rm -f gce.properties
sudo rm -rf tmp
# check that the matrix didn't go bananas
if [[ "${COREOS_OFFICIAL}" -eq 1 ]]; then
[[ "${GROUP}" != developer ]]
else
[[ "${GROUP}" == developer ]]
fi
script() {
local script="/mnt/host/source/src/scripts/${1}"; shift
./bin/cork enter --experimental -- "${script}" "$@"
}
enter() {
./bin/cork enter --experimental -- "$@"
}
source .repo/manifests/version.txt
export COREOS_BUILD_ID
# Set up GPG for signing images
export GNUPGHOME="${PWD}/.gnupg"
rm -rf "${GNUPGHOME}"
trap "rm -rf '${GNUPGHOME}'" EXIT
mkdir --mode=0700 "${GNUPGHOME}"
gpg --import "${GPG_SECRET_KEY_FILE}"
if [[ "${GROUP}" == developer ]]; then
root="gs://builds.developer.core-os.net"
dlroot=""
else
root="gs://builds.release.core-os.net/${GROUP}"
dlroot="--download_root https://${GROUP}.release.core-os.net"
fi
mkdir -p src tmp
./bin/cork download-image --root="${root}/boards/${BOARD}/${COREOS_VERSION}" \
--json-key="${GOOGLE_APPLICATION_CREDENTIALS}" \
--cache-dir=./src \
--platform=qemu
img=src/coreos_production_image.bin
if [[ "${img}.bz2" -nt "${img}" ]]; then
enter lbunzip2 -k -f "/mnt/host/source/${img}.bz2"
fi
sudo rm -rf chroot/build
script image_to_vm.sh --board=${BOARD} \
--format=${FORMAT} \
--prod_image \
--getbinpkg \
--getbinpkgver=${COREOS_VERSION} \
--from=/mnt/host/source/src/ \
--to=/mnt/host/source/tmp/ \
--sign=buildbot@coreos.com \
--sign_digests=buildbot@coreos.com \
--upload_root="${root}" \
--upload ${dlroot}

View File

@ -1,21 +0,0 @@
#!/bin/bash
#
# This is the common job code to paste into Jenkins for everything except
# the manifest job. Update the exec line as appropriate.
set -ex
# build may not be started without a ref value
[[ -n "${MANIFEST_REF#refs/tags/}" ]]
# hack for catalyst jobs which may leave things chowned as root
#[[ -d .cache/sdks ]] && sudo chown -R $USER .cache/sdks
./bin/cork update --create --downgrade-replace --verify --verbose \
--manifest-url "${MANIFEST_URL}" \
--manifest-branch "${MANIFEST_REF}" \
--manifest-name "${MANIFEST_NAME}"
# add to packages job args which needs a full toolchain:
# -- --toolchain_boards=${BOARD}
exec ./src/scripts/build_jobs/00_job.sh

View File

@ -1,72 +0,0 @@
# CoreOS Jenkins build system
## Requirements
### Storage Requirements
CoreOS manifests are managed using git and repo, so a git server must be available to host these. An additional git repo is used by the `os-manifest` job to store a temporary manifest commit that is passed through to downstream jobs.
The jobs also require google storage buckets for storing build artifacts such as binary packages and CoreOS images.
### Jenkins Requirements
The jobs use a number of Jenkins plugins during jobs. These are:
- [Git](https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin)
- [Rebuilder](https://wiki.jenkins-ci.org/display/JENKINS/Rebuild+Plugin)
- [Parameterized Trigger](https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Trigger+Plugin)
- [Copy Artifact](https://wiki.jenkins-ci.org/display/JENKINS/Copy+Artifact+Plugin)
- [SSH Agent](https://wiki.jenkins-ci.org/display/JENKINS/SSH+Agent+Plugin)
- [Job Restrictions](https://wiki.jenkins-ci.org/display/JENKINS/Job+Restrictions+Plugin)
- [Credentials Binding](https://wiki.jenkins-ci.org/display/JENKINS/Credentials+Binding+Plugin)
- [TAP](https://wiki.jenkins-ci.org/display/JENKINS/TAP+Plugin) - for collecting test results from kola
- [Matrix Project](https://wiki.jenkins-ci.org/display/JENKINS/Matrix+Project+Plugin)
### Slave Requirements
The Jenkins jobs assume that each build slave is running CoreOS. The scripts that execute as part of the jobs use a number of tools present in CoreOS. Different host operating systems are untested.
All jobs assume that the Jenkins user on the slaves have `sudo` access, which is used by the `cork` tool.
The Jenkins slave used to execute the `os-kola-qemu` job must be run on a host that has KVM, so this slave cannot be in a VM unless it is using nested KVM, which is untested.
Most jobs use the slave label `coreos` to execute on a CoreOS system, so at least one slave (or the master) is required with this label. The `os-kola-qemu` job requires a slave with the `coreos` *and* `kvm` label.
### Secret Requirements
Some secrets are required for the various things done during the build:
- Slave SSH keys (if Jenkins slaves are used)
- git ssh key for manifest-build pushes from `os-manifest`
- google storage api key for artifact uploads and downloads
## Setup
### Running Jenkins
If you have no Jenkins instance, you can run one in a [Docker container](https://hub.docker.com/_/jenkins/) on CoreOS:
```sh
docker run -p 8080:8080 -p 50000:50000 jenkins
```
To create a slave, you will need to run CoreOS and either give Jenkins Oracle.com credentials to automatically install the JDK, or copy a JDK tarball to the CoreOS system and set `$JAVA_HOME` in the slave settings.
### Install plugins and jobs
Jenkins jobs in XML format are available in the [`jobs`](jobs) directory. A script called [`install.sh`](install.sh) is provided to copy jobs and install Jenkins plugins. The script will restart Jenkins as required by some plugins.
For example, if the Jenkins instance is at `http://127.0.0.1:8080`:
```sh
./install.sh http://127.0.0.1:8080
```
### Configuring CoreOS jobs
Some jobs will require modification to work correctly in any setup outside CoreOS.
- `os-manifest` will need the git url for the `manifest-builds` repo. You will also need to configure the correct SSH secret for git pushes.
- Any job using google storage will need `GOOGLE_APPLICATION_CREDENTIALS` configured, which points to a [JSON Service Account key](https://cloud.google.com/storage/docs/authentication). Additionally, these jobs will need to point to your specific google storage buckets.
- Any job signing artifacts will need `GPG_SECRET_KEY_FILE`, which is a GPG private key used to sign built artifacts.

View File

@ -1,24 +0,0 @@
#!/bin/sh -e
if [ -z $1 ]; then
echo "Pass Jenkins URL"
exit 1
fi
JENKINS_URL=$1
for PLUGIN in git github rebuild parameterized-trigger copyartifact ssh-agent job-restrictions credentials-binding tap matrix-project; do
echo "Installing $PLUGIN..."
curl --silent --header "Content-Type: application/xml" -XPOST "$JENKINS_URL/pluginManager/installNecessaryPlugins" --data "<install plugin=\"$PLUGIN@current\" />" >/dev/null
done
for JOB in $(find jobs/ -mindepth 1 -maxdepth 1 -type d); do
J=$(basename $JOB)
echo "Creating job $J..."
curl --silent --header "Content-Type: application/xml" -XPOST "$JENKINS_URL/createItem?name=$J" --data-binary "@$JOB/config.xml" >/dev/null
done
curl -XPOST $JENKINS_URL/updateCenter/safeRestart
echo "Visit $JENKINS_URL/updateCenter and wait for Jenkins to restart."

View File

@ -1,179 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<project>
<actions/>
<description></description>
<logRotator class="hudson.tasks.LogRotator">
<daysToKeep>30</daysToKeep>
<numToKeep>50</numToKeep>
<artifactDaysToKeep>-1</artifactDaysToKeep>
<artifactNumToKeep>-1</artifactNumToKeep>
</logRotator>
<keepDependencies>false</keepDependencies>
<properties>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.ChoiceParameterDefinition>
<name>BOARD</name>
<description>Target board to build</description>
<choices class="java.util.Arrays$ArrayList">
<a class="string-array">
<string>amd64-usr</string>
<string>arm64-usr</string>
</a>
</choices>
</hudson.model.ChoiceParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>MANIFEST_URL</name>
<description></description>
<defaultValue>https://github.com/coreos/manifest-builds.git</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>MANIFEST_REF</name>
<description></description>
<defaultValue>refs/tags/</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>MANIFEST_NAME</name>
<description></description>
<defaultValue>release.xml</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.ChoiceParameterDefinition>
<name>COREOS_OFFICIAL</name>
<description></description>
<choices class="java.util.Arrays$ArrayList">
<a class="string-array">
<string>0</string>
<string>1</string>
</a>
</choices>
</hudson.model.ChoiceParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
<com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25">
<autoRebuild>false</autoRebuild>
<rebuildDisabled>false</rebuildDisabled>
</com.sonyericsson.rebuild.RebuildSettings>
</properties>
<scm class="hudson.scm.NullSCM"/>
<assignedNode>coreos</assignedNode>
<canRoam>false</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers/>
<concurrentBuild>true</concurrentBuild>
<builders>
<hudson.plugins.copyartifact.CopyArtifact plugin="copyartifact@1.37">
<project>os-mantle</project>
<filter></filter>
<target></target>
<excludes></excludes>
<selector class="hudson.plugins.copyartifact.StatusBuildSelector"/>
<doNotFingerprintArtifacts>false</doNotFingerprintArtifacts>
</hudson.plugins.copyartifact.CopyArtifact>
<hudson.tasks.Shell>
<command>#!/bin/bash -ex
# build may not be started without a ref value
[[ -n &quot;${MANIFEST_REF#refs/tags/}&quot; ]]
# first thing, clear out old images
sudo rm -rf src/build
script() {
local script=&quot;/mnt/host/source/src/scripts/${1}&quot;; shift
./bin/cork enter --experimental -- &quot;${script}&quot; &quot;$@&quot;
}
./bin/cork update --create --downgrade-replace --verify --verbose \
--manifest-url &quot;${MANIFEST_URL}&quot; \
--manifest-branch &quot;${MANIFEST_REF}&quot; \
--manifest-name &quot;${MANIFEST_NAME}&quot;
source .repo/manifests/version.txt
export COREOS_BUILD_ID
# Set up GPG for signing images
export GNUPGHOME=&quot;${PWD}/.gnupg&quot;
rm -rf &quot;${GNUPGHOME}&quot;
trap &quot;rm -rf &apos;${GNUPGHOME}&apos;&quot; EXIT
mkdir --mode=0700 &quot;${GNUPGHOME}&quot;
gpg --import &quot;${GPG_SECRET_KEY_FILE}&quot;
script setup_board --board=${BOARD} \
--getbinpkgver=&quot;${COREOS_VERSION}&quot; \
--regen_configs_only
if [[ &quot;${COREOS_OFFICIAL}&quot; -eq 1 ]]; then
GROUP=stable
UPLOAD=gs://builds.release.core-os.net/stable
script set_official --board=${BOARD} --official
else
GROUP=developer
UPLOAD=gs://builds.developer.core-os.net
script set_official --board=${BOARD} --noofficial
fi
script build_image --board=${BOARD} \
--group=${GROUP} \
--getbinpkg \
--getbinpkgver=&quot;${COREOS_VERSION}&quot; \
--sign=buildbot@coreos.com \
--sign_digests=buildbot@coreos.com \
--upload_root=${UPLOAD} \
--upload prod container
if [[ &quot;${COREOS_OFFICIAL}&quot; -eq 1 ]]; then
script image_set_group --board=${BOARD} \
--group=alpha \
--sign=buildbot@coreos.com \
--sign_digests=buildbot@coreos.com \
--upload_root=gs://builds.release.core-os.net/alpha \
--upload
script image_set_group --board=${BOARD} \
--group=beta \
--sign=buildbot@coreos.com \
--sign_digests=buildbot@coreos.com \
--upload_root=gs://builds.release.core-os.net/beta \
--upload
fi</command>
</hudson.tasks.Shell>
</builders>
<publishers>
<hudson.tasks.test.AggregatedTestResultPublisher plugin="junit@1.9">
<includeFailedBuilds>false</includeFailedBuilds>
</hudson.tasks.test.AggregatedTestResultPublisher>
<hudson.tasks.Fingerprinter>
<targets>chroot/build/${BOARD}/var/lib/portage/pkgs/*/*.tbz2,chroot/var/lib/portage/pkgs/*/*.tbz2,src/build/images/${BOARD}/latest/*</targets>
</hudson.tasks.Fingerprinter>
<hudson.plugins.parameterizedtrigger.BuildTrigger plugin="parameterized-trigger@2.30">
<configs>
<hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<configs>
<hudson.plugins.parameterizedtrigger.CurrentBuildParameters/>
<hudson.plugins.parameterizedtrigger.matrix.MatrixSubsetBuildParameters>
<filter>BOARD==&quot;${BOARD}&quot;</filter>
</hudson.plugins.parameterizedtrigger.matrix.MatrixSubsetBuildParameters>
</configs>
<projects>os-board-vm-matrix,os-kola-qemu</projects>
<condition>UNSTABLE_OR_BETTER</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
</hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
</configs>
</hudson.plugins.parameterizedtrigger.BuildTrigger>
</publishers>
<buildWrappers>
<org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper plugin="credentials-binding@1.5">
<bindings>
<org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
<credentialsId>9de82aed-ae50-4233-989f-d454b0449b96</credentialsId>
<variable>GOOGLE_APPLICATION_CREDENTIALS</variable>
</org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
<org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
<credentialsId>12e071a3-694f-40e8-8595-489236d943cc</credentialsId>
<variable>GPG_SECRET_KEY_FILE</variable>
</org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
</bindings>
</org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper>
</buildWrappers>
</project>

View File

@ -1,156 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<project>
<actions/>
<description>Build binary packages for a target board.</description>
<logRotator class="hudson.tasks.LogRotator">
<daysToKeep>30</daysToKeep>
<numToKeep>50</numToKeep>
<artifactDaysToKeep>-1</artifactDaysToKeep>
<artifactNumToKeep>-1</artifactNumToKeep>
</logRotator>
<keepDependencies>false</keepDependencies>
<properties>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.ChoiceParameterDefinition>
<name>BOARD</name>
<description>Target board to build</description>
<choices class="java.util.Arrays$ArrayList">
<a class="string-array">
<string>amd64-usr</string>
<string>arm64-usr</string>
</a>
</choices>
</hudson.model.ChoiceParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>MANIFEST_URL</name>
<description></description>
<defaultValue>https://github.com/coreos/manifest-builds.git</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>MANIFEST_REF</name>
<description></description>
<defaultValue>refs/tags/</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>MANIFEST_NAME</name>
<description></description>
<defaultValue>release.xml</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.ChoiceParameterDefinition>
<name>COREOS_OFFICIAL</name>
<description></description>
<choices class="java.util.Arrays$ArrayList">
<a class="string-array">
<string>0</string>
<string>1</string>
</a>
</choices>
</hudson.model.ChoiceParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
<com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25">
<autoRebuild>false</autoRebuild>
<rebuildDisabled>false</rebuildDisabled>
</com.sonyericsson.rebuild.RebuildSettings>
</properties>
<scm class="hudson.scm.NullSCM"/>
<assignedNode>coreos</assignedNode>
<canRoam>false</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers/>
<concurrentBuild>true</concurrentBuild>
<builders>
<hudson.plugins.copyartifact.CopyArtifact plugin="copyartifact@1.37">
<project>os-mantle</project>
<filter></filter>
<target></target>
<excludes></excludes>
<selector class="hudson.plugins.copyartifact.TriggeredBuildSelector">
<fallbackToLastSuccessful>true</fallbackToLastSuccessful>
<upstreamFilterStrategy>UseGlobalSetting</upstreamFilterStrategy>
<allowUpstreamDependencies>true</allowUpstreamDependencies>
</selector>
<doNotFingerprintArtifacts>false</doNotFingerprintArtifacts>
</hudson.plugins.copyartifact.CopyArtifact>
<hudson.tasks.Shell>
<command>#!/bin/bash -ex
# build may not be started without a ref value
[[ -n &quot;${MANIFEST_REF#refs/tags/}&quot; ]]
# use a ccache dir that persists across sdk recreations
# XXX: alternatively use a ccache dir that is usable by all jobs on a given node.
mkdir -p .cache/ccache
enter() {
./bin/cork enter --experimental -- env \
CCACHE_DIR=&quot;/mnt/host/source/.cache/ccache&quot; \
CCACHE_MAXSIZE=&quot;5G&quot; &quot;$@&quot;
}
script() {
local script=&quot;/mnt/host/source/src/scripts/${1}&quot;; shift
enter &quot;${script}&quot; &quot;$@&quot;
}
./bin/cork update --create --downgrade-replace --verify --verbose \
--manifest-url &quot;${MANIFEST_URL}&quot; \
--manifest-branch &quot;${MANIFEST_REF}&quot; \
--manifest-name &quot;${MANIFEST_NAME}&quot;
source .repo/manifests/version.txt
export COREOS_BUILD_ID
# figure out if ccache is doing us any good in this scheme
enter ccache --zero-stats
script update_chroot --toolchain_boards=${BOARD}
if [[ &quot;${COREOS_OFFICIAL:-0}&quot; -eq 1 ]]; then
script setup_board --board=${BOARD} \
--skip_chroot_upgrade \
--toolchainpkgonly \
--force
fi
script build_packages --board=${BOARD} \
--skip_chroot_upgrade \
--getbinpkgver=${COREOS_VERSION} \
--toolchainpkgonly \
--upload --upload_root gs://builds.developer.core-os.net
enter ccache --show-stats</command>
</hudson.tasks.Shell>
</builders>
<publishers>
<hudson.tasks.test.AggregatedTestResultPublisher plugin="junit@1.9">
<includeFailedBuilds>false</includeFailedBuilds>
</hudson.tasks.test.AggregatedTestResultPublisher>
<hudson.tasks.Fingerprinter>
<targets>chroot/build/${BOARD}/var/lib/portage/pkgs/*/*.tbz2,chroot/var/lib/portage/pkgs/*/*.tbz2</targets>
</hudson.tasks.Fingerprinter>
<hudson.plugins.parameterizedtrigger.BuildTrigger plugin="parameterized-trigger@2.30">
<configs>
<hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<configs>
<hudson.plugins.parameterizedtrigger.CurrentBuildParameters/>
</configs>
<projects>os-board-image</projects>
<condition>UNSTABLE_OR_BETTER</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
</hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
</configs>
</hudson.plugins.parameterizedtrigger.BuildTrigger>
</publishers>
<buildWrappers>
<org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper plugin="credentials-binding@1.5">
<bindings>
<org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
<credentialsId>9de82aed-ae50-4233-989f-d454b0449b96</credentialsId>
<variable>GOOGLE_APPLICATION_CREDENTIALS</variable>
</org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
</bindings>
</org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper>
</buildWrappers>
</project>

View File

@ -1,132 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<matrix-project plugin="matrix-project@1.6">
<actions/>
<description>Shim of a job to build all production VM variants. This is independent from os-board-vm because I&apos;m still figuring this stuff out</description>
<logRotator class="hudson.tasks.LogRotator">
<daysToKeep>30</daysToKeep>
<numToKeep>50</numToKeep>
<artifactDaysToKeep>-1</artifactDaysToKeep>
<artifactNumToKeep>-1</artifactNumToKeep>
</logRotator>
<keepDependencies>false</keepDependencies>
<properties>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.StringParameterDefinition>
<name>MANIFEST_URL</name>
<description></description>
<defaultValue>https://github.com/coreos/manifest-builds.git</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>MANIFEST_REF</name>
<description></description>
<defaultValue>refs/tags/</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>MANIFEST_NAME</name>
<description></description>
<defaultValue>release.xml</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.ChoiceParameterDefinition>
<name>COREOS_OFFICIAL</name>
<description></description>
<choices class="java.util.Arrays$ArrayList">
<a class="string-array">
<string>0</string>
<string>1</string>
</a>
</choices>
</hudson.model.ChoiceParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
<com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25">
<autoRebuild>false</autoRebuild>
<rebuildDisabled>false</rebuildDisabled>
</com.sonyericsson.rebuild.RebuildSettings>
</properties>
<scm class="hudson.scm.NullSCM"/>
<canRoam>true</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers/>
<concurrentBuild>true</concurrentBuild>
<axes>
<hudson.matrix.TextAxis>
<name>FORMAT</name>
<values>
<string>qemu</string>
<string>qemu_uefi</string>
<string>ami</string>
<string>ami_vmdk</string>
<string>pxe</string>
<string>iso</string>
<string>openstack</string>
<string>rackspace</string>
<string>rackspace_onmetal</string>
<string>rackspace_vhd</string>
<string>vagrant</string>
<string>vagrant_vmware_fusion</string>
<string>virtualbox</string>
<string>vmware</string>
<string>vmware_ova</string>
<string>vmware_insecure</string>
<string>xen</string>
<string>gce</string>
<string>brightbox</string>
<string>cloudstack</string>
<string>cloudstack_vhd</string>
<string>digitalocean</string>
<string>exoscale</string>
<string>azure</string>
<string>hyperv</string>
<string>niftycloud</string>
<string>cloudsigma</string>
<string>packet</string>
<string>interoute</string>
</values>
</hudson.matrix.TextAxis>
<hudson.matrix.TextAxis>
<name>GROUP</name>
<values>
<string>developer</string>
<string>alpha</string>
<string>beta</string>
<string>stable</string>
</values>
</hudson.matrix.TextAxis>
<hudson.matrix.TextAxis>
<name>BOARD</name>
<values>
<string>amd64-usr</string>
<string>arm64-usr</string>
</values>
</hudson.matrix.TextAxis>
</axes>
<combinationFilter>(BOARD == &quot;amd64-usr&quot; || ( BOARD == &quot;arm64-usr&quot; &amp;&amp; (FORMAT == &quot;qemu_uefi&quot; || FORMAT == &quot;pxe&quot;) )) &amp;&amp; ((COREOS_OFFICIAL == &quot;0&quot; &amp;&amp; GROUP == &quot;developer&quot;) || (COREOS_OFFICIAL == &quot;1&quot; &amp;&amp; GROUP != &quot;developer&quot;))</combinationFilter>
<builders>
<hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.30">
<configs>
<hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
<configs>
<hudson.plugins.parameterizedtrigger.CurrentBuildParameters/>
<hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
<properties>FORMAT=${FORMAT}
GROUP=${GROUP}
BOARD=${BOARD}</properties>
</hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
</configs>
<projects>os-board-vm</projects>
<condition>ALWAYS</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
<buildAllNodesWithLabel>false</buildAllNodesWithLabel>
</hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
</configs>
</hudson.plugins.parameterizedtrigger.TriggerBuilder>
</builders>
<publishers/>
<buildWrappers/>
<executionStrategy class="hudson.matrix.DefaultMatrixExecutionStrategyImpl">
<runSequentially>false</runSequentially>
</executionStrategy>
</matrix-project>

View File

@ -1,209 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<project>
<actions/>
<description></description>
<logRotator class="hudson.tasks.LogRotator">
<daysToKeep>30</daysToKeep>
<numToKeep>50</numToKeep>
<artifactDaysToKeep>-1</artifactDaysToKeep>
<artifactNumToKeep>-1</artifactNumToKeep>
</logRotator>
<keepDependencies>false</keepDependencies>
<properties>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.ChoiceParameterDefinition>
<name>BOARD</name>
<description>Target board to build</description>
<choices class="java.util.Arrays$ArrayList">
<a class="string-array">
<string>amd64-usr</string>
<string>arm64-usr</string>
</a>
</choices>
</hudson.model.ChoiceParameterDefinition>
<hudson.model.ChoiceParameterDefinition>
<name>GROUP</name>
<description>Update group the image should use</description>
<choices class="java.util.Arrays$ArrayList">
<a class="string-array">
<string>developer</string>
<string>alpha</string>
<string>beta</string>
<string>stable</string>
</a>
</choices>
</hudson.model.ChoiceParameterDefinition>
<hudson.model.ChoiceParameterDefinition>
<name>FORMAT</name>
<description>VM platform or image type to generate.</description>
<choices class="java.util.Arrays$ArrayList">
<a class="string-array">
<string>qemu</string>
<string>qemu_uefi</string>
<string>ami</string>
<string>ami_vmdk</string>
<string>pxe</string>
<string>iso</string>
<string>openstack</string>
<string>qemu_uefi</string>
<string>rackspace</string>
<string>rackspace_onmetal</string>
<string>rackspace_vhd</string>
<string>vagrant</string>
<string>vagrant_vmware_fusion</string>
<string>virtualbox</string>
<string>vmware</string>
<string>vmware_ova</string>
<string>vmware_insecure</string>
<string>xen</string>
<string>gce</string>
<string>brightbox</string>
<string>cloudstack</string>
<string>cloudstack_vhd</string>
<string>digitalocean</string>
<string>exoscale</string>
<string>azure</string>
<string>hyperv</string>
<string>niftycloud</string>
<string>cloudsigma</string>
<string>packet</string>
<string>interoute</string>
</a>
</choices>
</hudson.model.ChoiceParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>MANIFEST_URL</name>
<description></description>
<defaultValue>https://github.com/coreos/manifest-builds.git</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>MANIFEST_REF</name>
<description></description>
<defaultValue>refs/tags/</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>MANIFEST_NAME</name>
<description></description>
<defaultValue>release.xml</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.ChoiceParameterDefinition>
<name>COREOS_OFFICIAL</name>
<description></description>
<choices class="java.util.Arrays$ArrayList">
<a class="string-array">
<string>0</string>
<string>1</string>
</a>
</choices>
</hudson.model.ChoiceParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
<com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25">
<autoRebuild>false</autoRebuild>
<rebuildDisabled>false</rebuildDisabled>
</com.sonyericsson.rebuild.RebuildSettings>
<com.synopsys.arc.jenkinsci.plugins.jobrestrictions.jobs.JobRestrictionProperty plugin="job-restrictions@0.4"/>
</properties>
<scm class="hudson.scm.NullSCM"/>
<assignedNode>coreos</assignedNode>
<canRoam>false</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers/>
<concurrentBuild>true</concurrentBuild>
<builders>
<hudson.plugins.copyartifact.CopyArtifact plugin="copyartifact@1.37">
<project>os-mantle</project>
<filter></filter>
<target></target>
<excludes></excludes>
<selector class="hudson.plugins.copyartifact.StatusBuildSelector"/>
<doNotFingerprintArtifacts>false</doNotFingerprintArtifacts>
</hudson.plugins.copyartifact.CopyArtifact>
<hudson.tasks.Shell>
<command>#!/bin/bash -ex
# build may not be started without a ref value
[[ -n &quot;${MANIFEST_REF#refs/tags/}&quot; ]]
# check that the matrix didn&apos;t go bananas
if [[ &quot;${COREOS_OFFICIAL}&quot; -eq 1 ]]; then
[[ &quot;${GROUP}&quot; != developer ]]
else
[[ &quot;${GROUP}&quot; == developer ]]
fi
script() {
local script=&quot;/mnt/host/source/src/scripts/${1}&quot;; shift
./bin/cork enter --experimental -- &quot;${script}&quot; &quot;$@&quot;
}
enter() {
./bin/cork enter --experimental -- &quot;$@&quot;
}
./bin/cork update --create --downgrade-replace --verify --verbose \
--manifest-url &quot;${MANIFEST_URL}&quot; \
--manifest-branch &quot;${MANIFEST_REF}&quot; \
--manifest-name &quot;${MANIFEST_NAME}&quot;
source .repo/manifests/version.txt
export COREOS_BUILD_ID
# Set up GPG for signing images
export GNUPGHOME=&quot;${PWD}/.gnupg&quot;
rm -rf &quot;${GNUPGHOME}&quot;
trap &quot;rm -rf &apos;${GNUPGHOME}&apos;&quot; EXIT
mkdir --mode=0700 &quot;${GNUPGHOME}&quot;
gpg --import &quot;${GPG_SECRET_KEY_FILE}&quot;
if [[ &quot;${GROUP}&quot; == developer ]]; then
root=&quot;gs://builds.developer.core-os.net&quot;
dlroot=&quot;&quot;
else
root=&quot;gs://builds.release.core-os.net/${GROUP}&quot;
dlroot=&quot;--download_root https://${GROUP}.release.core-os.net&quot;
fi
mkdir -p tmp
./bin/cork download-image --root=&quot;${root}/boards/${BOARD}/${COREOS_VERSION}&quot; \
--json-key=&quot;${GOOGLE_APPLICATION_CREDENTIALS}&quot; \
--cache-dir=./tmp \
--platform=qemu
enter lbunzip2 -k -f /mnt/host/source/tmp/coreos_production_image.bin.bz2
script image_to_vm.sh --board=${BOARD} \
--format=${FORMAT} \
--prod_image \
--getbinpkg \
--getbinpkgver=${COREOS_VERSION} \
--from=/mnt/host/source/tmp/ \
--to=/mnt/host/source/tmp/ \
--sign=buildbot@coreos.com \
--sign_digests=buildbot@coreos.com \
--upload_root=&quot;${root}&quot; \
--upload ${dlroot}</command>
</hudson.tasks.Shell>
</builders>
<publishers>
<hudson.tasks.Fingerprinter>
<targets>chroot/build/${BOARD}/var/lib/portage/pkgs/*/*.tbz2,chroot/var/lib/portage/pkgs/*/*.tbz2,tmp/*</targets>
</hudson.tasks.Fingerprinter>
</publishers>
<buildWrappers>
<org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper plugin="credentials-binding@1.5">
<bindings>
<org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
<credentialsId>9de82aed-ae50-4233-989f-d454b0449b96</credentialsId>
<variable>GOOGLE_APPLICATION_CREDENTIALS</variable>
</org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
<org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
<credentialsId>12e071a3-694f-40e8-8595-489236d943cc</credentialsId>
<variable>GPG_SECRET_KEY_FILE</variable>
</org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
</bindings>
</org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper>
</buildWrappers>
</project>

View File

@ -1,152 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<project>
<actions/>
<description></description>
<logRotator class="hudson.tasks.LogRotator">
<daysToKeep>30</daysToKeep>
<numToKeep>50</numToKeep>
<artifactDaysToKeep>-1</artifactDaysToKeep>
<artifactNumToKeep>-1</artifactNumToKeep>
</logRotator>
<keepDependencies>false</keepDependencies>
<properties>
<com.coravy.hudson.plugins.github.GithubProjectProperty plugin="github@1.14.0">
<projectUrl>os-kola-qemu/</projectUrl>
</com.coravy.hudson.plugins.github.GithubProjectProperty>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.ChoiceParameterDefinition>
<name>BOARD</name>
<description>Target board to build</description>
<choices class="java.util.Arrays$ArrayList">
<a class="string-array">
<string>amd64-usr</string>
<string>arm64-usr</string>
</a>
</choices>
</hudson.model.ChoiceParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>MANIFEST_URL</name>
<description></description>
<defaultValue>https://github.com/coreos/manifest-builds.git</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>MANIFEST_REF</name>
<description></description>
<defaultValue>refs/tags/</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>MANIFEST_NAME</name>
<description></description>
<defaultValue>release.xml</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.ChoiceParameterDefinition>
<name>COREOS_OFFICIAL</name>
<description></description>
<choices class="java.util.Arrays$ArrayList">
<a class="string-array">
<string>0</string>
<string>1</string>
</a>
</choices>
</hudson.model.ChoiceParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
<com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25">
<autoRebuild>false</autoRebuild>
<rebuildDisabled>false</rebuildDisabled>
</com.sonyericsson.rebuild.RebuildSettings>
</properties>
<scm class="hudson.scm.NullSCM"/>
<assignedNode>coreos &amp;&amp; kvm</assignedNode>
<canRoam>false</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers/>
<concurrentBuild>true</concurrentBuild>
<builders>
<hudson.plugins.copyartifact.CopyArtifact plugin="copyartifact@1.37">
<project>os-mantle</project>
<filter></filter>
<target></target>
<excludes></excludes>
<selector class="hudson.plugins.copyartifact.StatusBuildSelector"/>
<doNotFingerprintArtifacts>false</doNotFingerprintArtifacts>
</hudson.plugins.copyartifact.CopyArtifact>
<hudson.tasks.Shell>
<command>#!/bin/bash -ex
# build may not be started without a ref value
[[ -n &quot;${MANIFEST_REF#refs/tags/}&quot; ]]
enter() {
./bin/cork enter --experimental -- &quot;$@&quot;
}
script() {
local script=&quot;/mnt/host/source/src/scripts/${1}&quot;; shift
enter &quot;${script}&quot; &quot;$@&quot;
}
./bin/cork update --create --downgrade-replace --verify --verbose \
--manifest-url &quot;${MANIFEST_URL}&quot; \
--manifest-branch &quot;${MANIFEST_REF}&quot; \
--manifest-name &quot;${MANIFEST_NAME}&quot;
source .repo/manifests/version.txt
if [[ &quot;${COREOS_OFFICIAL}&quot; -eq 1 ]]; then
root=&quot;gs://builds.release.core-os.net/stable&quot;
else
root=&quot;gs://builds.developer.core-os.net&quot;
fi
mkdir -p tmp
./bin/cork download-image --root=&quot;${root}/boards/${BOARD}/${COREOS_VERSION}&quot; \
--json-key=&quot;${GOOGLE_APPLICATION_CREDENTIALS}&quot; \
--cache-dir=./tmp \
--platform=qemu
enter lbunzip2 -k -f /mnt/host/source/tmp/coreos_production_image.bin.bz2
if [[ &quot;${BOARD}&quot; == arm64* ]]; then
script setup_board --board=${BOARD} \
--getbinpkgver=&quot;${COREOS_VERSION}&quot; \
--regen_configs_only
enter emerge-arm64-usr --nodeps -qugKN sys-firmware/edk2-armvirt
fi
enter sudo kola run --board=&quot;${BOARD}&quot; \
--parallel=2 \
--qemu-image=&quot;/mnt/host/source/tmp/coreos_production_image.bin&quot; \
--tapfile=&quot;/mnt/host/source/tmp/${JOB_NAME##*/}.tap&quot;</command>
</hudson.tasks.Shell>
</builders>
<publishers>
<org.tap4j.plugin.TapPublisher plugin="tap@1.24">
<testResults>tmp/*.tap</testResults>
<failIfNoResults>true</failIfNoResults>
<failedTestsMarkBuildAsFailure>true</failedTestsMarkBuildAsFailure>
<outputTapToConsole>true</outputTapToConsole>
<enableSubtests>true</enableSubtests>
<discardOldReports>false</discardOldReports>
<todoIsFailure>false</todoIsFailure>
<includeCommentDiagnostics>true</includeCommentDiagnostics>
<validateNumberOfTests>true</validateNumberOfTests>
<planRequired>true</planRequired>
<verbose>true</verbose>
</org.tap4j.plugin.TapPublisher>
<hudson.tasks.Fingerprinter>
<targets>tmp/*,chroot/var/lib/portage/pkgs/*/*.tbz2</targets>
</hudson.tasks.Fingerprinter>
</publishers>
<buildWrappers>
<org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper plugin="credentials-binding@1.5">
<bindings>
<org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
<credentialsId>9de82aed-ae50-4233-989f-d454b0449b96</credentialsId>
<variable>GOOGLE_APPLICATION_CREDENTIALS</variable>
</org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
</bindings>
</org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper>
</buildWrappers>
</project>

View File

@ -1,214 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<project>
<actions/>
<description></description>
<logRotator class="hudson.tasks.LogRotator">
<daysToKeep>30</daysToKeep>
<numToKeep>50</numToKeep>
<artifactDaysToKeep>-1</artifactDaysToKeep>
<artifactNumToKeep>-1</artifactNumToKeep>
</logRotator>
<keepDependencies>false</keepDependencies>
<properties>
<com.coravy.hudson.plugins.github.GithubProjectProperty plugin="github@1.14.0">
<projectUrl>https://github.com/coreos/manifest/</projectUrl>
</com.coravy.hudson.plugins.github.GithubProjectProperty>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.StringParameterDefinition>
<name>MANIFEST_REF</name>
<description>Branch or tag to build</description>
<defaultValue>master</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.TextParameterDefinition>
<name>LOCAL_MANIFEST</name>
<description>Amend the checked in manifest
https://wiki.cyanogenmod.org/w/Doc:_Using_manifests#The_local_manifest</description>
<defaultValue></defaultValue>
</hudson.model.TextParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
<hudson.plugins.copyartifact.CopyArtifactPermissionProperty plugin="copyartifact@1.37">
<projectNameList>
<string>os-*</string>
</projectNameList>
</hudson.plugins.copyartifact.CopyArtifactPermissionProperty>
<com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25">
<autoRebuild>false</autoRebuild>
<rebuildDisabled>false</rebuildDisabled>
</com.sonyericsson.rebuild.RebuildSettings>
<com.synopsys.arc.jenkinsci.plugins.jobrestrictions.jobs.JobRestrictionProperty plugin="job-restrictions@0.4"/>
</properties>
<scm class="hudson.plugins.git.GitSCM" plugin="git@2.4.0">
<configVersion>2</configVersion>
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<name>origin</name>
<url>https://github.com/coreos/manifest.git</url>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>${MANIFEST_REF}</name>
</hudson.plugins.git.BranchSpec>
</branches>
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
<browser class="hudson.plugins.git.browser.GithubWeb">
<url>https://github.com/coreos/manifest</url>
</browser>
<submoduleCfg class="list"/>
<extensions>
<hudson.plugins.git.extensions.impl.RelativeTargetDirectory>
<relativeTargetDir>manifest</relativeTargetDir>
</hudson.plugins.git.extensions.impl.RelativeTargetDirectory>
<hudson.plugins.git.extensions.impl.CleanBeforeCheckout/>
</extensions>
</scm>
<assignedNode>coreos</assignedNode>
<canRoam>false</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers/>
<concurrentBuild>false</concurrentBuild>
<builders>
<hudson.plugins.copyartifact.CopyArtifact plugin="copyartifact@1.37">
<project>os-mantle</project>
<filter></filter>
<target></target>
<excludes></excludes>
<selector class="hudson.plugins.copyartifact.TriggeredBuildSelector">
<fallbackToLastSuccessful>true</fallbackToLastSuccessful>
<upstreamFilterStrategy>UseGlobalSetting</upstreamFilterStrategy>
<allowUpstreamDependencies>true</allowUpstreamDependencies>
</selector>
<doNotFingerprintArtifacts>false</doNotFingerprintArtifacts>
</hudson.plugins.copyartifact.CopyArtifact>
<hudson.tasks.Shell>
<command>#!/bin/bash -ex
COREOS_OFFICIAL=0
finish() {
local tag=&quot;$1&quot;
git -C &quot;${WORKSPACE}/manifest&quot; push \
&quot;ssh://git@github.com/coreos/manifest-builds.git&quot; \
&quot;refs/tags/${tag}:refs/tags/${tag}&quot;
tee &quot;${WORKSPACE}/manifest.properties&quot; &lt;&lt;EOF
MANIFEST_URL = https://github.com/coreos/manifest-builds.git
MANIFEST_REF = refs/tags/${tag}
MANIFEST_NAME = release.xml
COREOS_OFFICIAL = ${COREOS_OFFICIAL:-0}
EOF
}
# Branches are of the form remote-name/branch-name. Tags are just tag-name.
# If we have a release tag use it, for branches we need to make a tag.
if [[ &quot;${GIT_BRANCH}&quot; != */* ]]; then
COREOS_OFFICIAL=1
finish &quot;${GIT_BRANCH}&quot;
exit
fi
MANIFEST_BRANCH=&quot;${GIT_BRANCH##*/}&quot;
MANIFEST_NAME=&quot;${MANIFEST_BRANCH}.xml&quot;
[[ -f &quot;manifest/${MANIFEST_NAME}&quot; ]]
source manifest/version.txt
export COREOS_BUILD_ID=&quot;${MANIFEST_BRANCH}-${BUILD_NUMBER}&quot;
# hack to get repo to set things up using the manifest repo we already have
# (amazing that it tolerates this considering it usually is so intolerant)
mkdir -p .repo
ln -sfT ../manifest .repo/manifests
ln -sfT ../manifest/.git .repo/manifests.git
# Cleanup/setup local manifests
rm -rf .repo/local_manifests
if [[ -n &quot;${LOCAL_MANIFEST}&quot; ]]; then
mkdir -p .repo/local_manifests
cat &gt;.repo/local_manifests/local.xml &lt;&lt;&lt;&quot;${LOCAL_MANIFEST}&quot;
fi
./bin/cork update --create --downgrade-replace --verbose \
--manifest-url &quot;${GIT_URL}&quot; \
--manifest-branch &quot;${GIT_COMMIT}&quot; \
--manifest-name &quot;${MANIFEST_NAME}&quot; \
--new-version &quot;${COREOS_VERSION}&quot; \
--sdk-version &quot;${COREOS_SDK_VERSION}&quot;
./bin/cork enter --experimental -- sh -c \
&quot;pwd; repo manifest -r &gt; &apos;/mnt/host/source/manifest/${COREOS_BUILD_ID}.xml&apos;&quot;
cd manifest
git add &quot;${COREOS_BUILD_ID}.xml&quot;
ln -sf &quot;${COREOS_BUILD_ID}.xml&quot; default.xml
ln -sf &quot;${COREOS_BUILD_ID}.xml&quot; release.xml
git add default.xml release.xml
tee version.txt &lt;&lt;EOF
COREOS_VERSION=${COREOS_VERSION_ID}+${COREOS_BUILD_ID}
COREOS_VERSION_ID=${COREOS_VERSION_ID}
COREOS_BUILD_ID=${COREOS_BUILD_ID}
COREOS_SDK_VERSION=${COREOS_SDK_VERSION}
EOF
git add version.txt
EMAIL=&quot;jenkins@jenkins.coreos.systems&quot;
GIT_AUTHOR_NAME=&quot;CoreOS Jenkins&quot;
GIT_COMMITTER_NAME=&quot;${GIT_AUTHOR_NAME}&quot;
export EMAIL GIT_AUTHOR_NAME GIT_COMMITTER_NAME
git commit \
-m &quot;${COREOS_BUILD_ID}: add build manifest&quot; \
-m &quot;Based on ${GIT_URL} branch ${MANIFEST_BRANCH}&quot; \
-m &quot;${BUILD_URL}&quot;
git tag -m &quot;${COREOS_BUILD_ID}&quot; &quot;${COREOS_BUILD_ID}&quot; HEAD
# assert that what we just did will work, update symlink because verify doesn&apos;t have a --manifest-name option yet
cd &quot;${WORKSPACE}&quot;
ln -sf &quot;manifests/${COREOS_BUILD_ID}.xml&quot; .repo/manifest.xml
./bin/cork verify
finish &quot;${COREOS_BUILD_ID}&quot;</command>
</hudson.tasks.Shell>
</builders>
<publishers>
<hudson.tasks.test.AggregatedTestResultPublisher plugin="junit@1.9">
<includeFailedBuilds>true</includeFailedBuilds>
</hudson.tasks.test.AggregatedTestResultPublisher>
<hudson.tasks.ArtifactArchiver>
<artifacts>manifest.properties</artifacts>
<allowEmptyArchive>false</allowEmptyArchive>
<onlyIfSuccessful>false</onlyIfSuccessful>
<fingerprint>false</fingerprint>
<defaultExcludes>true</defaultExcludes>
</hudson.tasks.ArtifactArchiver>
<hudson.plugins.parameterizedtrigger.BuildTrigger plugin="parameterized-trigger@2.30">
<configs>
<hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<configs>
<hudson.plugins.parameterizedtrigger.FileBuildParameters>
<propertiesFile>manifest.properties</propertiesFile>
<failTriggerOnMissing>true</failTriggerOnMissing>
<useMatrixChild>false</useMatrixChild>
<onlyExactRuns>false</onlyExactRuns>
</hudson.plugins.parameterizedtrigger.FileBuildParameters>
</configs>
<projects>os-toolchains,os-sdk</projects>
<condition>UNSTABLE_OR_BETTER</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
</hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
</configs>
</hudson.plugins.parameterizedtrigger.BuildTrigger>
</publishers>
<buildWrappers>
<com.cloudbees.jenkins.plugins.sshagent.SSHAgentBuildWrapper plugin="ssh-agent@1.8">
<credentialIds>
<string>8b41f1e0-1ea9-4dc5-b64f-9b3b883b78c2</string>
</credentialIds>
<ignoreMissing>false</ignoreMissing>
</com.cloudbees.jenkins.plugins.sshagent.SSHAgentBuildWrapper>
</buildWrappers>
</project>

View File

@ -1,75 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<project>
<actions/>
<description>Build mantle binaries from master to be consumed as artifacts.</description>
<logRotator class="hudson.tasks.LogRotator">
<daysToKeep>20</daysToKeep>
<numToKeep>30</numToKeep>
<artifactDaysToKeep>-1</artifactDaysToKeep>
<artifactNumToKeep>-1</artifactNumToKeep>
</logRotator>
<keepDependencies>false</keepDependencies>
<properties>
<com.coravy.hudson.plugins.github.GithubProjectProperty plugin="github@1.14.0">
<projectUrl>https://github.com/coreos/mantle/</projectUrl>
</com.coravy.hudson.plugins.github.GithubProjectProperty>
<hudson.plugins.copyartifact.CopyArtifactPermissionProperty plugin="copyartifact@1.37">
<projectNameList>
<string>*</string>
</projectNameList>
</hudson.plugins.copyartifact.CopyArtifactPermissionProperty>
<com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25">
<autoRebuild>false</autoRebuild>
<rebuildDisabled>false</rebuildDisabled>
</com.sonyericsson.rebuild.RebuildSettings>
</properties>
<scm class="hudson.plugins.git.GitSCM" plugin="git@2.4.0">
<configVersion>2</configVersion>
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<name>origin</name>
<url>https://github.com/coreos/mantle/</url>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>refs/remotes/origin/master</name>
</hudson.plugins.git.BranchSpec>
</branches>
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
<submoduleCfg class="list"/>
<extensions/>
</scm>
<assignedNode>coreos</assignedNode>
<canRoam>false</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers>
<hudson.triggers.SCMTrigger>
<spec>H/15 * * * *</spec>
<ignorePostCommitHooks>false</ignorePostCommitHooks>
</hudson.triggers.SCMTrigger>
</triggers>
<concurrentBuild>false</concurrentBuild>
<builders>
<hudson.tasks.Shell>
<command>docker run --rm -v &quot;$PWD&quot;:/usr/src/myapp -w /usr/src/myapp -e GOMAXPROCS=4 golang:1.6.2 ./build
</command>
</hudson.tasks.Shell>
<hudson.tasks.Shell>
<command>docker run --rm -v &quot;$PWD&quot;:/usr/src/myapp -w /usr/src/myapp -e GOMAXPROCS=4 golang:1.6.2 ./test
</command>
</hudson.tasks.Shell>
</builders>
<publishers>
<hudson.tasks.ArtifactArchiver>
<artifacts>bin/*</artifacts>
<allowEmptyArchive>false</allowEmptyArchive>
<onlyIfSuccessful>true</onlyIfSuccessful>
<fingerprint>true</fingerprint>
<defaultExcludes>true</defaultExcludes>
</hudson.tasks.ArtifactArchiver>
</publishers>
<buildWrappers/>
</project>

View File

@ -1,134 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<project>
<actions/>
<description>Build SDK tarball and binary packages.</description>
<logRotator class="hudson.tasks.LogRotator">
<daysToKeep>30</daysToKeep>
<numToKeep>50</numToKeep>
<artifactDaysToKeep>3</artifactDaysToKeep>
<artifactNumToKeep>3</artifactNumToKeep>
</logRotator>
<keepDependencies>false</keepDependencies>
<properties>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.BooleanParameterDefinition>
<name>USE_CACHE</name>
<description>Enable use of any binary packages cached locally from previous builds.</description>
<defaultValue>true</defaultValue>
</hudson.model.BooleanParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>MANIFEST_URL</name>
<description></description>
<defaultValue>https://github.com/coreos/manifest-builds.git</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>MANIFEST_REF</name>
<description></description>
<defaultValue>refs/tags/</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>MANIFEST_NAME</name>
<description></description>
<defaultValue>release.xml</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.ChoiceParameterDefinition>
<name>COREOS_OFFICIAL</name>
<description></description>
<choices class="java.util.Arrays$ArrayList">
<a class="string-array">
<string>0</string>
<string>1</string>
</a>
</choices>
</hudson.model.ChoiceParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
<com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25">
<autoRebuild>false</autoRebuild>
<rebuildDisabled>false</rebuildDisabled>
</com.sonyericsson.rebuild.RebuildSettings>
</properties>
<scm class="hudson.scm.NullSCM"/>
<assignedNode>coreos</assignedNode>
<canRoam>false</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers/>
<concurrentBuild>false</concurrentBuild>
<builders>
<hudson.plugins.copyartifact.CopyArtifact plugin="copyartifact@1.37">
<project>os-mantle</project>
<filter></filter>
<target></target>
<excludes></excludes>
<selector class="hudson.plugins.copyartifact.TriggeredBuildSelector">
<fallbackToLastSuccessful>true</fallbackToLastSuccessful>
<upstreamFilterStrategy>UseGlobalSetting</upstreamFilterStrategy>
<allowUpstreamDependencies>true</allowUpstreamDependencies>
</selector>
<doNotFingerprintArtifacts>false</doNotFingerprintArtifacts>
</hudson.plugins.copyartifact.CopyArtifact>
<hudson.tasks.Shell>
<command>#!/bin/bash -ex
# build may not be started without a ref value
[[ -n &quot;${MANIFEST_REF#refs/tags/}&quot; ]]
enter() {
./bin/cork enter --experimental -- &quot;$@&quot;
}
# hack because catalyst leaves things chowned as root
[[ -d .cache/sdks ]] &amp;&amp; sudo chown -R $USER .cache/sdks
./bin/cork update --create --downgrade-replace --verify --verbose \
--manifest-url &quot;${MANIFEST_URL}&quot; \
--manifest-branch &quot;${MANIFEST_REF}&quot; \
--manifest-name &quot;${MANIFEST_NAME}&quot;
source .repo/manifests/version.txt
export COREOS_BUILD_ID
# Set up GPG for signing images
export GNUPGHOME=&quot;${PWD}/.gnupg&quot;
rm -rf &quot;${GNUPGHOME}&quot;
trap &quot;rm -rf &apos;${GNUPGHOME}&apos;&quot; EXIT
mkdir --mode=0700 &quot;${GNUPGHOME}&quot;
gpg --import &quot;${GPG_SECRET_KEY_FILE}&quot;
# Wipe all of catalyst or just clear out old tarballs taking up space
if [ &quot;$USE_CACHE&quot; = false ]; then
sudo rm -rf src/build/catalyst
fi
sudo rm -rf src/build/catalyst/builds
S=/mnt/host/source/src/scripts
enter ${S}/update_chroot
enter sudo emerge -uv --jobs=2 catalyst
enter sudo ${S}/bootstrap_sdk \
--sign buildbot@coreos.com --sign_digests buildbot@coreos.com \
--upload --upload_root gs://builds.developer.core-os.net</command>
</hudson.tasks.Shell>
</builders>
<publishers>
<hudson.tasks.Fingerprinter>
<targets>src/build/catalyst/packages/coreos-sdk/**/*.tbz2,chroot/var/lib/portage/pkgs/*/*.tbz2</targets>
</hudson.tasks.Fingerprinter>
</publishers>
<buildWrappers>
<org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper plugin="credentials-binding@1.5">
<bindings>
<org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
<credentialsId>12e071a3-694f-40e8-8595-489236d943cc</credentialsId>
<variable>GPG_SECRET_KEY_FILE</variable>
</org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
<org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
<credentialsId>9de82aed-ae50-4233-989f-d454b0449b96</credentialsId>
<variable>GOOGLE_APPLICATION_CREDENTIALS</variable>
</org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
</bindings>
</org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper>
</buildWrappers>
</project>

View File

@ -1,162 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<project>
<actions/>
<description>Build cross compilers for all target boards.</description>
<logRotator class="hudson.tasks.LogRotator">
<daysToKeep>30</daysToKeep>
<numToKeep>50</numToKeep>
<artifactDaysToKeep>3</artifactDaysToKeep>
<artifactNumToKeep>3</artifactNumToKeep>
</logRotator>
<keepDependencies>false</keepDependencies>
<properties>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.BooleanParameterDefinition>
<name>USE_CACHE</name>
<description>Enable use of any binary packages cached locally from previous builds.</description>
<defaultValue>true</defaultValue>
</hudson.model.BooleanParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>MANIFEST_URL</name>
<description></description>
<defaultValue>https://github.com/coreos/manifest-builds.git</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>MANIFEST_REF</name>
<description></description>
<defaultValue>refs/tags/</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>MANIFEST_NAME</name>
<description></description>
<defaultValue>release.xml</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.ChoiceParameterDefinition>
<name>COREOS_OFFICIAL</name>
<description></description>
<choices class="java.util.Arrays$ArrayList">
<a class="string-array">
<string>0</string>
<string>1</string>
</a>
</choices>
</hudson.model.ChoiceParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
<com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25">
<autoRebuild>false</autoRebuild>
<rebuildDisabled>false</rebuildDisabled>
</com.sonyericsson.rebuild.RebuildSettings>
</properties>
<scm class="hudson.scm.NullSCM"/>
<assignedNode>coreos</assignedNode>
<canRoam>false</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers/>
<concurrentBuild>false</concurrentBuild>
<builders>
<hudson.plugins.copyartifact.CopyArtifact plugin="copyartifact@1.37">
<project>os-mantle</project>
<filter></filter>
<target></target>
<excludes></excludes>
<selector class="hudson.plugins.copyartifact.TriggeredBuildSelector">
<fallbackToLastSuccessful>true</fallbackToLastSuccessful>
<upstreamFilterStrategy>UseGlobalSetting</upstreamFilterStrategy>
<allowUpstreamDependencies>true</allowUpstreamDependencies>
</selector>
<doNotFingerprintArtifacts>false</doNotFingerprintArtifacts>
</hudson.plugins.copyartifact.CopyArtifact>
<hudson.tasks.Shell>
<command>#!/bin/bash -ex
# build may not be started without a ref value
[[ -n &quot;${MANIFEST_REF#refs/tags/}&quot; ]]
enter() {
./bin/cork enter --experimental -- &quot;$@&quot;
}
# hack because catalyst leaves things chowned as root
[[ -d .cache/sdks ]] &amp;&amp; sudo chown -R $USER .cache/sdks
./bin/cork update --create --downgrade-replace --verify --verbose \
--manifest-url &quot;${MANIFEST_URL}&quot; \
--manifest-branch &quot;${MANIFEST_REF}&quot; \
--manifest-name &quot;${MANIFEST_NAME}&quot;
source .repo/manifests/version.txt
export COREOS_BUILD_ID
# Set up GPG for signing images
export GNUPGHOME=&quot;${PWD}/.gnupg&quot;
rm -rf &quot;${GNUPGHOME}&quot;
trap &quot;rm -rf &apos;${GNUPGHOME}&apos;&quot; EXIT
mkdir --mode=0700 &quot;${GNUPGHOME}&quot;
gpg --import &quot;${GPG_SECRET_KEY_FILE}&quot;
# Wipe all of catalyst or just clear out old tarballs taking up space
if [ &quot;$USE_CACHE&quot; = false ]; then
sudo rm -rf src/build/catalyst
fi
sudo rm -rf src/build/catalyst/builds
S=/mnt/host/source/src/scripts
enter sudo emerge -uv --jobs=2 catalyst
enter sudo ${S}/build_toolchains \
--sign buildbot@coreos.com --sign_digests buildbot@coreos.com \
--upload --upload_root gs://builds.developer.core-os.net</command>
</hudson.tasks.Shell>
</builders>
<publishers>
<hudson.tasks.test.AggregatedTestResultPublisher plugin="junit@1.9">
<includeFailedBuilds>false</includeFailedBuilds>
</hudson.tasks.test.AggregatedTestResultPublisher>
<hudson.tasks.Fingerprinter>
<targets>src/build/catalyst/packages/coreos-toolchains/**/*.tbz2,chroot/var/lib/portage/pkgs/*/*.tbz2</targets>
</hudson.tasks.Fingerprinter>
<hudson.plugins.parameterizedtrigger.BuildTrigger plugin="parameterized-trigger@2.30">
<configs>
<hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<configs>
<hudson.plugins.parameterizedtrigger.CurrentBuildParameters/>
<hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
<properties>BOARD=amd64-usr</properties>
</hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
</configs>
<projects>os-board-packages</projects>
<condition>UNSTABLE_OR_BETTER</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
</hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<configs>
<hudson.plugins.parameterizedtrigger.CurrentBuildParameters/>
<hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
<properties>BOARD=arm64-usr</properties>
</hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
</configs>
<projects>os-board-packages</projects>
<condition>UNSTABLE_OR_BETTER</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
</hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
</configs>
</hudson.plugins.parameterizedtrigger.BuildTrigger>
</publishers>
<buildWrappers>
<org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper plugin="credentials-binding@1.5">
<bindings>
<org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
<credentialsId>12e071a3-694f-40e8-8595-489236d943cc</credentialsId>
<variable>GPG_SECRET_KEY_FILE</variable>
</org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
<org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
<credentialsId>9de82aed-ae50-4233-989f-d454b0449b96</credentialsId>
<variable>GOOGLE_APPLICATION_CREDENTIALS</variable>
</org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
</bindings>
</org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper>
</buildWrappers>
</project>

View File

@ -1,125 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<project>
<actions/>
<description></description>
<logRotator class="hudson.tasks.LogRotator">
<daysToKeep>5</daysToKeep>
<numToKeep>5</numToKeep>
<artifactDaysToKeep>-1</artifactDaysToKeep>
<artifactNumToKeep>-1</artifactNumToKeep>
</logRotator>
<keepDependencies>false</keepDependencies>
<properties>
<com.coravy.hudson.plugins.github.GithubProjectProperty plugin="github@1.14.0">
<projectUrl>https://github.com/coreos/coreos-overlay/</projectUrl>
</com.coravy.hudson.plugins.github.GithubProjectProperty>
<hudson.plugins.copyartifact.CopyArtifactPermissionProperty plugin="copyartifact@1.37">
<projectNameList>
<string>os-*</string>
</projectNameList>
</hudson.plugins.copyartifact.CopyArtifactPermissionProperty>
<com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25">
<autoRebuild>false</autoRebuild>
<rebuildDisabled>true</rebuildDisabled>
</com.sonyericsson.rebuild.RebuildSettings>
<com.synopsys.arc.jenkinsci.plugins.jobrestrictions.jobs.JobRestrictionProperty plugin="job-restrictions@0.4">
<config>
<userIdCauseRestriction>
<prohibitManualLaunch>true</prohibitManualLaunch>
</userIdCauseRestriction>
</config>
</com.synopsys.arc.jenkinsci.plugins.jobrestrictions.jobs.JobRestrictionProperty>
</properties>
<scm class="hudson.plugins.git.GitSCM" plugin="git@2.4.0">
<configVersion>2</configVersion>
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<name>origin</name>
<url>https://github.com/coreos/coreos-overlay.git</url>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>origin/master</name>
</hudson.plugins.git.BranchSpec>
<hudson.plugins.git.BranchSpec>
<name>origin/build-*</name>
</hudson.plugins.git.BranchSpec>
</branches>
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
<browser class="hudson.plugins.git.browser.GithubWeb">
<url>https://github.com/coreos/coreos-overlay</url>
</browser>
<submoduleCfg class="list"/>
<extensions>
<hudson.plugins.git.extensions.impl.RelativeTargetDirectory>
<relativeTargetDir>coreos-overlay</relativeTargetDir>
</hudson.plugins.git.extensions.impl.RelativeTargetDirectory>
<hudson.plugins.git.extensions.impl.CleanBeforeCheckout/>
</extensions>
</scm>
<assignedNode>coreos</assignedNode>
<canRoam>false</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers>
<hudson.triggers.SCMTrigger>
<spec>H/15 * * * *</spec>
<ignorePostCommitHooks>false</ignorePostCommitHooks>
</hudson.triggers.SCMTrigger>
</triggers>
<concurrentBuild>false</concurrentBuild>
<builders>
<hudson.tasks.Shell>
<command>#!/bin/bash -ex
# This all assumes the manifest branch is the same as the
# scripts branch, e.g. &quot;master&quot; or &quot;build-123&quot; and so on.
UPSTREAM_REF=&quot;refs/heads/${GIT_BRANCH#origin/}&quot;
MANIFEST_REF=&quot;${UPSTREAM_REF}&quot;
cat &gt;coreos-overlay.properties &lt;&lt;EOF
MANIFEST_REF = ${MANIFEST_REF}
LOCAL_MANIFEST = &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;\
&lt;manifest&gt;\
&lt;remove-project name=&quot;coreos/coreos-overlay&quot; /&gt;\
&lt;project name=&quot;coreos/coreos-overlay&quot; \
path=&quot;src/third_party/coreos-overlay&quot; \
revision=&quot;${GIT_COMMIT}&quot; \
upstream=&quot;${UPSTREAM_REF}&quot; /&gt;\
&lt;/manifest&gt;
EOF</command>
</hudson.tasks.Shell>
</builders>
<publishers>
<hudson.tasks.test.AggregatedTestResultPublisher plugin="junit@1.9">
<includeFailedBuilds>true</includeFailedBuilds>
</hudson.tasks.test.AggregatedTestResultPublisher>
<hudson.tasks.ArtifactArchiver>
<artifacts>coreos-overlay.properties</artifacts>
<allowEmptyArchive>false</allowEmptyArchive>
<onlyIfSuccessful>false</onlyIfSuccessful>
<fingerprint>false</fingerprint>
<defaultExcludes>true</defaultExcludes>
</hudson.tasks.ArtifactArchiver>
<hudson.plugins.parameterizedtrigger.BuildTrigger plugin="parameterized-trigger@2.30">
<configs>
<hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<configs>
<hudson.plugins.parameterizedtrigger.FileBuildParameters>
<propertiesFile>coreos-overlay.properties</propertiesFile>
<failTriggerOnMissing>true</failTriggerOnMissing>
<useMatrixChild>false</useMatrixChild>
<onlyExactRuns>false</onlyExactRuns>
</hudson.plugins.parameterizedtrigger.FileBuildParameters>
</configs>
<projects>os-manifest, </projects>
<condition>UNSTABLE_OR_BETTER</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
</hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
</configs>
</hudson.plugins.parameterizedtrigger.BuildTrigger>
</publishers>
<buildWrappers/>
</project>

View File

@ -1,125 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<project>
<actions/>
<description></description>
<logRotator class="hudson.tasks.LogRotator">
<daysToKeep>5</daysToKeep>
<numToKeep>5</numToKeep>
<artifactDaysToKeep>-1</artifactDaysToKeep>
<artifactNumToKeep>-1</artifactNumToKeep>
</logRotator>
<keepDependencies>false</keepDependencies>
<properties>
<com.coravy.hudson.plugins.github.GithubProjectProperty plugin="github@1.14.0">
<projectUrl>https://github.com/coreos/portage-stable/</projectUrl>
</com.coravy.hudson.plugins.github.GithubProjectProperty>
<hudson.plugins.copyartifact.CopyArtifactPermissionProperty plugin="copyartifact@1.37">
<projectNameList>
<string>os-*</string>
</projectNameList>
</hudson.plugins.copyartifact.CopyArtifactPermissionProperty>
<com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25">
<autoRebuild>false</autoRebuild>
<rebuildDisabled>true</rebuildDisabled>
</com.sonyericsson.rebuild.RebuildSettings>
<com.synopsys.arc.jenkinsci.plugins.jobrestrictions.jobs.JobRestrictionProperty plugin="job-restrictions@0.4">
<config>
<userIdCauseRestriction>
<prohibitManualLaunch>true</prohibitManualLaunch>
</userIdCauseRestriction>
</config>
</com.synopsys.arc.jenkinsci.plugins.jobrestrictions.jobs.JobRestrictionProperty>
</properties>
<scm class="hudson.plugins.git.GitSCM" plugin="git@2.4.0">
<configVersion>2</configVersion>
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<name>origin</name>
<url>https://github.com/coreos/portage-stable.git</url>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>origin/master</name>
</hudson.plugins.git.BranchSpec>
<hudson.plugins.git.BranchSpec>
<name>origin/build-*</name>
</hudson.plugins.git.BranchSpec>
</branches>
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
<browser class="hudson.plugins.git.browser.GithubWeb">
<url>https://github.com/coreos/portage-stable</url>
</browser>
<submoduleCfg class="list"/>
<extensions>
<hudson.plugins.git.extensions.impl.RelativeTargetDirectory>
<relativeTargetDir>portage-stable</relativeTargetDir>
</hudson.plugins.git.extensions.impl.RelativeTargetDirectory>
<hudson.plugins.git.extensions.impl.CleanBeforeCheckout/>
</extensions>
</scm>
<assignedNode>coreos</assignedNode>
<canRoam>false</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers>
<hudson.triggers.SCMTrigger>
<spec>H/15 * * * *</spec>
<ignorePostCommitHooks>false</ignorePostCommitHooks>
</hudson.triggers.SCMTrigger>
</triggers>
<concurrentBuild>false</concurrentBuild>
<builders>
<hudson.tasks.Shell>
<command>#!/bin/bash -ex
# This all assumes the manifest branch is the same as the
# scripts branch, e.g. &quot;master&quot; or &quot;build-123&quot; and so on.
UPSTREAM_REF=&quot;refs/heads/${GIT_BRANCH#origin/}&quot;
MANIFEST_REF=&quot;${UPSTREAM_REF}&quot;
cat &gt;portage-stable.properties &lt;&lt;EOF
MANIFEST_REF = ${MANIFEST_REF}
LOCAL_MANIFEST = &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;\
&lt;manifest&gt;\
&lt;remove-project name=&quot;coreos/portage-stable&quot; /&gt;\
&lt;project name=&quot;coreos/portage-stable&quot; \
path=&quot;src/third_party/portage-stable&quot; \
revision=&quot;${GIT_COMMIT}&quot; \
upstream=&quot;${UPSTREAM_REF}&quot; /&gt;\
&lt;/manifest&gt;
EOF</command>
</hudson.tasks.Shell>
</builders>
<publishers>
<hudson.tasks.test.AggregatedTestResultPublisher plugin="junit@1.9">
<includeFailedBuilds>true</includeFailedBuilds>
</hudson.tasks.test.AggregatedTestResultPublisher>
<hudson.tasks.ArtifactArchiver>
<artifacts>portage-stable.properties</artifacts>
<allowEmptyArchive>false</allowEmptyArchive>
<onlyIfSuccessful>false</onlyIfSuccessful>
<fingerprint>false</fingerprint>
<defaultExcludes>true</defaultExcludes>
</hudson.tasks.ArtifactArchiver>
<hudson.plugins.parameterizedtrigger.BuildTrigger plugin="parameterized-trigger@2.30">
<configs>
<hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<configs>
<hudson.plugins.parameterizedtrigger.FileBuildParameters>
<propertiesFile>portage-stable.properties</propertiesFile>
<failTriggerOnMissing>true</failTriggerOnMissing>
<useMatrixChild>false</useMatrixChild>
<onlyExactRuns>false</onlyExactRuns>
</hudson.plugins.parameterizedtrigger.FileBuildParameters>
</configs>
<projects>os-manifest, </projects>
<condition>UNSTABLE_OR_BETTER</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
</hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
</configs>
</hudson.plugins.parameterizedtrigger.BuildTrigger>
</publishers>
<buildWrappers/>
</project>

View File

@ -1,125 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<project>
<actions/>
<description></description>
<logRotator class="hudson.tasks.LogRotator">
<daysToKeep>5</daysToKeep>
<numToKeep>5</numToKeep>
<artifactDaysToKeep>-1</artifactDaysToKeep>
<artifactNumToKeep>-1</artifactNumToKeep>
</logRotator>
<keepDependencies>false</keepDependencies>
<properties>
<com.coravy.hudson.plugins.github.GithubProjectProperty plugin="github@1.14.0">
<projectUrl>https://github.com/coreos/scripts/</projectUrl>
</com.coravy.hudson.plugins.github.GithubProjectProperty>
<hudson.plugins.copyartifact.CopyArtifactPermissionProperty plugin="copyartifact@1.37">
<projectNameList>
<string>os-*</string>
</projectNameList>
</hudson.plugins.copyartifact.CopyArtifactPermissionProperty>
<com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.25">
<autoRebuild>false</autoRebuild>
<rebuildDisabled>true</rebuildDisabled>
</com.sonyericsson.rebuild.RebuildSettings>
<com.synopsys.arc.jenkinsci.plugins.jobrestrictions.jobs.JobRestrictionProperty plugin="job-restrictions@0.4">
<config>
<userIdCauseRestriction>
<prohibitManualLaunch>true</prohibitManualLaunch>
</userIdCauseRestriction>
</config>
</com.synopsys.arc.jenkinsci.plugins.jobrestrictions.jobs.JobRestrictionProperty>
</properties>
<scm class="hudson.plugins.git.GitSCM" plugin="git@2.4.0">
<configVersion>2</configVersion>
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<name>origin</name>
<url>https://github.com/coreos/scripts.git</url>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>origin/master</name>
</hudson.plugins.git.BranchSpec>
<hudson.plugins.git.BranchSpec>
<name>origin/build-*</name>
</hudson.plugins.git.BranchSpec>
</branches>
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
<browser class="hudson.plugins.git.browser.GithubWeb">
<url>https://github.com/coreos/scripts</url>
</browser>
<submoduleCfg class="list"/>
<extensions>
<hudson.plugins.git.extensions.impl.RelativeTargetDirectory>
<relativeTargetDir>scripts</relativeTargetDir>
</hudson.plugins.git.extensions.impl.RelativeTargetDirectory>
<hudson.plugins.git.extensions.impl.CleanBeforeCheckout/>
</extensions>
</scm>
<assignedNode>coreos</assignedNode>
<canRoam>false</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers>
<hudson.triggers.SCMTrigger>
<spec>H/15 * * * *</spec>
<ignorePostCommitHooks>false</ignorePostCommitHooks>
</hudson.triggers.SCMTrigger>
</triggers>
<concurrentBuild>false</concurrentBuild>
<builders>
<hudson.tasks.Shell>
<command>#!/bin/bash -ex
# This all assumes the manifest branch is the same as the
# scripts branch, e.g. &quot;master&quot; or &quot;build-123&quot; and so on.
UPSTREAM_REF=&quot;refs/heads/${GIT_BRANCH#origin/}&quot;
MANIFEST_REF=&quot;${UPSTREAM_REF}&quot;
cat &gt;scripts.properties &lt;&lt;EOF
MANIFEST_REF = ${MANIFEST_REF}
LOCAL_MANIFEST = &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;\
&lt;manifest&gt;\
&lt;remove-project name=&quot;coreos/scripts&quot; /&gt;\
&lt;project name=&quot;coreos/scripts&quot; \
path=&quot;src/scripts&quot; \
revision=&quot;${GIT_COMMIT}&quot; \
upstream=&quot;${UPSTREAM_REF}&quot; /&gt;\
&lt;/manifest&gt;
EOF</command>
</hudson.tasks.Shell>
</builders>
<publishers>
<hudson.tasks.test.AggregatedTestResultPublisher plugin="junit@1.9">
<includeFailedBuilds>true</includeFailedBuilds>
</hudson.tasks.test.AggregatedTestResultPublisher>
<hudson.tasks.ArtifactArchiver>
<artifacts>scripts.properties</artifacts>
<allowEmptyArchive>false</allowEmptyArchive>
<onlyIfSuccessful>false</onlyIfSuccessful>
<fingerprint>false</fingerprint>
<defaultExcludes>true</defaultExcludes>
</hudson.tasks.ArtifactArchiver>
<hudson.plugins.parameterizedtrigger.BuildTrigger plugin="parameterized-trigger@2.30">
<configs>
<hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<configs>
<hudson.plugins.parameterizedtrigger.FileBuildParameters>
<propertiesFile>scripts.properties</propertiesFile>
<failTriggerOnMissing>true</failTriggerOnMissing>
<useMatrixChild>false</useMatrixChild>
<onlyExactRuns>false</onlyExactRuns>
</hudson.plugins.parameterizedtrigger.FileBuildParameters>
</configs>
<projects>os-manifest,</projects>
<condition>UNSTABLE_OR_BETTER</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
</hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
</configs>
</hudson.plugins.parameterizedtrigger.BuildTrigger>
</publishers>
<buildWrappers/>
</project>