mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-22 06:01:41 +02:00
initial import of public jenkins jobs
This commit is contained in:
parent
ccafb1b3a5
commit
281f85941f
72
contrib/jenkins/README.md
Normal file
72
contrib/jenkins/README.md
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
# 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.
|
||||||
|
|
24
contrib/jenkins/install.sh
Executable file
24
contrib/jenkins/install.sh
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
#!/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."
|
||||||
|
|
179
contrib/jenkins/jobs/os-board-image/config.xml
Normal file
179
contrib/jenkins/jobs/os-board-image/config.xml
Normal file
@ -0,0 +1,179 @@
|
|||||||
|
<?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>
|
156
contrib/jenkins/jobs/os-board-packages/config.xml
Normal file
156
contrib/jenkins/jobs/os-board-packages/config.xml
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
<?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>
|
132
contrib/jenkins/jobs/os-board-vm-matrix/config.xml
Normal file
132
contrib/jenkins/jobs/os-board-vm-matrix/config.xml
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
<?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>
|
209
contrib/jenkins/jobs/os-board-vm/config.xml
Normal file
209
contrib/jenkins/jobs/os-board-vm/config.xml
Normal file
@ -0,0 +1,209 @@
|
|||||||
|
<?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>
|
152
contrib/jenkins/jobs/os-kola-qemu/config.xml
Normal file
152
contrib/jenkins/jobs/os-kola-qemu/config.xml
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
<?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>
|
214
contrib/jenkins/jobs/os-manifest/config.xml
Normal file
214
contrib/jenkins/jobs/os-manifest/config.xml
Normal file
@ -0,0 +1,214 @@
|
|||||||
|
<?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>
|
75
contrib/jenkins/jobs/os-mantle/config.xml
Normal file
75
contrib/jenkins/jobs/os-mantle/config.xml
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
<?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>
|
134
contrib/jenkins/jobs/os-sdk/config.xml
Normal file
134
contrib/jenkins/jobs/os-sdk/config.xml
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
<?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>
|
162
contrib/jenkins/jobs/os-toolchains/config.xml
Normal file
162
contrib/jenkins/jobs/os-toolchains/config.xml
Normal file
@ -0,0 +1,162 @@
|
|||||||
|
<?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>
|
125
contrib/jenkins/jobs/os-watch-coreos-overlay/config.xml
Normal file
125
contrib/jenkins/jobs/os-watch-coreos-overlay/config.xml
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
<?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>
|
125
contrib/jenkins/jobs/os-watch-portage-stable/config.xml
Normal file
125
contrib/jenkins/jobs/os-watch-portage-stable/config.xml
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
<?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>
|
125
contrib/jenkins/jobs/os-watch-scripts/config.xml
Normal file
125
contrib/jenkins/jobs/os-watch-scripts/config.xml
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
<?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…
x
Reference in New Issue
Block a user