| VERSION 0.8 |
| |
| APT_INSTALL: |
| FUNCTION |
| ARG PACKAGES |
| RUN \ |
| apt-get update && \ |
| apt-get install --no-install-recommends -y ${PACKAGES} && \ |
| apt-get clean && \ |
| rm -rf /var/lib/apt/lists/* |
| |
| DNF_INSTALL: |
| FUNCTION |
| ARG PACKAGES |
| RUN \ |
| dnf -y install \ |
| ${PACKAGES} \ |
| --setopt=install_weak_deps=False \ |
| --setopt=tsflags=nodocs && \ |
| dnf -y clean all && \ |
| rm -rf /var/cache/dnf |
| |
| CREATE_PROJECT_USER: |
| FUNCTION |
| ARG PROJECT |
| ARG SHELL=/usr/sbin/nologin |
| RUN \ |
| groupadd -g 42424 ${PROJECT} && \ |
| useradd -u 42424 -g 42424 -M -d /var/lib/${PROJECT} -s ${SHELL} -c "${PROJECT} User" ${PROJECT} && \ |
| mkdir -p /etc/${PROJECT} /var/log/${PROJECT} /var/lib/${PROJECT} /var/cache/${PROJECT} && \ |
| chown -Rv ${PROJECT}:${PROJECT} /etc/${PROJECT} /var/log/${PROJECT} /var/lib/${PROJECT} /var/cache/${PROJECT} |
| |
| fetch-gerrit-patch: |
| FROM ./base+image |
| DO +APT_INSTALL --PACKAGES "ca-certificates curl git jq" |
| ARG --required IMAGE |
| ARG PROJECT=${IMAGE} |
| ARG --required CHANGE |
| ARG PROJECT_REF=master |
| DO ./openstack-service+GIT_CHECKOUT \ |
| --PROJECT=${PROJECT} \ |
| --PROJECT_REF=${PROJECT_REF} |
| ARG REF=$(curl "https://review.opendev.org/changes/?q=${CHANGE}&o=CURRENT_REVISION" | tail -1 | jq -r '.[0].revisions[].ref') |
| COPY ${IMAGE}/patches/${PROJECT} /patches |
| RUN \ |
| git fetch https://review.opendev.org/openstack/${PROJECT} ${REF} && \ |
| git format-patch -1 --output-directory /gerrit FETCH_HEAD |
| ARG PATCH_ID=$(ls -1 /patches | wc -l | xargs printf "%04d") |
| RUN \ |
| cp /gerrit/0001-* \ |
| /patches/${PATCH_ID}-$(basename /gerrit/*.patch | sed 's/0001-//') |
| SAVE ARTIFACT /patches AS LOCAL ${IMAGE}/patches/${PROJECT} |