#!/usr/bin/env sh _buildkite_config() { BUILDKITE_PATH=/home/buildkite-agent/.buildkite-agent if [ "$1" = 'ubuntu' -o "$1" = 'debian' -o "$1" = 'centos' ] then BUILDKITE_PATH=/etc/buildkite-agent fi # Update the configuration. lxc_do bash -c "echo name=\"$1-%n\" >> $BUILDKITE_PATH/buildkite-agent.cfg" lxc_do bash -c "echo tags=\"os=$1\" >> $BUILDKITE_PATH/buildkite-agent.cfg" # Install hooks. lxc_do bash -c " \ echo \"export BUILDKITE_API_TOKEN=$BUILDKITE_API_TOKEN\" >> /etc/buildkite-env" lxc_do bash -c " \ echo \"export BUILDKITE_LOGS_SERVER=$BUILDKITE_LOGS_SERVER\" >> /etc/buildkite-env" <$( cd "$( dirname "$0" )" && pwd )/priv/buildkite-pre-artifact-hook \ lxc_do bash -c "cat > $BUILDKITE_PATH/hooks/pre-artifact" lxc_do chmod +x $BUILDKITE_PATH/hooks/pre-artifact lxc_do chown buildkite-agent:buildkite-agent $BUILDKITE_PATH/hooks/pre-artifact } _buildkite_install_centos() { lxc_do bash -c 'echo -e "[buildkite-agent]\nname = Buildkite Pty Ltd\nbaseurl = https://yum.buildkite.com/buildkite-agent/stable/x86_64/\nenabled=1\ngpgcheck=0\npriority=1" > /etc/yum.repos.d/buildkite-agent.repo' lxc_do yum install -y buildkite-agent lxc_do sed -i "s/xxx/$2/g" /etc/buildkite-agent/buildkite-agent.cfg lxc_do systemctl enable buildkite-agent } _buildkite_install_generic() { lxc_do useradd -m -s /bin/bash buildkite-agent lxc_do su - buildkite-agent -c 'curl -sLO https://raw.githubusercontent.com/buildkite/agent/master/install.sh' lxc_do su - buildkite-agent -c "TOKEN=\"$2\" bash install.sh" lxc_do su - buildkite-agent -c 'rm install.sh' lxc_do su - buildkite-agent -c 'echo "@reboot /home/buildkite-agent/.buildkite-agent/bin/buildkite-agent start &" >> tmpcron' lxc_do su - buildkite-agent -c 'crontab tmpcron' lxc_do su - buildkite-agent -c 'rm tmpcron' } _buildkite_install_ubuntu() { lxc_do bash -c 'echo deb https://apt.buildkite.com/buildkite-agent stable main \ > /etc/apt/sources.list.d/buildkite-agent.list' lxc_do apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 \ --recv-keys 32A37959C2FA5C3C99EFBC32A79206696452D198 lxc_do apt-get update lxc_do apt-get install -y buildkite-agent lxc_do sed -i "s/xxx/$2/g" /etc/buildkite-agent/buildkite-agent.cfg lxc_do systemctl enable buildkite-agent } # buildkite_install dist token buildkite_install() { if [ "$1" = 'ubuntu' -o "$1" = 'debian' ] then _buildkite_install_ubuntu "$@" elif [ "$1" = 'centos' ] then _buildkite_install_centos "$@" else _buildkite_install_generic "$@" fi _buildkite_config $1 } # buildkite_stop dist buildkite_stop() { if [ "$1" = 'ubuntu' -o "$1" = 'debian' ] then lxc_do systemctl stop buildkite-agent || true else lxc_do killall -q buildkite-agent || true fi }