disable-job: false
gerrit-skip-vote: false
git-url: '$GIT_URL/$GERRIT_PROJECT'
+ mvn-global-settings: global-settings
stream: master
submodule-disable: false
submodule-recursive: true
jenkins-ssh-credential: '{jenkins-ssh-credential}'
builders:
+ - lf-infra-pre-build
+ - lf-provide-maven-settings:
+ global-settings-file: "{mvn-global-settings}"
+ settings-file: "{mvn-settings}"
+ - lf-infra-create-netrc:
+ server-id: "{mvn-site-id}"
- shell: '{script}'
+ - lf-provide-maven-settings-cleanup
publishers:
- lf-infra-publish
--- /dev/null
+#!/bin/bash
+
+# Copyright (C) 2019 Wind River Systems, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Builds a Yocto image for real.
+# Assumes prereqs have already been installed.
+
+echo "--> build-yocto.sh"
+
+# Ensure we fail the job if any steps fail.
+set -eu -o pipefail
+
+dir=workspace
+echo "INFO: creating workspace $dir"
+mkdir $dir
+cmd="./scripts/build_oran.sh -w $dir"
+echo "INFO: invoking build script: $cmd"
+$cmd
+
+echo "--> build-yocto.sh ends"
# See the License for the specific language governing permissions and
# limitations under the License.
-# Installs prerequisites on CentOS then invokes the pti/rtp build script
-# to test creation of a Yocto image. The "-n" flag skips bitbake.
+# Installs Yocto build prerequisites on CentOS.
-echo "--> verify-pti-rtp-centos.sh"
+echo "--> install-yocto-prereq-centos.sh"
# Ensure we fail the job if any steps fail.
set -eu -o pipefail
&& sudo yum makecache \
&& sudo yum install -y $pkgs
-dir=workspace
-echo "INFO: creating workspace $dir"
-mkdir $dir
-cmd="./scripts/build_oran.sh -w $dir -n"
-echo "INFO: invoking build script: $cmd"
-$cmd
-
-echo "--> verify-pti-rtp-centos.sh ends"
+echo "--> install-yocto-prereq-centos.sh ends"
jobs:
- gerrit-info-yaml-verify
-- project:
- name: pti-rtp-verify
+- pti_rtp_common: &pti_rtp_common
+ name: pti-rtp-common
+ # git repo
project: pti/rtp
+ # jenkins job name prefix
project-name: pti-rtp
+ # maven settings file has credentials
+ mvn-settings: pti-rtp-settings
# use a centos with big memory; docker not required
build-node: centos7-docker-2c-8g
- # runs about 30 minutes
+
+- project:
+ <<: *pti_rtp_common
+ name: pti-rtp-verify
+ # runs about 40 minutes
build-timeout: 60
- script: !include-raw-escape: verify-pti-rtp-centos.sh
+ script: !include-raw-escape:
+ - install-yocto-prereq-centos.sh
+ - verify-yocto.sh
jobs:
- oran-shell-verify
+
+- project:
+ <<: *pti_rtp_common
+ name: pti-rtp-merge
+ # runs about 9 hours
+ build-timeout: 600
+ script: !include-raw-escape:
+ - install-yocto-prereq-centos.sh
+ - build-yocto.sh
+ - upload-yocto.sh
+ jobs:
+ - oran-shell-merge
--- /dev/null
+#!/bin/bash
+
+# Copyright (C) 2019 Wind River Systems, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Uploads a Yocto image to Nexus.
+
+echo "--> upload-yocto.sh"
+
+# Ensure we fail the job if any steps fail.
+set -eu -o pipefail
+
+echo "INFO: creating virtual environment"
+virtualenv -p python3 /tmp/venv
+PATH=/tmp/venv/bin:$PATH
+pipup="python -m pip install -q --upgrade lftools"
+echo "INFO: installing packages: $pipup"
+$pipup
+
+# NEXUS_URL is set by Jenkins
+nexus_repo_id="images"
+nexus_repo_url="$NEXUS_URL/content/sites/$nexus_repo_id"
+echo "INFO: upload to $nexus_repo_url"
+
+repo_dir="$WORKSPACE/nexus/$nexus_repo_id"
+# TODO: get build or version string; use latest for now
+repo_iso_dir="$repo_dir/org/o-ran-sc/pti/rtp/latest"
+echo "INFO: create staging directory $repo_iso_dir"
+mkdir -p "$repo_iso_dir"
+
+# Expect ISO file: oran-image-inf-host-intel-x86-64.iso
+# in build subdir: workspace/prj_oran-inf/tmp-glibc/deploy/images/intel-x86-64/
+iso="workspace/prj_oran-inf/tmp-glibc/deploy/images/intel-x86-64/oran-image-inf-host-intel-x86-64.iso"
+echo "INFO: copy $iso to staging directory $repo_iso_dir"
+cp "$iso" "$repo_iso_dir"
+
+cmd="lftools deploy nexus $nexus_repo_url $repo_dir"
+echo "INFO: Upload ISO to Nexus: $cmd"
+$cmd
+
+echo "--> upload-yocto.sh ends"
--- /dev/null
+#!/bin/bash
+
+# Copyright (C) 2019 Wind River Systems, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Tests creation of a Yocto image. The "-n" flag skips bitbake.
+# Assumes prereqs have already been installed.
+
+echo "--> verify-yocto.sh"
+
+# Ensure we fail the job if any steps fail.
+set -eu -o pipefail
+
+dir=workspace
+echo "INFO: creating workspace $dir"
+mkdir $dir
+cmd="./scripts/build_oran.sh -w $dir -n"
+echo "INFO: invoking build script: $cmd"
+$cmd
+
+echo "--> verify-yocto.sh ends"