uses: actions/setup-python@v4
with:
python-version: "3.9"
+ -
+ name: Install jq
+ run: |
+ sudo apt-get update
+ sudo apt-get install jq
-
name: Setup qpdf image
id: qpdf-setup
echo ${build_json}
echo "jbig2enc-json=${build_json}" >> $GITHUB_OUTPUT
+ -
+ name: Setup other versions
+ id: cache-bust-setup
+ run: |
+ pillow_version=$(jq ".default.pillow.version" Pipfile.lock | sed 's/=//g' | sed 's/"//g')
+ lxml_version=$(jq ".default.lxml.version" Pipfile.lock | sed 's/=//g' | sed 's/"//g')
+
+ echo "Pillow is ${pillow_version}"
+ echo "lxml is ${lxml_version}"
+
+ echo "pillow-version=${pillow_version}" >> $GITHUB_OUTPUT
+ echo "lxml-version=${lxml_version}" >> $GITHUB_OUTPUT
outputs:
psycopg2-json: ${{ steps.psycopg2-setup.outputs.psycopg2-json }}
- jbig2enc-json: ${{ steps.jbig2enc-setup.outputs.jbig2enc-json}}
+ jbig2enc-json: ${{ steps.jbig2enc-setup.outputs.jbig2enc-json }}
+
+ pillow-version: ${{ steps.cache-bust-setup.outputs.pillow-version }}
+
+ lxml-version: ${{ steps.cache-bust-setup.outputs.lxml-version }}
build-qpdf-debs:
name: qpdf
REPO=${{ needs.prepare-docker-build.outputs.ghcr-repository }}
QPDF_VERSION=${{ fromJSON(needs.prepare-docker-build.outputs.qpdf-json).version }}
PIKEPDF_VERSION=${{ fromJSON(needs.prepare-docker-build.outputs.pikepdf-json).version }}
+ PILLOW_VERSION=${{ needs.prepare-docker-build.outputs.pillow-version }}
+ LXML_VERSION=${{ needs.prepare-docker-build.outputs.lxml-version }}
# Parse what we can from Pipfile.lock
pikepdf_version=$(jq ".default.pikepdf.version" Pipfile.lock | sed 's/=//g' | sed 's/"//g')
psycopg2_version=$(jq ".default.psycopg2.version" Pipfile.lock | sed 's/=//g' | sed 's/"//g')
+pillow_version=$(jq ".default.pillow.version" Pipfile.lock | sed 's/=//g' | sed 's/"//g')
# Read this from the other config file
qpdf_version=$(jq ".qpdf.version" .build-config.json | sed 's/"//g')
jbig2enc_version=$(jq ".jbig2enc.version" .build-config.json | sed 's/"//g')
--build-arg JBIG2ENC_VERSION="${jbig2enc_version}" \
--build-arg QPDF_VERSION="${qpdf_version}" \
--build-arg PIKEPDF_VERSION="${pikepdf_version}" \
+ --build-arg PILLOW_VERSION="${pillow_version}" \
--build-arg PSYCOPG2_VERSION="${psycopg2_version}" "${@:2}" .
+++ /dev/null
-# This Dockerfile compiles the frontend
-# Inputs: None
-
-FROM node:16-bullseye-slim AS compile-frontend
-
-COPY ./src /src/src
-COPY ./src-ui /src/src-ui
-
-WORKDIR /src/src-ui
-RUN set -eux \
- && npm update npm -g \
- && npm ci --omit=optional
-RUN set -eux \
- && ./node_modules/.bin/ng build --configuration production
ARG DEBIAN_FRONTEND=noninteractive
ARG PIKEPDF_VERSION
+# These not not used, but will still bust the cache if one changes
+# Otherwise, the main image will try to build thing (and fail)
+ARG PILLOW_VERSION
+ARG LXML_VERSION
ARG BUILD_PACKAGES="\
build-essential \