File: pkg-build.sh

package info (click to toggle)
voms-api-java 3.3.7-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,356 kB
  • sloc: java: 7,554; sh: 667; xml: 368; makefile: 5
file content (95 lines) | stat: -rwxr-xr-x 2,473 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#!/bin/bash

set -ex

set -a
source ./build-env
set +a

if [ -z "${PLATFORM}" ]; then
  echo "PLATFORM is not defined"
  exit 1
fi

p_comp_var_name="COMPONENTS_${PLATFORM}"

# Allow to define components that are built only on specific platforms
if [ -n "${!p_comp_var_name}" ]; then
  if [ -z "${COMPONENTS}" ]; then
    COMPONENTS=${!p_comp_var_name}
  else
    COMPONENTS="${COMPONENTS} ${!p_comp_var_name}"
  fi
fi

if [ -z "${COMPONENTS}" ]; then
  echo "COMPONENTS is not defined"
  exit 1
fi

pkg_base_image_name="italiangrid/pkg.base:${PLATFORM}"
volumes_conf=${PKG_VOLUMES_CONF:-""}

if [ -n "${USE_DOCKER_REGISTRY}" ]; then
  pkg_base_image_name="${DOCKER_REGISTRY_HOST}/${pkg_base_image_name}"
fi

if [ -z "${PKG_VOLUMES_CONF}" ]; then
  if [ -n "${MVN_REPO_VOLUME}" ]; then
    volumes_conf="${volumes_conf} -v ${MVN_REPO_VOLUME}:/m2-repository"
  fi 

  if [ -n "${STAGE_AREA_VOLUME}" ]; then
    volumes_conf="${volumes_conf} -v ${STAGE_AREA_VOLUME}:/stage-area"
  fi

  if [ -n "${PACKAGES_VOLUME}" ]; then
    volumes_conf="${volumes_conf} -v ${PACKAGES_VOLUME}:/packages"
  fi
fi

# Run packaging
for c in ${COMPONENTS}; do
  build_env_file="$c/build-env"
  comp_name=$(echo ${c} | tr '[:lower:]' '[:upper:]' | tr '-' '_')
  
  var_names="BUILD_REPO PKG_PACKAGES_DIR PKG_STAGE_DIR PKG_TAG PKG_REPO PKG_STAGE_RPMS PKG_STAGE_SRPMS PKG_PUBLISH_PACKAGES PKG_NEXUS_USERNAME PKG_NEXUS_PASSWORD PKG_NEXUS_REPONAME PKG_NEXUS_HOST PKG_SIGN_PACKAGES PKG_SIGN_KEY_PASSWORD PKG_SIGN_PUB_KEY PKG_SIGN_PRI_KEY GPG_IMPORT_OPTS"
  
  ## Add component variable overrides
  for v in ${var_names}; do
    c_var_name="${v}_${comp_name}"

    if [ -n "${!c_var_name}" ]; then
      build_env="${build_env} -e ${v}=${!c_var_name}"
    elif [ -n "${!v}" ]; then
        build_env="${build_env} -e ${v}=${!v}"
    fi
  done

  ## Add platform variable overrides
  for v in ${var_names}; do
    p_var_name="${v}_${PLATFORM}"

    if [ -n "${!p_var_name}" ]; then
      build_env="${build_env} -e ${v}=${!p_var_name}"
    elif [ -n "${!v}" ]; then
      build_env="${build_env} -e ${v}=${!v}"
    fi
  done
 
  if [ "${INCLUDE_BUILD_NUMBER}" == "1" ]; then
    build_env="${build_env} -e BUILD_NUMBER=${PKG_BUILD_NUMBER:-test}"
  fi

  if [ -z "${PKG_SKIP_PULL}" ]; then
    docker pull ${pkg_base_image_name}
  fi

  docker run -i \
    ${volumes_conf} \
    ${DOCKER_ARGS} \
    --env-file ${build_env_file} \
    ${build_env} \
    ${pkg_base_image_name} \
    ${PKG_TARGET}
done