diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index fad9ee9..6753b7d 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -74,6 +74,15 @@ jobs: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: Run automation script + uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 + id: updt + with: + result-encoding: string + script: | + const { default: script } = await import(`${process.env.GITHUB_WORKSPACE}/build-automation.mjs`); + return script(github); + - name: Build image uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6.19.2 with: diff --git a/8.4/Dockerfile b/8.4/Dockerfile index 7884ed9..ed8fca1 100644 --- a/8.4/Dockerfile +++ b/8.4/Dockerfile @@ -37,7 +37,7 @@ WORKDIR /app ENV NODE_ENV=production -ENV RC_VERSION=8.4.1 +ENV RC_VERSION=8.4.0 RUN set -eux \ && apt-get update \ diff --git a/build-automation.mjs b/build-automation.mjs index fd2331f..6927bab 100644 --- a/build-automation.mjs +++ b/build-automation.mjs @@ -70,7 +70,7 @@ export default async function(github) { const { data: info } = await github.request(`https://releases.rocket.chat/${fullVersion}/info`); - const { nodeVersion } = info; + const { nodeVersion, denoVersion } = info; const nodeMajor = nodeVersion.replace(/([0-9]+)\..*/, '$1'); @@ -78,6 +78,7 @@ export default async function(github) { await exec(`sed -ri 's/^(ENV RC_VERSION=).*/\\1'"${fullVersion}"'/;' ${minor}/Dockerfile`, { shell: "bash" }); await exec(`sed -ri 's/^(ENV NODE_VERSION=).*/\\1'"${nodeVersion}"'/;' ${minor}/Dockerfile`, { shell: "bash" }); + await exec(`sed -ri 's/^(ENV DENO_VERSION=).*/\\1'"${denoVersion}"'/;' ${minor}/Dockerfile`, { shell: "bash" }); } return newVersions; diff --git a/templates/node22/Dockerfile b/templates/node22/Dockerfile index ec5425d..fa68e91 100644 --- a/templates/node22/Dockerfile +++ b/templates/node22/Dockerfile @@ -1,6 +1,8 @@ FROM node:22-bookworm-slim ENV DENO_VERSION=1.43.5 +# Digest for zip version 1.43.5 is not available in the release assets, so we keep it hardcoded as a fallback +ENV DENO_LEGACY_DIGEST='246bf818932c5e11adb85afaaf3c90e65d5cbe14bcaa8ea14d35fc085869775d' RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ && case "${dpkgArch##*-}" in \ @@ -10,10 +12,12 @@ RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ esac \ && set -ex \ && apt-get update && apt-get install -y --no-install-recommends ca-certificates curl unzip && rm -rf /var/lib/apt/lists/* \ - && curl -fsSL https://dl.deno.land/release/v${DENO_VERSION}/deno-${ARCH}-unknown-linux-gnu.zip --output /tmp/deno-${ARCH}-unknown-linux-gnu.zip \ - && echo "246bf818932c5e11adb85afaaf3c90e65d5cbe14bcaa8ea14d35fc085869775d /tmp/deno-x86_64-unknown-linux-gnu.zip" | sha256sum -c - \ - && unzip /tmp/deno-${ARCH}-unknown-linux-gnu.zip -d /tmp \ - && rm /tmp/deno-${ARCH}-unknown-linux-gnu.zip \ + && DENO_ZIP_NAME=deno-${ARCH}-unknown-linux-gnu.zip \ + && DENO_DIGEST=$( (curl -fs https://dl.deno.land/release/v${DENO_VERSION}/${DENO_ZIP_NAME}.sha256sum || echo ${DENO_LEGACY_DIGEST}) | awk '{print $1}') \ + && curl -fsSL https://dl.deno.land/release/v${DENO_VERSION}/${DENO_ZIP_NAME} --output /tmp/${DENO_ZIP_NAME} \ + && echo "${DENO_DIGEST} /tmp/${DENO_ZIP_NAME}" | sha256sum -c - \ + && unzip /tmp/${DENO_ZIP_NAME} -d /tmp \ + && rm /tmp/${DENO_ZIP_NAME} \ && chmod 755 /tmp/deno \ && mv /tmp/deno /usr/local/bin/deno \ && apt-mark auto '.*' > /dev/null \