diff --git a/teamcity-agent/Dockerfile b/teamcity-agent/Dockerfile new file mode 100644 index 000000000..45507db6a --- /dev/null +++ b/teamcity-agent/Dockerfile @@ -0,0 +1,155 @@ +FROM debian:buster +MAINTAINER EpicMorg DevTeam +ENV DEBIAN_FRONTEND noninteractive + +#editing sources list +RUN rm /etc/apt/sources.list +COPY sources.list /etc/apt/sources.list +RUN apt update && apt dist-upgrade -y +#COPY locale.gen /etc/locale.gen + +#installing utils +# url: missing +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections +RUN apt-get update && apt-get install -y --allow-unauthenticated uuid-runtime gnupg2 rsync ca-certificates htop mc tmux iftop cmatrix iputils-ping cmatrix-xfont lsof lynx fontconfig smbclient nano screenfetch git ffmpeg tree gnupg sudo apt-transport-https lsb-release apt-utils locales console-cyrillic wget curl bash procps openssl perl ttf-dejavu tini util-linux fontconfig + +################################################################## +# installing java8 +################################################################## + +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A66C5D02 +RUN echo 'deb https://rpardini.github.io/adoptopenjdk-deb-installer stable main' > /etc/apt/sources.list.d/rpardini-aoj.list +RUN apt-get update && apt-get install -y --allow-unauthenticated adoptopenjdk-8-installer + +################################################################## +# teamcity minimal agent +################################################################## + +VOLUME /data/teamcity_agent/conf + +ENV CONFIG_FILE=/data/teamcity_agent/conf/buildAgent.properties \ + LANG=C.UTF-8 + +LABEL dockerImage.teamcity.version="latest" \ + dockerImage.teamcity.buildNumber="latest" + + +COPY run-agent.sh /run-agent.sh +COPY run-services.sh /run-services.sh +#fix of missing dist. sorry. +ADD https://teamcity.jetbrains.com/update/buildAgent.zip /buildAgent.zip +RUN unzip /buildAgent.zip -d /opt/buildagent && \ + mv /opt/buildagent/conf /opt/buildagent/conf_dist + + +RUN apt-get update && \ + apt-get install -y --no-install-recommends sudo && \ + useradd -m buildagent && \ + chmod +x /opt/buildagent/bin/*.sh && \ + chmod +x /run-agent.sh /run-services.sh && sync + + +################################################################## +# teamcity main agent +################################################################## + + # Opt out of the telemetry feature +ENV DOTNET_CLI_TELEMETRY_OPTOUT=true \ + # Disable first time experience + DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true \ + # Configure Kestrel web server to bind to port 80 when present + ASPNETCORE_URLS=http://+:80 \ + # Enable detection of running in a container + DOTNET_RUNNING_IN_CONTAINER=true \ + # Enable correct mode for dotnet watch (only mode supported in a container) + DOTNET_USE_POLLING_FILE_WATCHER=true \ + # Skip extraction of XML docs - generally not useful within an image/container - helps perfomance + NUGET_XMLDOC_MODE=skip \ + GIT_SSH_VARIANT=ssh \ + # Install .NET Core SDK + DOTNET_SDK_VERSION=2.2.402 \ + #unofficial support of openssl1.1 instead of 1.0 [https://stackoverflow.com/questions/51901359] + CLR_OPENSSL_VERSION_OVERRIDE=45 + + # docker insall +RUN apt-get update && \ + apt-get install -y git mercurial apt-transport-https ca-certificates software-properties-common && \ + \ + curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - && \ + echo 'deb [arch=amd64] https://download.docker.com/linux/debian buster stable' > /etc/apt/sources.list.d/docker.list && \ + apt-cache policy docker-ce && \ + apt-get update && apt-get install -y --allow-unauthenticated docker-ce docker-ce-cli containerd.io systemd && \ + systemctl disable docker && \ + curl -SL https://github.com/docker/compose/releases/download/1.24.1/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose && \ + \ + apt-get install -y --no-install-recommends \ + fontconfig \ + libc6 \ + libgcc1 \ + libgssapi-krb5-2 \ + libicu63 \ + liblttng-ust0 \ + libssl1.1 \ + libstdc++6 \ + zlib1g \ + && rm -rf /var/lib/apt/lists/* && \ + \ + curl -SL https://dotnetcli.blob.core.windows.net/dotnet/Sdk/$DOTNET_SDK_VERSION/dotnet-sdk-$DOTNET_SDK_VERSION-linux-x64.tar.gz --output dotnet.tar.gz \ + && mkdir -p /usr/share/dotnet \ + && tar -zxf dotnet.tar.gz -C /usr/share/dotnet \ + && rm dotnet.tar.gz \ + && find /usr/share/dotnet -name "*.lzma" -type f -delete \ + && ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet && \ + \ + apt-get clean all && \ + \ + usermod -aG docker buildagent + +# A better fix for TW-52939 Dockerfile build fails because of aufs +VOLUME /var/lib/docker + +COPY run-docker.sh /services/run-docker.sh +RUN chmod +x /services/run-docker.sh && sync + +# Trigger .NET CLI first run experience by running arbitrary cmd to populate local package cache +RUN ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0 && \ + ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.1 /usr/lib/x86_64-linux-gnu/libssl.so.1.0 && \ + dotnet help + +################################################################## +# steam runtime and ssdk +################################################################## + +RUN apt-get update && apt install -y --allow-unauthenticated build-essential gcc-multilib g++-multilib +RUN cd / && \ + sudo mkdir valve && \ + cd valve && \ + sudo wget http://media.steampowered.com/client/runtime/steam-runtime-sdk_latest.tar.xz && \ + sudo tar xvf steam-runtime-sdk_latest.tar.xz && \ + sudo mv steam-runtime-sdk_2013-09-05 steam-runtime && \ + sudo chown root:root * -R && \ + cd steam-runtime && \ + printf '%s\n' 3 1 Y Y Y | ./setup.sh + + +################################################################## +# retroarch deps +################################################################## +RUN apt-get update && apt install -y --allow-unauthenticated libxkbcommon-dev zlib1g-dev libfreetype6-dev libegl1-mesa-dev libgles2-mesa-dev libgbm-dev nvidia-cg-toolkit nvidia-cg-dev libavcodec-dev libsdl2-dev libsdl-image1.2-dev libxml2-dev yasm + + +################################################################## +# deb creating +################################################################## +RUN apt-get update && apt install -y --allow-unauthenticated devscripts autoconf automake libtool autotools-dev dpkg-dev fakeroot checkinstall dh-make + + +################################################################## +# other customisations +################################################################## + + + +CMD ["/run-services.sh"] + +EXPOSE 9090 diff --git a/teamcity-agent/Makefile b/teamcity-agent/Makefile new file mode 100644 index 000000000..e1422112b --- /dev/null +++ b/teamcity-agent/Makefile @@ -0,0 +1,4 @@ +all: tca +tca: + docker build --compress -t epicmorg/teamcity-agent . + diff --git a/teamcity-agent/locale.gen b/teamcity-agent/locale.gen new file mode 100644 index 000000000..602141659 --- /dev/null +++ b/teamcity-agent/locale.gen @@ -0,0 +1,496 @@ +aa_DJ.UTF-8 UTF-8 +aa_DJ ISO-8859-1 +aa_ER UTF-8 +aa_ER@saaho UTF-8 +aa_ET UTF-8 +af_ZA.UTF-8 UTF-8 +af_ZA ISO-8859-1 +agr_PE UTF-8 +ak_GH UTF-8 +am_ET UTF-8 +an_ES.UTF-8 UTF-8 +an_ES ISO-8859-15 +anp_IN UTF-8 +ar_AE.UTF-8 UTF-8 +ar_AE ISO-8859-6 +ar_BH.UTF-8 UTF-8 +ar_BH ISO-8859-6 +ar_DZ.UTF-8 UTF-8 +ar_DZ ISO-8859-6 +ar_EG.UTF-8 UTF-8 +ar_EG ISO-8859-6 +ar_IN UTF-8 +ar_IQ.UTF-8 UTF-8 +ar_IQ ISO-8859-6 +ar_JO.UTF-8 UTF-8 +ar_JO ISO-8859-6 +ar_KW.UTF-8 UTF-8 +ar_KW ISO-8859-6 +ar_LB.UTF-8 UTF-8 +ar_LB ISO-8859-6 +ar_LY.UTF-8 UTF-8 +ar_LY ISO-8859-6 +ar_MA.UTF-8 UTF-8 +ar_MA ISO-8859-6 +ar_OM.UTF-8 UTF-8 +ar_OM ISO-8859-6 +ar_QA.UTF-8 UTF-8 +ar_QA ISO-8859-6 +ar_SA.UTF-8 UTF-8 +ar_SA ISO-8859-6 +ar_SD.UTF-8 UTF-8 +ar_SD ISO-8859-6 +ar_SS UTF-8 +ar_SY.UTF-8 UTF-8 +ar_SY ISO-8859-6 +ar_TN.UTF-8 UTF-8 +ar_TN ISO-8859-6 +ar_YE.UTF-8 UTF-8 +ar_YE ISO-8859-6 +ayc_PE UTF-8 +az_AZ UTF-8 +az_IR UTF-8 +as_IN UTF-8 +ast_ES.UTF-8 UTF-8 +ast_ES ISO-8859-15 +be_BY.UTF-8 UTF-8 +be_BY CP1251 +be_BY@latin UTF-8 +bem_ZM UTF-8 +ber_DZ UTF-8 +ber_MA UTF-8 +bg_BG.UTF-8 UTF-8 +bg_BG CP1251 +bhb_IN.UTF-8 UTF-8 +bho_IN UTF-8 +bho_NP UTF-8 +bi_VU UTF-8 +bn_BD UTF-8 +bn_IN UTF-8 +bo_CN UTF-8 +bo_IN UTF-8 +br_FR.UTF-8 UTF-8 +br_FR ISO-8859-1 +br_FR@euro ISO-8859-15 +brx_IN UTF-8 +bs_BA.UTF-8 UTF-8 +bs_BA ISO-8859-2 +byn_ER UTF-8 +ca_AD.UTF-8 UTF-8 +ca_AD ISO-8859-15 +ca_ES.UTF-8 UTF-8 +ca_ES ISO-8859-1 +ca_ES@euro ISO-8859-15 +ca_ES@valencia UTF-8 +ca_FR.UTF-8 UTF-8 +ca_FR ISO-8859-15 +ca_IT.UTF-8 UTF-8 +ca_IT ISO-8859-15 +ce_RU UTF-8 +chr_US UTF-8 +cmn_TW UTF-8 +crh_UA UTF-8 +cs_CZ.UTF-8 UTF-8 +cs_CZ ISO-8859-2 +csb_PL UTF-8 +cv_RU UTF-8 +cy_GB.UTF-8 UTF-8 +cy_GB ISO-8859-14 +da_DK.UTF-8 UTF-8 +da_DK ISO-8859-1 +de_AT.UTF-8 UTF-8 +de_AT ISO-8859-1 +de_AT@euro ISO-8859-15 +de_BE.UTF-8 UTF-8 +de_BE ISO-8859-1 +de_BE@euro ISO-8859-15 +de_CH.UTF-8 UTF-8 +de_CH ISO-8859-1 +de_DE.UTF-8 UTF-8 +de_DE ISO-8859-1 +de_DE@euro ISO-8859-15 +de_IT.UTF-8 UTF-8 +de_IT ISO-8859-1 +de_LI.UTF-8 UTF-8 +de_LU.UTF-8 UTF-8 +de_LU ISO-8859-1 +de_LU@euro ISO-8859-15 +doi_IN UTF-8 +dsb_DE UTF-8 +dv_MV UTF-8 +dz_BT UTF-8 +el_GR.UTF-8 UTF-8 +el_GR ISO-8859-7 +el_GR@euro ISO-8859-7 +el_CY.UTF-8 UTF-8 +el_CY ISO-8859-7 +en_AG UTF-8 +en_AU.UTF-8 UTF-8 +en_AU ISO-8859-1 +en_BW.UTF-8 UTF-8 +en_BW ISO-8859-1 +en_CA.UTF-8 UTF-8 +en_CA ISO-8859-1 +en_DK.UTF-8 UTF-8 +en_DK.ISO-8859-15 ISO-8859-15 +en_DK ISO-8859-1 +en_GB.UTF-8 UTF-8 +en_GB ISO-8859-1 +en_GB.ISO-8859-15 ISO-8859-15 +en_HK.UTF-8 UTF-8 +en_HK ISO-8859-1 +en_IE.UTF-8 UTF-8 +en_IE ISO-8859-1 +en_IE@euro ISO-8859-15 +en_IL UTF-8 +en_IN UTF-8 +en_NG UTF-8 +en_NZ.UTF-8 UTF-8 +en_NZ ISO-8859-1 +en_PH.UTF-8 UTF-8 +en_PH ISO-8859-1 +en_SC.UTF-8 UTF-8 +en_SG.UTF-8 UTF-8 +en_SG ISO-8859-1 +en_US.UTF-8 UTF-8 +en_US ISO-8859-1 +en_US.ISO-8859-15 ISO-8859-15 +en_ZA.UTF-8 UTF-8 +en_ZA ISO-8859-1 +en_ZM UTF-8 +en_ZW.UTF-8 UTF-8 +en_ZW ISO-8859-1 +eo UTF-8 +es_AR.UTF-8 UTF-8 +es_AR ISO-8859-1 +es_BO.UTF-8 UTF-8 +es_BO ISO-8859-1 +es_CL.UTF-8 UTF-8 +es_CL ISO-8859-1 +es_CO.UTF-8 UTF-8 +es_CO ISO-8859-1 +es_CR.UTF-8 UTF-8 +es_CR ISO-8859-1 +es_CU UTF-8 +es_DO.UTF-8 UTF-8 +es_DO ISO-8859-1 +es_EC.UTF-8 UTF-8 +es_EC ISO-8859-1 +es_ES.UTF-8 UTF-8 +es_ES ISO-8859-1 +es_ES@euro ISO-8859-15 +es_GT.UTF-8 UTF-8 +es_GT ISO-8859-1 +es_HN.UTF-8 UTF-8 +es_HN ISO-8859-1 +es_MX.UTF-8 UTF-8 +es_MX ISO-8859-1 +es_NI.UTF-8 UTF-8 +es_NI ISO-8859-1 +es_PA.UTF-8 UTF-8 +es_PA ISO-8859-1 +es_PE.UTF-8 UTF-8 +es_PE ISO-8859-1 +es_PR.UTF-8 UTF-8 +es_PR ISO-8859-1 +es_PY.UTF-8 UTF-8 +es_PY ISO-8859-1 +es_SV.UTF-8 UTF-8 +es_SV ISO-8859-1 +es_US.UTF-8 UTF-8 +es_US ISO-8859-1 +es_UY.UTF-8 UTF-8 +es_UY ISO-8859-1 +es_VE.UTF-8 UTF-8 +es_VE ISO-8859-1 +et_EE.UTF-8 UTF-8 +et_EE ISO-8859-1 +et_EE.ISO-8859-15 ISO-8859-15 +eu_ES.UTF-8 UTF-8 +eu_ES ISO-8859-1 +eu_ES@euro ISO-8859-15 +eu_FR.UTF-8 UTF-8 +eu_FR ISO-8859-1 +eu_FR@euro ISO-8859-15 +fa_IR UTF-8 +ff_SN UTF-8 +fi_FI.UTF-8 UTF-8 +fi_FI ISO-8859-1 +fi_FI@euro ISO-8859-15 +fil_PH UTF-8 +fo_FO.UTF-8 UTF-8 +fo_FO ISO-8859-1 +fr_BE.UTF-8 UTF-8 +fr_BE ISO-8859-1 +fr_BE@euro ISO-8859-15 +fr_CA.UTF-8 UTF-8 +fr_CA ISO-8859-1 +fr_CH.UTF-8 UTF-8 +fr_CH ISO-8859-1 +fr_FR.UTF-8 UTF-8 +fr_FR ISO-8859-1 +fr_FR@euro ISO-8859-15 +fr_LU.UTF-8 UTF-8 +fr_LU ISO-8859-1 +fr_LU@euro ISO-8859-15 +fur_IT UTF-8 +fy_NL UTF-8 +fy_DE UTF-8 +ga_IE.UTF-8 UTF-8 +ga_IE ISO-8859-1 +ga_IE@euro ISO-8859-15 +gd_GB.UTF-8 UTF-8 +gd_GB ISO-8859-15 +gez_ER UTF-8 +gez_ER@abegede UTF-8 +gez_ET UTF-8 +gez_ET@abegede UTF-8 +gl_ES.UTF-8 UTF-8 +gl_ES ISO-8859-1 +gl_ES@euro ISO-8859-15 +gu_IN UTF-8 +gv_GB.UTF-8 UTF-8 +gv_GB ISO-8859-1 +ha_NG UTF-8 +hak_TW UTF-8 +he_IL.UTF-8 UTF-8 +he_IL ISO-8859-8 +hi_IN UTF-8 +hif_FJ UTF-8 +hne_IN UTF-8 +hr_HR.UTF-8 UTF-8 +hr_HR ISO-8859-2 +hsb_DE.UTF-8 UTF-8 +hsb_DE ISO-8859-2 +ht_HT UTF-8 +hu_HU.UTF-8 UTF-8 +hu_HU ISO-8859-2 +hy_AM UTF-8 +hy_AM.ARMSCII-8 ARMSCII-8 +ia_FR UTF-8 +id_ID.UTF-8 UTF-8 +id_ID ISO-8859-1 +ig_NG UTF-8 +ik_CA UTF-8 +is_IS.UTF-8 UTF-8 +is_IS ISO-8859-1 +it_CH.UTF-8 UTF-8 +it_CH ISO-8859-1 +it_IT.UTF-8 UTF-8 +it_IT ISO-8859-1 +it_IT@euro ISO-8859-15 +iu_CA UTF-8 +ja_JP.UTF-8 UTF-8 +ja_JP.EUC-JP EUC-JP +ka_GE.UTF-8 UTF-8 +ka_GE GEORGIAN-PS +kab_DZ UTF-8 +kk_KZ.UTF-8 UTF-8 +kk_KZ PT154 +kk_KZ.RK1048 RK1048 +kl_GL.UTF-8 UTF-8 +kl_GL ISO-8859-1 +km_KH UTF-8 +kn_IN UTF-8 +ko_KR.UTF-8 UTF-8 +ko_KR.EUC-KR EUC-KR +kok_IN UTF-8 +ks_IN UTF-8 +ks_IN@devanagari UTF-8 +ku_TR.UTF-8 UTF-8 +ku_TR ISO-8859-9 +kw_GB.UTF-8 UTF-8 +kw_GB ISO-8859-1 +ky_KG UTF-8 +lb_LU UTF-8 +lg_UG.UTF-8 UTF-8 +lg_UG ISO-8859-10 +li_BE UTF-8 +li_NL UTF-8 +lij_IT UTF-8 +ln_CD UTF-8 +lo_LA UTF-8 +lt_LT.UTF-8 UTF-8 +lt_LT ISO-8859-13 +lv_LV.UTF-8 UTF-8 +lv_LV ISO-8859-13 +lzh_TW UTF-8 +mag_IN UTF-8 +mai_IN UTF-8 +mai_NP UTF-8 +mfe_MU UTF-8 +mg_MG.UTF-8 UTF-8 +mg_MG ISO-8859-15 +mhr_RU UTF-8 +mi_NZ.UTF-8 UTF-8 +mi_NZ ISO-8859-13 +miq_NI UTF-8 +mjw_IN UTF-8 +mk_MK.UTF-8 UTF-8 +mk_MK ISO-8859-5 +ml_IN UTF-8 +mn_MN UTF-8 +mni_IN UTF-8 +mr_IN UTF-8 +ms_MY.UTF-8 UTF-8 +ms_MY ISO-8859-1 +mt_MT.UTF-8 UTF-8 +mt_MT ISO-8859-3 +my_MM UTF-8 +nan_TW UTF-8 +nan_TW@latin UTF-8 +nb_NO.UTF-8 UTF-8 +nb_NO ISO-8859-1 +nds_DE UTF-8 +nds_NL UTF-8 +ne_NP UTF-8 +nhn_MX UTF-8 +niu_NU UTF-8 +niu_NZ UTF-8 +nl_AW UTF-8 +nl_BE.UTF-8 UTF-8 +nl_BE ISO-8859-1 +nl_BE@euro ISO-8859-15 +nl_NL.UTF-8 UTF-8 +nl_NL ISO-8859-1 +nl_NL@euro ISO-8859-15 +nn_NO.UTF-8 UTF-8 +nn_NO ISO-8859-1 +nr_ZA UTF-8 +nso_ZA UTF-8 +oc_FR.UTF-8 UTF-8 +oc_FR ISO-8859-1 +om_ET UTF-8 +om_KE.UTF-8 UTF-8 +om_KE ISO-8859-1 +or_IN UTF-8 +os_RU UTF-8 +pa_IN UTF-8 +pa_PK UTF-8 +pap_AW UTF-8 +pap_CW UTF-8 +pl_PL.UTF-8 UTF-8 +pl_PL ISO-8859-2 +ps_AF UTF-8 +pt_BR.UTF-8 UTF-8 +pt_BR ISO-8859-1 +pt_PT.UTF-8 UTF-8 +pt_PT ISO-8859-1 +pt_PT@euro ISO-8859-15 +quz_PE UTF-8 +raj_IN UTF-8 +ro_RO.UTF-8 UTF-8 +ro_RO ISO-8859-2 +ru_RU.UTF-8 UTF-8 +ru_RU.KOI8-R KOI8-R +ru_RU ISO-8859-5 +ru_RU.CP1251 CP1251 +ru_UA.UTF-8 UTF-8 +ru_UA KOI8-U +rw_RW UTF-8 +sa_IN UTF-8 +sah_RU UTF-8 +sat_IN UTF-8 +sc_IT UTF-8 +sd_IN UTF-8 +sd_IN@devanagari UTF-8 +se_NO UTF-8 +sgs_LT UTF-8 +shn_MM UTF-8 +shs_CA UTF-8 +si_LK UTF-8 +sid_ET UTF-8 +sk_SK.UTF-8 UTF-8 +sk_SK ISO-8859-2 +sl_SI.UTF-8 UTF-8 +sl_SI ISO-8859-2 +sm_WS UTF-8 +so_DJ.UTF-8 UTF-8 +so_DJ ISO-8859-1 +so_ET UTF-8 +so_KE.UTF-8 UTF-8 +so_KE ISO-8859-1 +so_SO.UTF-8 UTF-8 +so_SO ISO-8859-1 +sq_AL.UTF-8 UTF-8 +sq_AL ISO-8859-1 +sq_MK UTF-8 +sr_ME UTF-8 +sr_RS UTF-8 +sr_RS@latin UTF-8 +ss_ZA UTF-8 +st_ZA.UTF-8 UTF-8 +st_ZA ISO-8859-1 +sv_FI.UTF-8 UTF-8 +sv_FI ISO-8859-1 +sv_FI@euro ISO-8859-15 +sv_SE.UTF-8 UTF-8 +sv_SE ISO-8859-1 +sv_SE.ISO-8859-15 ISO-8859-15 +sw_KE UTF-8 +sw_TZ UTF-8 +szl_PL UTF-8 +ta_IN UTF-8 +ta_LK UTF-8 +tcy_IN.UTF-8 UTF-8 +te_IN UTF-8 +tg_TJ.UTF-8 UTF-8 +tg_TJ KOI8-T +th_TH.UTF-8 UTF-8 +th_TH TIS-620 +the_NP UTF-8 +ti_ER UTF-8 +ti_ET UTF-8 +tig_ER UTF-8 +tk_TM UTF-8 +tl_PH.UTF-8 UTF-8 +tl_PH ISO-8859-1 +tn_ZA UTF-8 +to_TO UTF-8 +tpi_PG UTF-8 +tr_CY.UTF-8 UTF-8 +tr_CY ISO-8859-9 +tr_TR.UTF-8 UTF-8 +tr_TR ISO-8859-9 +ts_ZA UTF-8 +tt_RU UTF-8 +tt_RU@iqtelif UTF-8 +ug_CN UTF-8 +uk_UA.UTF-8 UTF-8 +uk_UA KOI8-U +unm_US UTF-8 +ur_IN UTF-8 +ur_PK UTF-8 +uz_UZ.UTF-8 UTF-8 +uz_UZ ISO-8859-1 +uz_UZ@cyrillic UTF-8 +ve_ZA UTF-8 +vi_VN UTF-8 +wa_BE.UTF-8 UTF-8 +wa_BE ISO-8859-1 +wa_BE@euro ISO-8859-15 +wae_CH UTF-8 +wal_ET UTF-8 +wo_SN UTF-8 +xh_ZA.UTF-8 UTF-8 +xh_ZA ISO-8859-1 +yi_US.UTF-8 UTF-8 +yi_US CP1255 +yo_NG UTF-8 +yue_HK UTF-8 +yuw_PG UTF-8 +zh_CN.UTF-8 UTF-8 +zh_CN.GB18030 GB18030 +zh_CN.GBK GBK +zh_CN GB2312 +zh_HK.UTF-8 UTF-8 +zh_HK BIG5-HKSCS +zh_SG.UTF-8 UTF-8 +zh_SG.GBK GBK +zh_SG GB2312 +zh_TW.UTF-8 UTF-8 +zh_TW.EUC-TW EUC-TW +zh_TW BIG5 +zu_ZA.UTF-8 UTF-8 +zu_ZA ISO-8859-1 + diff --git a/teamcity-agent/run-agent.sh b/teamcity-agent/run-agent.sh new file mode 100755 index 000000000..a9ded1d14 --- /dev/null +++ b/teamcity-agent/run-agent.sh @@ -0,0 +1,90 @@ +#!/bin/bash + +check() { + if [[ $? != 0 ]]; then + echo "Error! Stopping the script." + exit 1 + fi +} + +configure() { + if [[ $# -gt 0 ]]; then + echo "run agent.sh configure $@" + ${AGENT_DIST}/bin/agent.sh configure "$@"; check + fi +} + +reconfigure() { + declare -a opts + [[ -n "${SERVER_URL}" ]] && opts[${#opts[@]}]='--server-url' && opts[${#opts[@]}]="$SERVER_URL" + [[ -n "${AGENT_TOKEN}" ]] && opts[${#opts[@]}]='--auth-token' && opts[${#opts[@]}]="$AGENT_TOKEN" + [[ -n "${AGENT_NAME}" ]] && opts[${#opts[@]}]='--name' && opts[${#opts[@]}]="$AGENT_NAME" + [[ -n "${OWN_ADDRESS}" ]] && opts[${#opts[@]}]='--ownAddress' && opts[${#opts[@]}]="$OWN_ADDRESS" + [[ -n "${OWN_PORT}" ]] && opts[${#opts[@]}]='--ownPort' && opts[${#opts[@]}]="$OWN_PORT" + if [[ 0 -ne "${#opts[@]}" ]]; then + # Using sed to strip double quotes produced by docker-compose + for i in $(seq 0 $(expr ${#opts[@]} - 1)); do + opts[$i]="$(echo "${opts[$i]}" | sed -e 's/""/"/g')" + done + configure "${opts[@]}" + echo "File buildAgent.properties was updated" + fi + for AGENT_OPT in ${AGENT_OPTS}; do + echo ${AGENT_OPT} >> ${CONFIG_DIR}/buildAgent.properties + done +} + +prepare_conf() { + echo "Will prepare agent config" ; + cp -p ${AGENT_DIST}/conf_dist/*.* ${CONFIG_DIR}/; check + cp -p ${CONFIG_DIR}/buildAgent.dist.properties ${CONFIG_DIR}/buildAgent.properties; check + reconfigure + echo "File buildAgent.properties was created and updated" ; +} + +AGENT_DIST=/opt/buildagent + +CONFIG_DIR=/data/teamcity_agent/conf + +LOG_DIR=/opt/buildagent/logs + + +rm -f ${LOG_DIR}/*.pid + +if [ -f ${CONFIG_DIR}/buildAgent.properties ] ; then + echo "File buildAgent.properties was found in ${CONFIG_DIR}" ; + reconfigure +else + echo "Will create new buildAgent.properties using distributive" ; + if [[ -n "${SERVER_URL}" ]]; then + echo "TeamCity URL is provided: ${SERVER_URL}" + else + echo "TeamCity URL is not provided, but is required." + exit 1 + fi + prepare_conf +fi + +if [ -z "$RUN_AS_BUILDAGENT" -o "$RUN_AS_BUILDAGENT" = "false" -o "$RUN_AS_BUILDAGENT" = "no" ]; then + ${AGENT_DIST}/bin/agent.sh start +else + echo "Make sure build agent directory ${AGENT_DIST} is owned by buildagent user" + chown -R buildagent:buildagent ${AGENT_DIST} + check; sync + + echo "Start build agent under buildagent user" + sudo -E -u buildagent HOME=/home/buildagent ${AGENT_DIST}/bin/agent.sh start +fi + + + +while [ ! -f ${LOG_DIR}/teamcity-agent.log ]; +do + echo -n "." + sleep 1 +done + +trap '${AGENT_DIST}/bin/agent.sh stop force; while ps -p $(cat $(ls -1 ${LOG_DIR}/*.pid)) &>/dev/null; do sleep 1; done; kill %%' SIGINT SIGTERM SIGHUP + +tail -qF ${LOG_DIR}/teamcity-agent.log & +wait diff --git a/teamcity-agent/run-docker.sh b/teamcity-agent/run-docker.sh new file mode 100755 index 000000000..41b5e68e5 --- /dev/null +++ b/teamcity-agent/run-docker.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +if [ "$DOCKER_IN_DOCKER" = "start" ] ; then + rm /var/run/docker.pid 2>/dev/null + service docker start + echo "Docker daemon started" +fi diff --git a/teamcity-agent/run-services.sh b/teamcity-agent/run-services.sh new file mode 100755 index 000000000..a574dd68a --- /dev/null +++ b/teamcity-agent/run-services.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +echo '/run-services.sh' + +for entry in /services/*.sh +do + if [[ -f "$entry" ]]; then + echo "$entry" + [[ ! -x "$entry" ]] && (chmod +x "$entry"; sync) + "$entry" + fi +done + +echo '/run-agent.sh' +exec '/run-agent.sh' diff --git a/teamcity-agent/sources.list b/teamcity-agent/sources.list new file mode 100644 index 000000000..04fb1840e --- /dev/null +++ b/teamcity-agent/sources.list @@ -0,0 +1,8 @@ +deb http://mirror.yandex.ru/debian/ sid main contrib non-free +deb-src http://mirror.yandex.ru/debian/ sid main contrib non-free +deb http://mirror.yandex.ru/debian/ testing-updates main contrib non-free +deb-src http://mirror.yandex.ru/debian/ testing-updates main contrib non-free +deb http://mirror.yandex.ru/debian/ testing-proposed-updates main contrib non-free +deb-src http://mirror.yandex.ru/debian/ testing-proposed-updates main contrib non-free +deb http://security.debian.org/debian-security/ testing-security main contrib non-free +deb-src http://security.debian.org/debian-security/ testing-security main contrib non-free