mirror of
https://github.com/odoo/runbot.git
synced 2025-03-30 23:05:44 +07:00

In order to avoid bitbucket rate limiting, we prefer to download this old pal from our server.
152 lines
7.2 KiB
XML
152 lines
7.2 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<data>
|
|
|
|
<template id="runbot.docker_from">
|
|
FROM <t t-esc="values['from']"/>
|
|
ENV LANG C.UTF-8
|
|
USER root
|
|
</template>
|
|
|
|
<template id="runbot.docker_install_debs">
|
|
# Install debian packages
|
|
RUN set -x ; \
|
|
apt-get update \
|
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends <t t-esc="deb_packages or values['deb_packages']"/> \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
</template>
|
|
|
|
<template id="runbot.docker_install_chrome">
|
|
<t t-set="chrome_distrib" t-value="values.get('chrome_distrib')"/>
|
|
<t t-set="chrome_version" t-value="values['chrome_version']"/>
|
|
<t t-set="chrome_source" t-value="values.get('chrome_source')"/>
|
|
# Install Google Chrome
|
|
<t t-if="chrome_source == 'google'">
|
|
RUN curl -sSL https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_<t t-esc="chrome_version"/>_amd64.deb -o /tmp/chrome.deb \
|
|
&& apt-get update \
|
|
&& apt-get -y install --no-install-recommends /tmp/chrome.deb \
|
|
&& rm /tmp/chrome.deb
|
|
</t>
|
|
<t t-else="">
|
|
RUN curl -sSL http://nightly.odoo.com/odoo.key | apt-key add - \
|
|
&& echo "deb http://nightly.odoo.com/deb/<t t-esc="chrome_distrib"/> ./" > /etc/apt/sources.list.d/google-chrome.list \
|
|
&& apt-get update \
|
|
&& apt-get install -y -qq google-chrome-stable=<t t-esc="chrome_version"/> \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
</t>
|
|
</template>
|
|
|
|
<template id="runbot.docker_install_phantomjs">
|
|
# Install phantomjs
|
|
RUN curl -sSL https://nightly.odoo.com/resources/phantomjs.tar.bz2 -o /tmp/phantomjs.tar.bz2 \
|
|
&& tar xvfO /tmp/phantomjs.tar.bz2 phantomjs-2.1.1-linux-x86_64/bin/phantomjs > /usr/local/bin/phantomjs \
|
|
&& chmod +x /usr/local/bin/phantomjs \
|
|
&& rm -f /tmp/phantomjs.tar.bz2
|
|
</template>
|
|
|
|
<template id="runbot.docker_install_wkhtml">
|
|
# Install wkhtml
|
|
RUN curl -sSL <t t-esc="values['wkhtml_url']"/> -o /tmp/wkhtml.deb \
|
|
&& apt-get update \
|
|
&& dpkg --force-depends -i /tmp/wkhtml.deb \
|
|
&& apt-get install -y -f --no-install-recommends \
|
|
&& rm /tmp/wkhtml.deb
|
|
</template>
|
|
|
|
<template id="runbot.docker_install_nodejs">
|
|
<t t-set="node_version" t-value="node_version or '15'"/>
|
|
# Install nodejs
|
|
RUN curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - \
|
|
&& echo "deb https://deb.nodesource.com/node_<t t-esc="values['node_version']"/>.x `lsb_release -c -s` main" > /etc/apt/sources.list.d/nodesource.list \
|
|
&& apt-get update \
|
|
&& apt-get install -y nodejs
|
|
</template>
|
|
|
|
<template id="runbot.docker_install_node_packages">
|
|
RUN npm install -g <t t-esc="values['node_packages']"/>
|
|
</template>
|
|
|
|
<template id="runbot.docker_install_flamegraph">
|
|
ADD https://raw.githubusercontent.com/brendangregg/FlameGraph/master/flamegraph.pl /usr/local/bin/flamegraph.pl
|
|
RUN chmod +rx /usr/local/bin/flamegraph.pl
|
|
</template>
|
|
|
|
<template id="runbot.docker_install_psql">
|
|
<t t-set="psql_version" t-value="psql_version or False"/>
|
|
RUN curl -sSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \
|
|
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -s -c`-pgdg main" > /etc/apt/sources.list.d/pgclient.list \
|
|
&& apt-get update \
|
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y postgresql-client<t t-if="values['psql_version']">-</t><t t-esc="values['psql_version']"/> \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
</template>
|
|
|
|
<template id="runbot.docker_install_odoo_debs">
|
|
<t t-set="odoo_branch" t-value="odoo_branch or 'master'"/>
|
|
ADD https://raw.githubusercontent.com/odoo/odoo/<t t-esc="values['odoo_branch']"/>/debian/control /tmp/control.txt
|
|
RUN apt-get update \
|
|
&& sed -n '/^Depends:/,/^[A-Z]/p' /tmp/control.txt \
|
|
| awk '/^ [a-z]/ { gsub(/,/,"") ; print $1 }' | sort -u \
|
|
| egrep -v 'postgresql-client' \
|
|
| sed 's/python-imaging/python-pil/'| sed 's/python-pypdf/python-pypdf2/' \
|
|
| DEBIAN_FRONTEND=noninteractive xargs apt-get install -y -qq \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
</template>
|
|
|
|
<template id="runbot.docker_install_odoo_python_requirements">
|
|
ADD https://raw.githubusercontent.com/odoo/odoo/<t t-esc="values['odoo_branch']"/>/requirements.txt /root/requirements.txt
|
|
RUN <t t-esc="values['python_version']"/> -m pip install --no-cache-dir setuptools wheel && \
|
|
<t t-esc="values['python_version']"/> -m pip install --no-cache-dir -r /root/requirements.txt && \
|
|
<t t-esc="values['python_version']"/> -m pip install --no-cache-dir <t t-esc="values['additional_pip']"/>
|
|
</template>
|
|
|
|
<template id="runbot.docker_install_runbot_python_requirements">
|
|
RUN <t t-esc="values['python_version']"/> -m pip install --no-cache-dir setuptools wheel && \
|
|
<t t-esc="values['python_version']"/> -m pip install <t t-esc="values['runbot_pip']"/>
|
|
</template>
|
|
|
|
|
|
<template id="runbot.docker_base">
|
|
<t t-set="default" t-value="{
|
|
'from': 'ubuntu:focal',
|
|
'odoo_branch': 'master',
|
|
'chrome_source': 'google',
|
|
'chrome_version': '90.0.4430.93-1',
|
|
'node_packages': 'rtlcss es-check eslint',
|
|
'node_version': '15',
|
|
'psql_version': '12',
|
|
'wkhtml_url': 'https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb',
|
|
'chrome': True,
|
|
'phantom': False,
|
|
'do_requirements': True,
|
|
'python_version': 'python3',
|
|
'deb_packages_python': 'python3 python3-dbfread python3-dev python3-pip python3-setuptools python3-wheel python3-markdown python3-mock python3-phonenumbers python3-vatnumber python3-websocket libpq-dev',
|
|
'deb_package_default': 'apt-transport-https build-essential ca-certificates curl ffmpeg file fonts-freefont-ttf fonts-noto-cjk gawk gnupg gsfonts libldap2-dev libjpeg9-dev libsasl2-dev libxslt1-dev lsb-release node-less ocrmypdf sed sudo unzip xfonts-75dpi zip zlib1g-dev',
|
|
'additional_pip': 'ebaysdk==2.1.5 pdf417gen==0.7.1',
|
|
'runbot_pip': 'coverage==4.5.4 astroid==2.4.2 pylint==2.5.0 flamegraph'
|
|
}"/>
|
|
<t t-set="values" t-value="default"/>
|
|
<t t-set="dummy" t-value="values.update(custom_values)" t-if="custom_values" />
|
|
|
|
<t t-call="runbot.docker_from"/>
|
|
<t t-call="runbot.docker_install_debs">
|
|
<t t-set="deb_packages" t-value="values['deb_package_default']"/>
|
|
</t>
|
|
<t t-call="runbot.docker_install_debs">
|
|
<t t-set="deb_packages" t-value="values['deb_packages_python']"/>
|
|
</t>
|
|
<t t-out="0"/><!-- custom content from caller t-call-->
|
|
<t t-call="runbot.docker_install_wkhtml"/>
|
|
<t t-call="runbot.docker_install_nodejs"/>
|
|
<t t-call="runbot.docker_install_node_packages"/>
|
|
<t t-call="runbot.docker_install_flamegraph"/>
|
|
<t t-call="runbot.docker_install_odoo_debs"/>
|
|
<t t-call="runbot.docker_install_runbot_python_requirements"/>
|
|
<t t-call="runbot.docker_install_psql"/>
|
|
<t t-if="values['chrome']" t-call="runbot.docker_install_chrome"/>
|
|
<t t-if="values['phantom']" t-call="runbot.docker_install_phantomjs"/>
|
|
<t t-if="values['do_requirements']" t-call="runbot.docker_install_odoo_python_requirements"/>
|
|
</template>
|
|
</data>
|
|
</odoo>
|