forked from clearcontainers/packaging
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request clearcontainers#140 from jcvenegas/obs-branch-repo…
…-creator obs: create-repo-branch.sh: New script to create OBS repos.
- Loading branch information
Showing
11 changed files
with
283 additions
and
80 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
# Copyright (c) 2018 Intel Corporation | ||
# | ||
# SPDX-License-Identifier: Apache-2.0 | ||
# | ||
|
||
|
||
clean: | ||
find . -type d -name "*home:katacontainers*" -exec sudo rm -rf {} \; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,147 @@ | ||
#!/bin/bash | ||
# | ||
# Copyright (c) 2018 Intel Corporation | ||
# | ||
# SPDX-License-Identifier: Apache-2.0 | ||
# | ||
[ -z "${DEBUG}" ] || set -o xtrace | ||
|
||
set -o errexit | ||
set -o nounset | ||
set -o pipefail | ||
|
||
script_dir=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd) | ||
script_name="$(basename "${BASH_SOURCE[0]}")" | ||
|
||
# shellcheck source=./../scripts/lib.sh | ||
source "${script_dir}/../scripts/lib.sh" | ||
|
||
# shellcheck source=scripts/obs-docker.sh | ||
source "${script_dir}/scripts/obs-docker.sh" | ||
|
||
readonly home_project="home:katacontainers" | ||
readonly template_pkg="kata-pkg-template" | ||
arch_target=${ARCH:-$(uname -m)} | ||
|
||
# shellcheck source=scripts/obs-docker.sh | ||
source "${script_dir}/scripts/obs-pkgs.sh" | ||
|
||
pkg_exist() { | ||
local project="$1" | ||
local pkg="$2" | ||
|
||
docker_run osc list "${project}" | grep "${pkg}" || return 1 | ||
return 0 | ||
|
||
} | ||
|
||
# Array of repositories. | ||
# | ||
# Each element is comprised of multiple parts in the form: | ||
# | ||
# name::project::repository | ||
# | ||
typeset -a repos | ||
read_repos(){ | ||
while read -r p; do | ||
[[ "$p" != "#"* ]] || continue | ||
repos+=("${p}") | ||
echo "Adding distro: ${p}" | ||
done < "${script_dir}/distros" | ||
} | ||
|
||
# Array of maintainers | ||
# | ||
# Each element is comprised of multiple parts in the form: | ||
# | ||
# userid::role | ||
# | ||
typeset -a maintainers | ||
|
||
read_maintainers(){ | ||
while read -r p; do | ||
[[ "$p" != "#"* ]] || continue | ||
maintainers+=("${p}::maintainer") | ||
echo "Adding mantainer: ${p}" | ||
done < "${script_dir}/maintainers" | ||
} | ||
|
||
create_repos_xml_nodes() { | ||
for entry in "${repos[@]}"; do | ||
[ -z "$entry" ] && die "found empty entry" | ||
local name=$(echo "$entry" | awk -F"::" '{print $1;}') | ||
local project=$(echo "$entry" | awk -F"::" '{print $2;}') | ||
local repository=$(echo "$entry" | awk -F"::" '{print $3;}') | ||
[ -z "$name" ] && die "no name for entry '$entry'" | ||
[ -z "$project" ] && die "no project for entry '$entry'" | ||
[ -z "$repository" ] && die "no repository for entry '$entry'" | ||
echo " <repository name=\"${name}\">" | ||
echo " <path project=\"${project}\" repository=\"${repository}\"/>" | ||
arch_target_obs=${arch_target} | ||
if [ "$arch_target" == "ppc64" ]; then | ||
arch_target_obs="ppc64le" | ||
fi | ||
echo " <arch>${arch_target_obs}</arch>" | ||
echo " </repository>" | ||
done | ||
} | ||
|
||
create_mantainers_xml_nodes() { | ||
for entry in "${mantainers[@]}"; do | ||
[ -z "$entry" ] && die "found empty entry" | ||
local userid=$(echo "$entry" | awk -F"::" '{print $1;}') | ||
local role=$(echo "$entry" | awk -F"::" '{print $2;}') | ||
[ -z "$userid" ] && die "no userid for entry '$entry'" | ||
[ -z "$role" ] && die "no role for entry '$entry'" | ||
echo " <person userid=\"${userid}\" role=\"${role}\"/>" | ||
done | ||
} | ||
|
||
create_meta_xml() { | ||
project="${1:-}" | ||
branch="${2:-}" | ||
[ -n "${project}" ] || die "project is empty" | ||
[ -n "${branch}" ] || die "branch is empty" | ||
|
||
read_maintainers | ||
read_repos | ||
cat >meta_project.xml <<EOT | ||
<project name="${project}"> | ||
<title>Branch project for Kata Containers branch ${branch}</title> | ||
<description>This project is the Kata Containers branch ${branch}</description> | ||
$(create_mantainers_xml_nodes) | ||
$(create_repos_xml_nodes) | ||
</project> | ||
EOT | ||
} | ||
|
||
usage() { | ||
msg="${1:-}" | ||
exit_code=$"${2:-0}" | ||
cat <<EOT | ||
${msg} | ||
Usage: | ||
${script_name} <kata-branch> | ||
EOT | ||
exit "${exit_code}" | ||
} | ||
|
||
main() { | ||
local branch="${1:-}" | ||
[ -n "${branch}" ] || usage "missing branch" "1" | ||
project_branch="${home_project}:releases:${arch_target}:${branch}" | ||
create_meta_xml "${project_branch}" "${branch}" | ||
info "Creating/Updating project with name ${project_branch}" | ||
# Update /Create project metadata. | ||
docker_run osc meta prj "${project_branch}" -F meta_project.xml | ||
for pkg in "${OBS_PKGS_PROJECTS[@]}"; do | ||
if ! pkg_exist "${project_branch}" "${pkg}"; then | ||
echo "Package ${pkg} does not exit in ${project_branch}, creating ..." | ||
docker_run osc branch "${home_project}" "${template_pkg}" "${project_branch}" "${pkg}" | ||
fi | ||
pkg_dir="${project_branch}/${pkg}" | ||
[ -d "${pkg_dir}/.osc" ] || docker_run osc co "${pkg_dir}" | ||
done | ||
} | ||
|
||
main $@ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# Repositories. | ||
# | ||
# Each element is comprised of multiple parts in the form: | ||
# | ||
# name::project::repository | ||
# | ||
CentOS_7::CentOS:CentOS-7::standard | ||
Fedora_26::Fedora:26::standard | ||
Fedora_27::Fedora:27::standard | ||
Fedora_28::Fedora:28::standard | ||
RHEL_7::RedHat:RHEL-7::standard | ||
SLE_12_SP3::SUSE:SLE-12-SP3:GA::standard | ||
openSUSE_Leap_42.3::openSUSE:Leap:42.3::standard | ||
xUbuntu_16.04::Ubuntu:16.04::universe | ||
xUbuntu_17.10::Ubuntu:17.10::universe | ||
xUbuntu_18.04::Ubuntu:18.04::universe |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
egernst | ||
jcvenega | ||
nitkon |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
#!/bin/bash | ||
# Copyright (c) 2018 Intel Corporation | ||
# | ||
# SPDX-License-Identifier: Apache-2.0 | ||
# | ||
|
||
_obs_docker_packaging_repo_dir=$(cd $(basename "${BASH_SOURCE[0]}"/../..) && pwd) | ||
GO_ARCH=$(go env GOARCH) | ||
|
||
docker_run() { | ||
local cmd="$*" | ||
local obs_image="obs-kata" | ||
#where results will be stored | ||
local host_datadir="${PWD}/pkgs" | ||
local cache_dir=${PWD}/obs-cache | ||
sudo docker build \ | ||
--quiet \ | ||
--build-arg http_proxy="${http_proxy:-}" \ | ||
--build-arg GO_ARCH="${GO_ARCH}" \ | ||
--build-arg https_proxy="${https_proxy:-}" \ | ||
-t $obs_image "${_obs_docker_packaging_repo_dir}/obs-packaging" | ||
|
||
sudo docker run \ | ||
--rm \ | ||
--env http_proxy="${http_proxy:-}" \ | ||
--env https_proxy="${https_proxy:-}" \ | ||
--env no_proxy="${no_proxy:-}" \ | ||
--env GO_ARCH="${GO_ARCH}" \ | ||
--env PUSH="${PUSH:-}" \ | ||
--env DEBUG="${DEBUG:-}" \ | ||
--env OBS_SUBPROJECT="${OBS_SUBPROJECT:-}" \ | ||
-v "${cache_dir}":/var/tmp/osbuild-packagecache/ \ | ||
-v "${_obs_docker_packaging_repo_dir}":"${_obs_docker_packaging_repo_dir}" \ | ||
-v "${host_datadir}":/var/packaging \ | ||
-v "${HOME}/.oscrc":/root/.oscrc \ | ||
-v "${PWD}":"${PWD}" \ | ||
-w "${PWD}" \ | ||
-ti "${obs_image}" bash -c "${cmd}" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
#!/bin/bash | ||
# Copyright (c) 2018 Intel Corporation | ||
# | ||
# SPDX-License-Identifier: Apache-2.0 | ||
# | ||
|
||
#Note:Lets update qemu and the kernel first, they take longer to build. | ||
#Note: runtime is build at the end to get the version from all its dependencies. | ||
OBS_PKGS_PROJECTS=( | ||
qemu-lite | ||
qemu-vanilla | ||
kernel | ||
kata-containers-image | ||
proxy | ||
shim | ||
ksm-throttler | ||
runtime | ||
) |
Oops, something went wrong.