Skip to content
Snippets Groups Projects
deploy.sh 2.27 KiB
Newer Older
  • Learn to ignore specific revisions
  • Eric Vidal's avatar
    Eric Vidal committed
    #!/usr/bin/bash
    # Copyright (c) 2015-2019 Eric Vidal <eric@obarun.org>
    # All rights reserved.
    # 
    # This file is part of Obarun. It is subject to the license terms in
    # the LICENSE file found in the top-level directory of this
    # distribution.
    # This file may not be copied, modified, propagated, or distributed
    # except according to the terms contained in the LICENSE file.
    
    PROG="${0}"
    install=0
    
    reset='\033[0m'
    red='\033[1;31m'   
    green='\033[1;32m'
    yellow='\033[1;33m'
    bold='\033[1m'
    
    out() {
    	local errno="${1}" color="${2}" msg="${@:3}" 
    	printf "${PROG}: ${color}%s${reset}: %s\n" "${errno}" "$msg" >&1
    }
    
    out_trace() {
    	out "tracing" "${bold}" "${@}"
    }
    
    out_success() {
    	out "success" "${green}" "${@}"
    }
    
    out_warn(){
    	out "warning" "${yellow}" "${@}"
    }
    
    out_error(){
    	out "fatal" "${red}" "${@}"
    }
    
    out_usage() {
    	out "usage" "${reset}" "${@}"
    }
    
    die() {
    	out_error "${@}"
    	exit 111
    }
    
    out_trace "Install openssh"
    pacman -Sy openssh --noconfirm || die "Unable to install openssh"
    
    out_trace "Starts ssh-agent"
    eval $(ssh-agent)
    
    out_trace "Configure ssh"
    mkdir -p ~/.ssh || die "Unable to create ~/.ssh directory"
    echo "${ssh_private_key}"| tr -d '\r' > ~/.ssh/id_rsa
    chmod 700 ~/.ssh/id_rsa || die "Unable to change permissions of ~/.ssh/id_rsa"
    ssh-add ~/.ssh/id_rsa || die "Unable to add key ~/.ssh/id_rsa"
    echo ${ssh_known_host} > ~/.ssh/known_hosts
    	
    out_trace "Configure git"
    git config --global user.name ${GITLAB_USER_NAME}
    git config --global user.email ${GITLAB_USER_EMAIL}
    
    out_trace "Cd to /tmp"
    cd /tmp
    
    out_trace "Clone git@${CI_SERVER_HOST}:/${CI_PROJECT_PATH}.git"
    git clone git@${CI_SERVER_HOST}:/${CI_PROJECT_PATH}.git
    
    out_trace "Cd to ${CI_PROJECT_NAME}"
    cd ${CI_PROJECT_NAME}
    
    out_trace "Retrieve pkgver and pkgrel variables from PKGBUILD"
    source trunk/PKGBUILD
    
    out_trace "Make directory of version: ${pkgver}-${pkgrel}"
    mkdir -p version/${pkgver}-${pkgrel}
    
    out_trace "Copy file from trunk to version/${pkgver}-${pkgrel}"
    cp trunk/* version/${pkgver}-${pkgrel}
    
    out_trace "Git add new file"
    git add . || die "Unable to git add"
    
    out_trace "Git commit message: upgpkg: ${pkgver}-${pkgrel}"
    git commit -m "upgpkg: ${pkgver}-${pkgrel}" || die "Unable to commit"
    
    out_trace "Push the new version"
    git push --all || die "Unable to push at git@${CI_SERVER_HOST}:/${CI_PROJECT_PATH}.git"
    
    exit 0