Skip to content
Extraits de code Groupes Projets
Valider 5348d74b rédigé par Théo - Le Filament's avatar Théo - Le Filament
Parcourir les fichiers

feat(build): script to retrieve addons and save commit hashes (backported from 16.0)

parent 90e14a14
Branches
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
FROM debian/eol:jessie FROM debian/eol:jessie
MAINTAINER Le Filament <https://le-filament.com> MAINTAINER Le Filament <https://le-filament.com>
ARG SAVE_COMMITS_DIR='/opt/odoo_commits/'
ENV APT_DEPS='python-dev build-essential libxml2-dev libxslt1-dev libjpeg-dev libfreetype6-dev \ ENV APT_DEPS='python-dev build-essential libxml2-dev libxslt1-dev libjpeg-dev libfreetype6-dev \
liblcms2-dev libopenjpeg-dev libtiff5-dev tk-dev tcl-dev linux-headers-amd64 \ liblcms2-dev libopenjpeg-dev libtiff5-dev tk-dev tcl-dev linux-headers-amd64 \
libpq-dev libldap2-dev libsasl2-dev' \ libpq-dev libldap2-dev libsasl2-dev' \
LANG=C.UTF-8 \ LANG=C.UTF-8 \
LC_ALL=C.UTF-8 \ LC_ALL=C.UTF-8 \
PGDATABASE=odoo PGDATABASE=odoo \
SAVE_COMMITS_DIR=$SAVE_COMMITS_DIR
RUN set -x; \ RUN set -x; \
sed -Ei 's@(^deb http://deb.debian.org/debian jessie-updates main$)@#\1@' /etc/apt/sources.list &&\ sed -Ei 's@(^deb http://deb.debian.org/debian jessie-updates main$)@#\1@' /etc/apt/sources.list &&\
...@@ -58,53 +60,62 @@ RUN set -x; \ ...@@ -58,53 +60,62 @@ RUN set -x; \
COPY ./ssh_known_git_hosts /root/.ssh/known_hosts COPY ./ssh_known_git_hosts /root/.ssh/known_hosts
# Install Odoo and remove not French translations and .git directory to limit amount of data used by container # Install Odoo and remove not French translations and .git directory to limit amount of data used by container
ARG SAVE_COMMITS_FILENAME='ocb'
RUN set -x; \ RUN set -x; \
useradd --create-home --home-dir /opt/odoo --no-log-init odoo &&\ repo='https://github.com/OCA/OCB' \
/bin/bash -c "mkdir -p /opt/odoo/{etc,odoo,additional_addons,private_addons,data,private}" &&\ && useradd --create-home --home-dir /opt/odoo --no-log-init odoo \
git clone -b 10.0 --depth 1 https://github.com/OCA/OCB.git /opt/odoo/odoo &&\ && /bin/bash -c "mkdir -p /opt/odoo/{etc,odoo,additional_addons,private_addons,data,private}" \
rm -rf /opt/odoo/odoo/.git &&\ && mkdir /opt/odoo_commits \
find /opt/odoo/odoo/addons/*/i18n/ /opt/odoo/odoo/odoo/addons/base/i18n/ -type f -not -name 'fr.po' -delete &&\ && git clone --single-branch --branch '16.0' --depth 1 "${repo}" /tmp/repo \
chown -R odoo:odoo /opt/odoo && commit="$(git -C /tmp/repo rev-parse HEAD)" \
&& mv /tmp/repo/* /opt/odoo/odoo/ \
&& echo "${repo};${commit}" > $SAVE_COMMITS_DIR/$SAVE_COMMITS_FILENAME \
&& rm -r /tmp/repo \
# Only keep French translations.
&& find /opt/odoo/odoo/addons/*/i18n/ /opt/odoo/odoo/odoo/addons/base/i18n/ -type f -not -name 'fr.po' -delete \
&& echo "info: OCB commit:" \
&& cat $SAVE_COMMITS_DIR/$SAVE_COMMITS_FILENAME
# Add script to download Odoo addons.
COPY --chown=root:root --chmod=755 ./get_addons /usr/local/bin
# Install Odoo OCA default dependencies # Install Odoo OCA default dependencies
ARG SAVE_COMMITS_FILENAME='default_addons'
RUN set -x; \ RUN set -x; \
mkdir -p /tmp/oca-repos/ &&\ get_addons 'https://github.com/OCA/account-financial-reporting' '10.0' 'additional_addons' \
git clone -b 10.0 --depth 1 https://github.com/OCA/account-financial-reporting.git /tmp/oca-repos/account-financial-reporting &&\ account_tax_balance \
mv /tmp/oca-repos/account-financial-reporting/account_tax_balance /opt/odoo/additional_addons/ &&\ && get_addons 'https://github.com/OCA/bank-statement-import' '10.0' 'additional_addons' \
git clone -b 10.0 --depth 1 https://github.com/OCA/bank-statement-import.git /tmp/oca-repos/bank-statement-import &&\ account_bank_statement_import_ofx \
mv /tmp/oca-repos/bank-statement-import/account_bank_statement_import_ofx \ account_bank_statement_import_qif \
/tmp/oca-repos/bank-statement-import/account_bank_statement_import_qif \ && get_addons 'https://github.com/OCA/knowledge' '10.0' 'additional_addons' \
/opt/odoo/additional_addons/ &&\ knowledge \
git clone -b 10.0 --depth 1 https://github.com/OCA/knowledge.git /tmp/oca-repos/knowledge &&\ document_page \
mv /tmp/oca-repos/knowledge/knowledge /tmp/oca-repos/knowledge/document_page /opt/odoo/additional_addons/ &&\ && get_addons 'https://github.com/OCA/partner-contact' '10.0' 'additional_addons' \
git clone -b 10.0 --depth 1 https://github.com/OCA/partner-contact.git /tmp/oca-repos/partner-contact &&\ partner_firstname \
mv /tmp/oca-repos/partner-contact/partner_firstname \ partner_disable_gravatar \
/tmp/oca-repos/partner-contact/partner_disable_gravatar \ && get_addons 'https://github.com/OCA/server-tools' '10.0' 'additional_addons' \
/opt/odoo/additional_addons/ &&\ date_range \
git clone -b 10.0 --depth 1 https://github.com/OCA/server-tools.git /tmp/oca-repos/server-tools &&\ auth_session_timeout \
mv /tmp/oca-repos/server-tools/date_range \ auth_brute_force \
/tmp/oca-repos/server-tools/auth_session_timeout \ password_security \
/tmp/oca-repos/server-tools/auth_brute_force \ && get_addons 'https://github.com/OCA/social' '10.0' 'additional_addons' \
/tmp/oca-repos/server-tools/password_security \ mail_debrand \
/opt/odoo/additional_addons/ &&\ mail_restrict_follower_selection \
git clone -b 10.0 --depth 1 https://github.com/OCA/social.git /tmp/oca-repos/social &&\ && get_addons 'https://github.com/OCA/web' '10.0' 'additional_addons' \
mv /tmp/oca-repos/social/mail_debrand \ web_environment_ribbon \
/tmp/oca-repos/social/mail_restrict_follower_selection \ web_export_view \
/opt/odoo/additional_addons/ &&\ web_responsive \
git clone -b 10.0 --depth 1 https://github.com/OCA/web.git /tmp/oca-repos/web &&\ web_timeline \
mv /tmp/oca-repos/web/web_environment_ribbon \ # Only keep French translations.
/tmp/oca-repos/web/web_export_view \ && find /opt/odoo/additional_addons/*/i18n/ -type f -not -name 'fr.po' -delete \
/tmp/oca-repos/web/web_responsive \ # Print modules and commits.
/tmp/oca-repos/web/web_timeline \ && echo "info: default addon commits:" \
/opt/odoo/additional_addons/ &&\ && cat $SAVE_COMMITS_DIR/$SAVE_COMMITS_FILENAME
rm -rf /tmp/oca-repos/ &&\
find /opt/odoo/additional_addons/*/i18n/ -type f -not -name 'fr.po' -delete &&\
chown -R odoo:odoo /opt/odoo
# Copy entrypoint script and Odoo configuration file # Copy entrypoint script and Odoo configuration file
COPY ./entrypoint.sh / COPY ./entrypoint.sh /
COPY ./odoo.conf /opt/odoo/etc/odoo.conf COPY ./odoo.conf /opt/odoo/etc/odoo.conf
RUN chown odoo:odoo /opt/odoo/etc/odoo.conf RUN chown -R odoo:odoo /opt/odoo
# Mount /opt/odoo/data to allow restoring filestore # Mount /opt/odoo/data to allow restoring filestore
VOLUME ["/opt/odoo/data/"] VOLUME ["/opt/odoo/data/"]
......
#!/bin/sh
set -e
ODOO_ROOT_DIR=${ODOO_ROOT_DIR:-'/opt/odoo'}
SAVE_COMMITS_DIR=${SAVE_COMMITS_DIR:-'/opt/odoo_commits'}
SAVE_COMMITS_FILENAME=${SAVE_COMMITS_FILENAME:-'custom_addons'}
save_commit() {
repo="$1"
commit="$2"
module="$3"
dst="$4"
echo "${repo};${commit};${module};${dst}" >> "${SAVE_COMMITS_DIR}/${SAVE_COMMITS_FILENAME}"
}
repo="$1"
shift
ref="$1"
shift
dst="$1"
shift
modules="$@"
git clone "${repo}" /tmp/repo
git -C /tmp/repo checkout "${ref}"
commit="$(git -C /tmp/repo rev-parse HEAD)"
if [ -n "$modules" ]; then
for module in $modules; do
mv "/tmp/repo/${module}" "${ODOO_ROOT_DIR}/${dst}/"
save_commit "$repo" "$commit" "$module" "$dst"
done
else
module="$(basename $dst)"
mkdir -p "/${ODOO_ROOT_DIR}/${dst}"
mv /tmp/repo/* "${ODOO_ROOT_DIR}/${dst}/"
save_commit "$repo" "$commit" "$module" "$dst"
fi
rm -r /tmp/repo
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter