| 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.0/' /src/upper-constraints.txt && \ |
| sed -i 's/cryptography===40.0.2/cryptography===42.0.0/' /src/upper-constraints.txt && \ |
| sed -i 's/cryptography===41.0.7/cryptography===42.0.0/' /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} |