engine: Implement change dependency handling
[infra/cicd.git] / jjb / engine / scripts / deploy.sh
1 #!/bin/bash
2
3 # ============LICENSE_START=======================================================
4 #  Copyright (C) 2019 The Nordix Foundation. All rights reserved.
5 # ================================================================================
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
9 #
10 #      http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17 #
18 # SPDX-License-Identifier: Apache-2.0
19 # ============LICENSE_END=========================================================
20
21 set -o nounset
22 set -o errexit
23 set -o pipefail
24
25 # NOTE (fdegir): we need to remove $WORKSPACE and clone infra/engine repository
26 # as infra/engine is what drives the deployment
27 if [[ "$GERRIT_PROJECT" != "infra/engine" ]]; then
28   cd "$HOME" && /bin/rm -rf "$WORKSPACE"
29   echo "Info : Cloning infra/engine repository"
30   git clone -q https://gerrit.nordix.org/infra/engine.git "$WORKSPACE"
31   cd "$WORKSPACE"
32 fi
33
34 # NOTE (fdegir): this variable is set by generate-change-metadata.sh script
35 # if a dependency to engine repo is determined so we check out that refspec
36 # to ensure we respect the dependency
37 if [[ ! -z "${NORDIX_ENGINE_REFSPEC+x}" ]]; then
38   echo "Info  : Fetching dependent change ${NORDIX_ENGINE_REFSPEC} infra/engine"
39   git fetch "https://gerrit.nordix.org/infra/engine" ${NORDIX_ENGINE_REFSPEC} && git checkout FETCH_HEAD
40 fi
41
42 if [[ "$EXECUTION_MODE" == "offline-deployment" ]]; then
43   ENGINE_ROOT_DIR="/opt/engine/offline/git/engine"
44 else
45   ENGINE_ROOT_DIR="$WORKSPACE"
46 fi
47
48 # NOTE (fdegir): for bifrost based deployments, we don't need these files so we fake them
49 OPENRC_FILE=${OPENRC_FILE:-/tmp/openrc}
50 HEAT_ENVIRONMENT_FILENAME=${HEAT_ENVIRONMENT_FILENAME:-/tmp/heat}
51
52 /bin/cp -f $OPENRC_FILE /tmp/openrc
53
54 cd "$ENGINE_ROOT_DIR/engine"
55 ./deploy.sh -s "$STACK_TYPE" -b "$STACK_VERSION" -c "$DEPLOY_SCENARIO" -p "$PDF" -i "$IDF" -o /tmp/openrc -d "$DISTRO" -v
56
57 # NOTE (fdegir): we need inventory.ini for test execution
58 /bin/rm -f /tmp/inventory.ini
59 /bin/cp -f /opt/engine/.cache/config/inventory.ini /tmp/inventory.ini
60
61 # vim: set ts=2 sw=2 expandtab: