|
| 1 | +#!/usr/bin/env bash |
| 2 | + |
| 3 | +#------------------------------------------------------------------------------ |
| 4 | +# Copyright (c) Microsoft Corporation. |
| 5 | +# Licensed under the MIT license. |
| 6 | +#------------------------------------------------------------------------------ |
| 7 | + |
| 8 | +# Description: |
| 9 | +# |
| 10 | +# Instructions to be invoked under the build CI pipeline in AzureDevOps. |
| 11 | +# |
| 12 | +# Kickoff debian package build in docker and copy the .deb package artifact |
| 13 | +# back to the local filesystem. The build pipeline can then save it as an |
| 14 | +# artifact as it sees fit. |
| 15 | +# |
| 16 | +# Note: Intended to be ran under ubuntu. |
| 17 | +# |
| 18 | +# Usage: |
| 19 | +# ----------------------------------- |
| 20 | +# buster - Debian 10 |
| 21 | +# stretch - Debian 9 |
| 22 | +# jessie - Debian 8 |
| 23 | +# ----------------------------------- |
| 24 | +# focal - Ubuntu 20.04 |
| 25 | +# bionic - Ubuntu 18.04 |
| 26 | +# xenial - Ubuntu 16.04 |
| 27 | +# ----------------------------------- |
| 28 | +# |
| 29 | +# Example: |
| 30 | +# |
| 31 | +# export DISTRO=xenial |
| 32 | +# export DISTRO_BASE_IMAGE=ubuntu:xenial |
| 33 | +# |
| 34 | +# $ pipeline.sh |
| 35 | + |
| 36 | +set -exv |
| 37 | + |
| 38 | +DISTRO=${DISTRO:=buster} |
| 39 | +DISTRO_BASE_IMAGE=${DISTRO_BASE_IMAGE:=debian:buster} |
| 40 | + |
| 41 | +: "${DISTRO:?DISTRO environment variable not set.}" |
| 42 | +: "${DISTRO_BASE_IMAGE:?DISTRO_BASE_IMAGE environment variable not set.}" |
| 43 | +: "${REPO_ROOT_DIR:=`cd $(dirname $0); cd ../../../; pwd`}" |
| 44 | +DIST_DIR=${BUILD_STAGINGDIRECTORY:=${REPO_ROOT_DIR}/output/debian} |
| 45 | + |
| 46 | +PIPELINE_WORKSPACE=${REPO_ROOT_DIR} |
| 47 | + |
| 48 | +if [[ "${BUILD_OUTPUT}" != "" ]]; then |
| 49 | + cp ${BUILD_OUTPUT}/SqlcmdLinuxAmd64/sqlcmd ${REPO_ROOT_DIR}/sqlcmd |
| 50 | +fi |
| 51 | + |
| 52 | +CLI_VERSION=${CLI_VERSION:=0.0.1} |
| 53 | + |
| 54 | +echo "==========================================================" |
| 55 | +echo "CLI_VERSION: ${CLI_VERSION}" |
| 56 | +echo "CLI_VERSION_REVISION: ${CLI_VERSION_REVISION:=1}" |
| 57 | +echo "Distribution: ${DISTRO}" |
| 58 | +echo "Distribution Image: ${DISTRO_BASE_IMAGE}" |
| 59 | +echo "==========================================================" |
| 60 | + |
| 61 | +mkdir -p ${DIST_DIR} || exit 1 |
| 62 | + |
| 63 | +echo ${REPO_ROOT_DIR} |
| 64 | + |
| 65 | +docker run --rm \ |
| 66 | + -v "${REPO_ROOT_DIR}":/mnt/repo \ |
| 67 | + -v "${DIST_DIR}":/mnt/output \ |
| 68 | + -v "${PIPELINE_WORKSPACE}":/mnt/workspace \ |
| 69 | + -e CLI_VERSION=${CLI_VERSION} \ |
| 70 | + -e CLI_VERSION_REVISION=${CLI_VERSION_REVISION:=1}~${DISTRO} \ |
| 71 | + "${DISTRO_BASE_IMAGE}" \ |
| 72 | + /mnt/repo/release/linux/deb/build-pkg.sh |
0 commit comments