# Copyright 1999-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ EAPI="5" #USE_RUBY="ruby19 ruby20 ruby21" #PYTHON_DEPEND="2:2.7" #inherit eutils python ruby-ng user inherit eutils user DESCRIPTION="GitLab CI Multi Runner is the new build processor needed for GitLab CI >= 7.12" HOMEPAGE="https://gitlab.com/gitlab-org/gitlab-ci-multi-runner" SRC_URI="https://gitlab.com/gitlab-org/${PN}/repository/archive.tar.gz?ref=${PV} -> ${P}.tar.gz" #"x86? ( https://${PN}-downloads.s3.amazonaws.com/${PV}/binaries/${PN}-linux-386 -> ${PN}-x86 ) # amd64? ( https://${PN}-downloads.s3.amazonaws.com/${PV}/binaries/${PN}-linux-amd64 -> ${PN}-amd64 ) # arm? ( https://${PN}-downloads.s3.amazonaws.com/${PV}/binaries/${PN}-linux-arm -> ${PN}-arm )" RESTRICT="mirror" REQUIRED_USE="^^ ( x86 amd64 arm )" LICENSE="MIT" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="amd64 arm x86" DEPEND="dev-vcs/git" CDEPEND="dev-lang/go" RDEPEND="${DEPEND} virtual/mta" MY_NAME="${PN}" MY_USER="gitlab_ci_runner" DEST_DIR="/opt/${MY_NAME}" LOGS_DIR="/var/log/${MY_NAME}" TEMP_DIR="/var/tmp/${MY_NAME}" RUN_DIR="/run/${MY_NAME}" S="${WORKDIR}/${PN}.git" pkg_setup() { enewgroup ${MY_USER} enewuser ${MY_USER} -1 /bin/bash ${DEST_DIR} ${MY_USER} export GOPATH="${WORKDIR}" } #src_unpack() { # local a="$(usev amd64)$(usev arm)$(usev x86)" # mkdir -p "${S}" # cp "${DISTDIR}/${PN}-${a}" "${S}/${PN}" #} src_prepare() { git init } src_compile() { emake deps build || die "Failed to make deps build" } src_install() { local dest=${DEST_DIR} # local logs=${LOGS_DIR} # local temp=${TEMP_DIR} # local runs=${RUN_DIR} # prepare directories # diropts -m750 # dodir ${logs} ${temp} diropts -m755 dodir ${dest} # dosym ${temp} ${dest}/tmp # dosym ${logs} ${dest}/log # install the files using cp 'cause doins is slow cp -Rl "${S}/"* "${D}/${dest}/" # install logrotate config # dodir /etc/logrotate.d # cat > "${D}/etc/logrotate.d/${MY_NAME}" <<-EOF # ${logs}/*.log { # missingok # delaycompress # compress # copytruncate # } # EOF # fix permissions fowners -R ${MY_USER}:${MY_USER} ${dest} # fowners -R ${MY_USER}:${MY_USER} ${dest} ${temp} ${logs} ## RC script and conf.d file ## local rcscript=gitlab-ci-multi-runner.init local rcconf=gitlab-ci-multi-runner.conf cp "${FILESDIR}/${rcscript}" "${T}" || die sed -i \ -e "s|@USER@|${MY_USER}|" \ -e "s|@GITLAB_CI_MULTI_RUNNER_BASE@|${dest}|" \ -e "s|@LOGS_DIR@|${logs}|" \ -e "s|@RUN_DIR@|${runs}|" \ "${T}/${rcscript}" \ || die "failed to filter ${rcscript}" newinitd "${T}/${rcscript}" "${MY_NAME}" newconfd "${FILESDIR}/${rcconf}" "${MY_NAME}" } pkg_postinst() { elog elog "If this is a fresh install of GitLab CI Multi Runner, please configure it" elog "with the following command:" elog " emerge --config \"=${CATEGORY}/${PF}\"" } pkg_config() { einfo "You need to register the runner with your GitLab CI instance. Please" einfo "Follow the instructions on" einfo einfo "https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/master/docs/install/linux-manually.md" einfo einfo "Perhaps I'll improve the ebuild later ... kthxbye." }