mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-07 13:06:59 +02:00
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:
parent
09fd7a37c1
commit
1c16018906
@ -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}"
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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}
|
@ -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
|
@ -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.
|
||||
|
@ -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."
|
||||
|
@ -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 "${MANIFEST_REF#refs/tags/}" ]]
|
||||
|
||||
# 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}" "$@"
|
||||
}
|
||||
|
||||
./bin/cork update --create --downgrade-replace --verify --verbose \
|
||||
--manifest-url "${MANIFEST_URL}" \
|
||||
--manifest-branch "${MANIFEST_REF}" \
|
||||
--manifest-name "${MANIFEST_NAME}"
|
||||
|
||||
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}"
|
||||
|
||||
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</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=="${BOARD}"</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>
|
@ -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 "${MANIFEST_REF#refs/tags/}" ]]
|
||||
|
||||
# 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}" "$@"
|
||||
}
|
||||
|
||||
./bin/cork update --create --downgrade-replace --verify --verbose \
|
||||
--manifest-url "${MANIFEST_URL}" \
|
||||
--manifest-branch "${MANIFEST_REF}" \
|
||||
--manifest-name "${MANIFEST_NAME}"
|
||||
|
||||
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 [[ "${COREOS_OFFICIAL:-0}" -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>
|
@ -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'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 == "amd64-usr" || ( BOARD == "arm64-usr" && (FORMAT == "qemu_uefi" || FORMAT == "pxe") )) && ((COREOS_OFFICIAL == "0" && GROUP == "developer") || (COREOS_OFFICIAL == "1" && GROUP != "developer"))</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>
|
@ -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 "${MANIFEST_REF#refs/tags/}" ]]
|
||||
|
||||
# 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 -- "$@"
|
||||
}
|
||||
|
||||
./bin/cork update --create --downgrade-replace --verify --verbose \
|
||||
--manifest-url "${MANIFEST_URL}" \
|
||||
--manifest-branch "${MANIFEST_REF}" \
|
||||
--manifest-name "${MANIFEST_NAME}"
|
||||
|
||||
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 tmp
|
||||
./bin/cork download-image --root="${root}/boards/${BOARD}/${COREOS_VERSION}" \
|
||||
--json-key="${GOOGLE_APPLICATION_CREDENTIALS}" \
|
||||
--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="${root}" \
|
||||
--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>
|
@ -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 && 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 "${MANIFEST_REF#refs/tags/}" ]]
|
||||
|
||||
enter() {
|
||||
./bin/cork enter --experimental -- "$@"
|
||||
}
|
||||
|
||||
script() {
|
||||
local script="/mnt/host/source/src/scripts/${1}"; shift
|
||||
enter "${script}" "$@"
|
||||
}
|
||||
|
||||
./bin/cork update --create --downgrade-replace --verify --verbose \
|
||||
--manifest-url "${MANIFEST_URL}" \
|
||||
--manifest-branch "${MANIFEST_REF}" \
|
||||
--manifest-name "${MANIFEST_NAME}"
|
||||
source .repo/manifests/version.txt
|
||||
|
||||
if [[ "${COREOS_OFFICIAL}" -eq 1 ]]; then
|
||||
root="gs://builds.release.core-os.net/stable"
|
||||
else
|
||||
root="gs://builds.developer.core-os.net"
|
||||
fi
|
||||
|
||||
mkdir -p tmp
|
||||
./bin/cork download-image --root="${root}/boards/${BOARD}/${COREOS_VERSION}" \
|
||||
--json-key="${GOOGLE_APPLICATION_CREDENTIALS}" \
|
||||
--cache-dir=./tmp \
|
||||
--platform=qemu
|
||||
enter lbunzip2 -k -f /mnt/host/source/tmp/coreos_production_image.bin.bz2
|
||||
|
||||
if [[ "${BOARD}" == arm64* ]]; then
|
||||
script setup_board --board=${BOARD} \
|
||||
--getbinpkgver="${COREOS_VERSION}" \
|
||||
--regen_configs_only
|
||||
enter emerge-arm64-usr --nodeps -qugKN sys-firmware/edk2-armvirt
|
||||
fi
|
||||
|
||||
enter sudo kola run --board="${BOARD}" \
|
||||
--parallel=2 \
|
||||
--qemu-image="/mnt/host/source/tmp/coreos_production_image.bin" \
|
||||
--tapfile="/mnt/host/source/tmp/${JOB_NAME##*/}.tap"</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>
|
@ -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="$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.
|
||||
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}"</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>
|
@ -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 "$PWD":/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 "$PWD":/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>
|
@ -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 "${MANIFEST_REF#refs/tags/}" ]]
|
||||
|
||||
enter() {
|
||||
./bin/cork enter --experimental -- "$@"
|
||||
}
|
||||
|
||||
# hack because catalyst leaves 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}"
|
||||
|
||||
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}"
|
||||
|
||||
# Wipe all of catalyst or just clear out old tarballs taking up space
|
||||
if [ "$USE_CACHE" = 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>
|
@ -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 "${MANIFEST_REF#refs/tags/}" ]]
|
||||
|
||||
enter() {
|
||||
./bin/cork enter --experimental -- "$@"
|
||||
}
|
||||
|
||||
# hack because catalyst leaves 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}"
|
||||
|
||||
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}"
|
||||
|
||||
# Wipe all of catalyst or just clear out old tarballs taking up space
|
||||
if [ "$USE_CACHE" = 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>
|
@ -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. "master" or "build-123" and so on.
|
||||
UPSTREAM_REF="refs/heads/${GIT_BRANCH#origin/}"
|
||||
MANIFEST_REF="${UPSTREAM_REF}"
|
||||
|
||||
cat >coreos-overlay.properties <<EOF
|
||||
MANIFEST_REF = ${MANIFEST_REF}
|
||||
LOCAL_MANIFEST = <?xml version="1.0" encoding="UTF-8"?>\
|
||||
<manifest>\
|
||||
<remove-project name="coreos/coreos-overlay" />\
|
||||
<project name="coreos/coreos-overlay" \
|
||||
path="src/third_party/coreos-overlay" \
|
||||
revision="${GIT_COMMIT}" \
|
||||
upstream="${UPSTREAM_REF}" />\
|
||||
</manifest>
|
||||
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>
|
@ -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. "master" or "build-123" and so on.
|
||||
UPSTREAM_REF="refs/heads/${GIT_BRANCH#origin/}"
|
||||
MANIFEST_REF="${UPSTREAM_REF}"
|
||||
|
||||
cat >portage-stable.properties <<EOF
|
||||
MANIFEST_REF = ${MANIFEST_REF}
|
||||
LOCAL_MANIFEST = <?xml version="1.0" encoding="UTF-8"?>\
|
||||
<manifest>\
|
||||
<remove-project name="coreos/portage-stable" />\
|
||||
<project name="coreos/portage-stable" \
|
||||
path="src/third_party/portage-stable" \
|
||||
revision="${GIT_COMMIT}" \
|
||||
upstream="${UPSTREAM_REF}" />\
|
||||
</manifest>
|
||||
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>
|
@ -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. "master" or "build-123" and so on.
|
||||
UPSTREAM_REF="refs/heads/${GIT_BRANCH#origin/}"
|
||||
MANIFEST_REF="${UPSTREAM_REF}"
|
||||
|
||||
cat >scripts.properties <<EOF
|
||||
MANIFEST_REF = ${MANIFEST_REF}
|
||||
LOCAL_MANIFEST = <?xml version="1.0" encoding="UTF-8"?>\
|
||||
<manifest>\
|
||||
<remove-project name="coreos/scripts" />\
|
||||
<project name="coreos/scripts" \
|
||||
path="src/scripts" \
|
||||
revision="${GIT_COMMIT}" \
|
||||
upstream="${UPSTREAM_REF}" />\
|
||||
</manifest>
|
||||
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>
|
Loading…
Reference in New Issue
Block a user