summaryrefslogtreecommitdiff
path: root/CI/travis/lib.sh
diff options
context:
space:
mode:
Diffstat (limited to 'CI/travis/lib.sh')
-rw-r--r--CI/travis/lib.sh304
1 files changed, 0 insertions, 304 deletions
diff --git a/CI/travis/lib.sh b/CI/travis/lib.sh
deleted file mode 100644
index a071cfc..0000000
--- a/CI/travis/lib.sh
+++ /dev/null
@@ -1,304 +0,0 @@
-#!/bin/sh -e
-
-export TRAVIS_API_URL="https://api.travis-ci.org"
-LOCAL_BUILD_DIR=${LOCAL_BUILD_DIR:-build}
-
-COMMON_SCRIPTS="jobs_running_cnt.py inside_docker.sh"
-
-echo_red() { printf "\033[1;31m$*\033[m\n"; }
-echo_green() { printf "\033[1;32m$*\033[m\n"; }
-echo_blue() { printf "\033[1;34m$*\033[m\n"; }
-
-get_script_path() {
- local script="$1"
-
- [ -n "$script" ] || return 1
-
- if [ -f "CI/travis/$script" ] ; then
- echo "CI/travis/$script"
- elif [ -f "ci/travis/$script" ] ; then
- echo "ci/travis/$script"
- elif [ -f "${LOCAL_BUILD_DIR}/$script" ] ; then
- echo "${LOCAL_BUILD_DIR}/$script"
- else
- return 1
- fi
-}
-
-pipeline_branch() {
- local branch=$1
-
- [ -n "$branch" ] || return 1
-
- # master is a always a pipeline branch
- [ "$branch" = "master" ] && return 0
-
- set +x
- # Check if branch name is 20XX_RY where:
- # XX - 14 to 99 /* wooh, that's a lot of years */
- # Y - 1 to 9 /* wooh, that's a lot of releases per year */
- for year in $(seq 2014 2099) ; do
- for rel_num in $(seq 1 9) ; do
- [ "$branch" = "${year}_R${rel_num}" ] && \
- return 0
- done
- done
-
- return 1
-}
-
-should_trigger_next_builds() {
- local branch="$1"
-
- [ -z "${COVERITY_SCAN_PROJECT_NAME}" ] || return 1
-
- # These Travis-CI vars have to be non-empty
- [ -n "$TRAVIS_PULL_REQUEST" ] || return 1
- [ -n "$branch" ] || return 1
- set +x
- [ -n "$TRAVIS_API_TOKEN" ] || return 1
-
- # Has to be a non-pull-request
- [ "$TRAVIS_PULL_REQUEST" = "false" ] || return 1
-
- pipeline_branch "$branch" || return 1
-
- local python_script="$(get_script_path jobs_running_cnt.py)"
- if [ -z "$python_script" ] ; then
- echo "Could not find 'jobs_running_cnt.py'"
- return 1
- fi
-
- local jobs_cnt=$(python $python_script)
-
- # Trigger next job if we are the last job running
- [ "$jobs_cnt" = "1" ]
-}
-
-trigger_build() {
- local repo_slug="$1"
- local branch="$2"
-
- [ -n "$repo_slug" ] || return 1
- [ -n "$branch" ] || return 1
-
- local body="{
- \"request\": {
- \"branch\":\"$branch\"
- }
- }"
-
- # Turn off tracing here (shortly)
- set +x
- curl -s -X POST \
- -H "Content-Type: application/json" \
- -H "Accept: application/json" \
- -H "Travis-API-Version: 3" \
- -H "Authorization: token $TRAVIS_API_TOKEN" \
- -d "$body" \
- https://api.travis-ci.org/repo/$repo_slug/requests
-}
-
-trigger_adi_build() {
- local adi_repo="$1"
- local branch="$2"
-
- [ -n "$adi_repo" ] || return 1
- trigger_build "analogdevicesinc%2F$adi_repo" "$branch"
-}
-
-command_exists() {
- local cmd=$1
- [ -n "$cmd" ] || return 1
- type "$cmd" >/dev/null 2>&1
-}
-
-get_ldist() {
- case "$(uname)" in
- Linux*)
- if [ ! -f /etc/os-release ] ; then
- if [ -f /etc/centos-release ] ; then
- echo "centos-$(sed -e 's/CentOS release //' -e 's/(.*)$//' \
- -e 's/ //g' /etc/centos-release)-$(uname -m)"
- return 0
- fi
- ls /etc/*elease
- [ -z "${OSTYPE}" ] || {
- echo "${OSTYPE}-unknown"
- return 0
- }
- echo "linux-unknown"
- return 0
- fi
- . /etc/os-release
- if ! command_exists dpkg ; then
- echo $ID-$VERSION_ID-$(uname -m)
- else
- echo $ID-$VERSION_ID-$(dpkg --print-architecture)
- fi
- ;;
- Darwin*)
- echo "darwin-$(sw_vers -productVersion)"
- ;;
- *)
- echo "$(uname)-unknown"
- ;;
- esac
- return 0
-}
-
-__brew_install_or_upgrade() {
- brew install $1 || \
- brew upgrade $1 || \
- brew ls --version $1
-}
-
-brew_install_or_upgrade() {
- while [ -n "$1" ] ; do
- __brew_install_or_upgrade "$1" || return 1
- shift
- done
-}
-
-sftp_cmd_pipe() {
- sftp ${EXTRA_SSH} ${SSHUSER}@${SSHHOST}
-}
-
-sftp_rm_artifact() {
- local artifact="$1"
- sftp_cmd_pipe <<-EOF
- cd ${DEPLOY_TO}
- rm ${artifact}
- EOF
-}
-
-sftp_upload() {
- local FROM="$1"
- local TO="$2"
- local LATE="$3"
-
- sftp_cmd_pipe <<-EOF
- cd ${DEPLOY_TO}
-
- put ${FROM} ${TO}
- ls -l ${TO}
-
- symlink ${TO} ${LATE}
- ls -l ${LATE}
- bye
- EOF
-}
-
-upload_file_to_swdownloads() {
-
- if [ "$#" -ne 4 ] ; then
- echo "skipping deployment of something"
- echo "send called with $@"
- return 0
- fi
-
- local LIBNAME=$1
- local FROM=$2
- local FNAME=$3
- local EXT=$4
-
- if [ -z "$FROM" ] ; then
- echo no file to send
- return 1
- fi
-
- if [ ! -r "$FROM" ] ; then
- echo "file $FROM is not readable"
- return 1
- fi
-
- if [ -n "$TRAVIS_PULL_REQUEST_BRANCH" ] ; then
- local branch="$TRAVIS_PULL_REQUEST_BRANCH"
- else
- local branch="$TRAVIS_BRANCH"
- fi
-
- local TO=${branch}_${FNAME}
- local LATE=${branch}_latest_${LIBNAME}${LDIST}${EXT}
- local GLOB=${DEPLOY_TO}/${branch}_${LIBNAME}-*
-
- echo attemting to deploy $FROM to $TO
- echo and ${branch}_${LIBNAME}${LDIST}${EXT}
- ssh -V
-
- for rmf in ${TO} ${LATE} ; do
- sftp_rm_artifact ${rmf} || \
- echo_blue "Could not delete ${rmf}"
- done
-
- sftp_upload "${FROM}" "${TO}" "${LATE}" || {
- echo_red "Failed to upload artifact from '${FROM}', to '${TO}', symlink '${LATE}'"
- return 1
- }
-
- # limit things to a few files, so things don't grow forever
- if [ "${EXT}" = ".deb" ] ; then
- for files in $(ssh ${EXTRA_SSH} ${SSHUSER}@${SSHHOST} \
- "ls -lt ${GLOB}" | tail -n +100 | awk '{print $NF}')
- do
- ssh ${EXTRA_SSH} ${SSHUSER}@${SSHHOST} \
- "rm ${DEPLOY_TO}/${files}" || \
- return 1
- done
- fi
-
- return 0
-}
-
-prepare_docker_image() {
- local DOCKER_IMAGE="$1"
- sudo apt-get -qq update
- echo 'DOCKER_OPTS="-H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock -s devicemapper"' | sudo tee /etc/default/docker > /dev/null
- sudo service docker restart
- sudo docker pull "$DOCKER_IMAGE"
-}
-
-run_docker_script() {
- local DOCKER_SCRIPT="$(get_script_path $1)"
- local DOCKER_IMAGE="$2"
- local OS_TYPE="$3"
- local MOUNTPOINT="${4:-docker_build_dir}"
- sudo docker run --rm=true \
- -v "$(pwd):/${MOUNTPOINT}:rw" \
- $DOCKER_IMAGE \
- /bin/bash -e "/${MOUNTPOINT}/${DOCKER_SCRIPT}" "${MOUNTPOINT}" "${OS_TYPE}"
-}
-
-ensure_command_exists() {
- local cmd="$1"
- local package="$2"
- [ -n "$cmd" ] || return 1
- [ -n "$package" ] || package="$cmd"
- ! command_exists "$cmd" || return 0
- # go through known package managers
- for pacman in apt-get brew yum ; do
- command_exists $pacman || continue
- $pacman install -y $package || {
- # Try an update if install doesn't work the first time
- $pacman -y update && \
- $pacman install -y $package
- }
- return $?
- done
- return 1
-}
-
-ensure_command_exists sudo
-
-# Other scripts will download lib.sh [this script] and lib.sh will
-# in turn download the other scripts it needs.
-# This gives way more flexibility when changing things, as they propagate
-for script in $COMMON_SCRIPTS ; do
- [ ! -f "CI/travis/$script" ] || continue
- [ ! -f "ci/travis/$script" ] || continue
- [ ! -f "${LOCAL_BUILD_DIR}/$script" ] || continue
- mkdir -p ${LOCAL_BUILD_DIR}
- ensure_command_exists wget
- wget https://raw.githubusercontent.com/analogdevicesinc/libiio/master/CI/travis/$script \
- -O $LOCAL_BUILD_DIR/$script
-done