blob: ae4ab494dc4d729311563aaa1ca3da6ec320d17b [file] [log] [blame]
VERSION 0.8
PIP_INSTALL:
FUNCTION
ARG PACKAGES
RUN --mount=type=cache,target=/root/.cache \
/var/lib/openstack/bin/pip3 install \
--constraint /upper-constraints.txt \
${PACKAGES}
GIT_CHECKOUT:
FUNCTION
ARG PROJECT
ARG PROJECT_REPO=https://github.com/openstack/${PROJECT}
ARG PROJECT_REF
GIT CLONE --branch ${PROJECT_REF} ${PROJECT_REPO} /src
WORKDIR /src
RUN \
git remote set-url origin ${PROJECT_REPO} && \
git fetch --unshallow
COPY --if-exists patches/${PROJECT} /patches
IF [ -d /patches ]
RUN git apply --verbose /patches/*.patch
END
BUILD_VENV:
FUNCTION
ARG PROJECT
ARG PROJECT_REPO=https://github.com/openstack/${PROJECT}
ARG PROJECT_REF
DO +GIT_CHECKOUT \
--PROJECT=${PROJECT} \
--PROJECT_REPO=${PROJECT_REPO} \
--PROJECT_REF=${PROJECT_REF}
ARG EXTRAS=""
ARG PIP_PACKAGES=""
DO +PIP_INSTALL --PACKAGES "/src${EXTRAS} ${PIP_PACKAGES}"
SAVE ARTIFACT /var/lib/openstack venv
requirements:
FROM ../base+image
ARG RELEASE
IF [ "${RELEASE}" = "master" ]
ARG BRANCH=master
ELSE
ARG BRANCH=stable/${RELEASE}
END
GIT CLONE --branch ${BRANCH} https://github.com/openstack/requirements /src
RUN \
sed -i 's/cryptography===36.0.2/cryptography===42.0.4/' /src/upper-constraints.txt && \
sed -i 's/cryptography===40.0.2/cryptography===42.0.4/' /src/upper-constraints.txt && \
sed -i 's/cryptography===41.0.7/cryptography===42.0.4/' /src/upper-constraints.txt && \
sed -i 's/Django===3.2.18/Django===3.2.24/' /src/upper-constraints.txt && \
sed -i 's/Flask===2.2.3/Flask===2.2.5/' /src/upper-constraints.txt && \
sed -i 's/Jinja2===3.1.2/Jinja2===3.1.3/' /src/upper-constraints.txt && \
sed -i 's/paramiko===2.11.0/paramiko===3.4.0/' /src/upper-constraints.txt && \
sed -i 's/paramiko===3.1.0/paramiko===3.4.0/' /src/upper-constraints.txt && \
sed -i 's/pyOpenSSL===22.0.0/pyOpenSSL===24.0.0/' /src/upper-constraints.txt && \
sed -i 's/pyOpenSSL===23.1.1/pyOpenSSL===24.0.0/' /src/upper-constraints.txt && \
sed -i 's/requests===2.28.1/requests===2.31.0/' /src/upper-constraints.txt && \
sed -i 's/requests===2.28.2/requests===2.31.0/' /src/upper-constraints.txt && \
sed -i 's/sqlparse===0.4.2/sqlparse===0.4.4/' /src/upper-constraints.txt && \
sed -i 's/urllib3===1.26.12/urllib3===1.26.18/' /src/upper-constraints.txt && \
sed -i 's/urllib3===1.26.15/urllib3===1.26.18/' /src/upper-constraints.txt && \
sed -i 's/Werkzeug===2.2.3/Werkzeug===2.3.8/' /src/upper-constraints.txt && \
sed -i '/glance-store/d' /src/upper-constraints.txt && \
sed -i '/horizon/d' /src/upper-constraints.txt
SAVE ARTIFACT /src/upper-constraints.txt
builder:
ARG RELEASE
FROM ../cloud-archive-base+image --RELEASE=${RELEASE}
DO ../+APT_INSTALL --PACKAGES "\
build-essential \
curl \
git \
libldap2-dev \
libpcre3-dev \
libsasl2-dev \
libssl-dev \
lsb-release \
openssh-client \
python3 \
python3-dev \
python3-pip \
python3-venv"
RUN --mount type=cache,target=/root/.cache \
python3 -m venv --upgrade-deps --system-site-packages /var/lib/openstack
COPY \
(+requirements/upper-constraints.txt --RELEASE=${RELEASE}) \
/upper-constraints.txt
DO +PIP_INSTALL --PACKAGES "cryptography pymysql python-binary-memcached python-memcached uwsgi"
image:
ARG --required RELEASE
FROM ../cloud-archive-base+image --RELEASE=${RELEASE}
ENV PATH=/var/lib/openstack/bin:$PATH
ARG --required PROJECT
DO ../+CREATE_PROJECT_USER --PROJECT=${PROJECT}