@@ -469,6 +469,39 @@ RUN --mount=type=cache,target=/var/tmp/gradle \
469469FROM scratch AS ortbin
470470COPY --from=ortbuild /opt/ort /opt/ort
471471
472+ # ------------------------------------------------------------------------
473+ # Gleam
474+ FROM base AS gleambuild
475+
476+ ARG COSIGN_VERSION
477+ ARG GLEAM_VERSION
478+
479+ ENV GLEAM_HOME=/opt/gleam
480+
481+ # Download cosign binary, verify Gleam binary signature, then clean up
482+ RUN COSIGN_ARCH=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) \
483+ && curl -L "https://github.com/sigstore/cosign/releases/download/v${COSIGN_VERSION}/cosign-linux-${COSIGN_ARCH}" \
484+ -o /tmp/cosign \
485+ && chmod +x /tmp/cosign \
486+ && mkdir -p $GLEAM_HOME/bin \
487+ && ARCH=$(arch) \
488+ && curl -L "https://github.com/gleam-lang/gleam/releases/download/v${GLEAM_VERSION}/gleam-v${GLEAM_VERSION}-${ARCH}-unknown-linux-musl.tar.gz" \
489+ -o /tmp/gleam.tar.gz \
490+ && curl -L "https://github.com/gleam-lang/gleam/releases/download/v${GLEAM_VERSION}/gleam-v${GLEAM_VERSION}-${ARCH}-unknown-linux-musl.tar.gz.sigstore" \
491+ -o /tmp/gleam.sigstore \
492+ && /tmp/cosign verify-blob \
493+ --bundle /tmp/gleam.sigstore \
494+ --certificate-identity-regexp "^https://github.com/gleam-lang/gleam/.*@refs/tags/v${GLEAM_VERSION}$" \
495+ --certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
496+ /tmp/gleam.tar.gz \
497+ && tar -xzf /tmp/gleam.tar.gz -C $GLEAM_HOME/bin \
498+ && chmod a+x $GLEAM_HOME/bin/gleam \
499+ && rm /tmp/gleam.tar.gz /tmp/gleam.sigstore /tmp/cosign \
500+ && $GLEAM_HOME/bin/gleam --version
501+
502+ FROM scratch AS gleam
503+ COPY --from=gleambuild /opt/gleam /opt/gleam
504+
472505# ------------------------------------------------------------------------
473506# Container with minimal selection of supported package managers.
474507FROM base AS minimal-tools
@@ -595,6 +628,11 @@ RUN mkdir /opt/askalono && \
595628
596629ENV PATH=$PATH:/opt/askalono
597630
631+ # Gleam
632+ ENV GLEAM_HOME=/opt/gleam
633+ ENV PATH=$PATH:$GLEAM_HOME/bin
634+ COPY --from=gleam --chown=$USER:$USER $GLEAM_HOME $GLEAM_HOME
635+
598636# ------------------------------------------------------------------------
599637# Runtime container with minimal selection of supported package managers pre-installed.
600638FROM minimal-tools AS minimal
0 commit comments