* sorted version to build files

* sorted version to build files

* removed dotnet 7 tests

* modifed constants.yml

* modifed constants.yml

* modified jamstack file

* modified jamstack file

* modified jamstack file

* removed php tests

* added phpTestBase in fpm tests
This commit is contained in:
Saipriya-1144 2024-09-12 15:30:16 +05:30 коммит произвёл GitHub
Родитель e0d4b7c270
Коммит 711771385c
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
21 изменённых файлов: 100 добавлений и 1055 удалений

Просмотреть файл

@ -110,9 +110,9 @@ RUN set -ex \
&& mkdir -p /links \
&& cp -s /opt/yarn/stable/bin/yarn /opt/yarn/stable/bin/yarnpkg /links
ARG PYTHON38_VERSION
ENV PYTHON38_VERSION ${PYTHON38_VERSION}
COPY python-${DEBIAN_FLAVOR}-${PYTHON38_VERSION}.tar.gz .
ARG python38Version
ENV python38Version ${python38Version}
COPY python-${DEBIAN_FLAVOR}-${python38Version}.tar.gz .
RUN set -e \
# Install Python SDKs
@ -126,14 +126,14 @@ RUN set -e \
&& pip3 install pip --upgrade \
&& pip install --upgrade cython \
&& pip3 install --upgrade cython \
&& mkdir -p /opt/python/${PYTHON38_VERSION} \
&& tar -xzf python-${DEBIAN_FLAVOR}-${PYTHON38_VERSION}.tar.gz -C /opt/python/${PYTHON38_VERSION} \
&& rm python-${DEBIAN_FLAVOR}-${PYTHON38_VERSION}.tar.gz \
&& [ -d "/opt/python/$PYTHON38_VERSION" ] && echo /opt/python/$PYTHON38_VERSION/lib >> /etc/ld.so.conf.d/python.conf \
&& mkdir -p /opt/python/${python38Version} \
&& tar -xzf python-${DEBIAN_FLAVOR}-${python38Version}.tar.gz -C /opt/python/${python38Version} \
&& rm python-${DEBIAN_FLAVOR}-${python38Version}.tar.gz \
&& [ -d "/opt/python/$python38Version" ] && echo /opt/python/$python38Version/lib >> /etc/ld.so.conf.d/python.conf \
&& ldconfig \
&& cd /opt/python \
&& ln -s $PYTHON38_VERSION 3.8 \
&& ln -s $PYTHON38_VERSION latest \
&& ln -s $PYTHON38_VERSION stable \
&& ln -s $python38Version 3.8 \
&& ln -s $python38Version latest \
&& ln -s $python38Version stable \
&& echo "jamstack" > /opt/oryx/.imagetype \
&& echo "DEBIAN|${DEBIAN_FLAVOR}" | tr '[a-z]' '[A-Z]' > /opt/oryx/.ostype

Просмотреть файл

@ -22,15 +22,27 @@ variables:
php81DebianFlavors: bullseye,buster
php82DebianFlavors: bullseye,buster
php83DebianFlavors: bullseye,buster,bookworm
debianFlavors: 'buster,bullseye,bookworm'
dotnetDebianFlavors: 'bookworm,bullseye,buster'
nodejsDebianFlavors: 'bookworm,bullseye'
phpDebianFlavors: 'bookworm,bullseye,buster'
pythonDebianFlavors: 'bookworm,bullseye,buster'
debianFlavors: buster,bullseye,bookworm
dotnetDebianFlavors: bookworm,bullseye,buster
nodejsDebianFlavors: bookworm,bullseye
phpDebianFlavors: bookworm,bullseye,buster
pythonDebianFlavors: bookworm,bullseye,buster
cliDebianFlavors: buster,bullseye
cliBuilderDebianFlavors: buster,bullseye
fullDebianFlavors: buster,bullseye
jamstackDebianFlavors: buster,bullseye
DotNetCoreAgent_version: 2.8.42
GitHubActions_BaseImage_Buster: mcr.microsoft.com/mirror/docker/library/buildpack-deps@sha256:be7137ba47bdf421d3950abe1200322631e8db11b468cd6f0ebf3d687e556c90
GitHubActions_BaseImage_Bullseye: mcr.microsoft.com/mirror/docker/library/buildpack-deps@sha256:25c86292946cce832340fe808ac47e5a845b68c488f177a47ff44fd59040397d
GitHubActions_BaseImage_Bookworm: mcr.microsoft.com/mirror/docker/library/buildpack-deps@sha256:ff838f535d6e3bace9ab7eefa360d648ba529f9aa57fdd709335f8ef0516cdde
php81_GPG_keys: 528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544
php82_GPG_keys: 1198C0117593497A5EC5C199286AF1F9897469DC 39B641343D8C104B2B146DC3F9C39DC0B9698544
php83_GPG_keys: 1198C0117593497A5EC5C199286AF1F9897469DC AFD8691FDAEDF03BDF6E460563F15A9B715376CA
python310_GPG_keys: A035C8C19219BA821ECEA86B64E628F8D684696D
python311_GPG_keys: A035C8C19219BA821ECEA86B64E628F8D684696D
python312_GPG_keys: 7169605F62C751356D054A26A821E680E5FA6305
python38_GPG_keys: E3FF2839C048B25C084DEBE9B26995E310250568
python39_GPG_keys: E3FF2839C048B25C084DEBE9B26995E310250568
ASPNET_CORE_APP_60: 6.0.32
ASPNET_CORE_APP_60_SHA: 1849c0073f12477b94357a1afb1cbd4ad67764263528b66037c19d554df41e681e4b41c0804b106319fe661d0bc3bae9e29e4913c0d0df33861cf6f32ebaac96
ASPNET_CORE_APP_70: 7.0.20

Просмотреть файл

@ -1,108 +0,0 @@
# dotnet tools are currently available as part of SDK so we need to create them in an sdk image
# and copy them to our final runtime image
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS tools-install
RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-sos
RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-trace
RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-dump
RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-counters
RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-gcdump
RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-monitor --version 7.*
# Startup script generator
FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-bullseye as startupCmdGen
# GOPATH is set to "/go" in the base image
WORKDIR /go/src
COPY src/startupscriptgenerator/src .
ARG GIT_COMMIT=unspecified
ARG BUILD_NUMBER=unspecified
ARG RELEASE_TAG_NAME=unspecified
ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME}
ENV GIT_COMMIT=${GIT_COMMIT}
ENV BUILD_NUMBER=${BUILD_NUMBER}
#Bake in client certificate path into image to avoid downloading it
ENV PATH_CA_CERTIFICATE="/etc/ssl/certs/ca-certificate.crt"
RUN chmod +x build.sh && ./build.sh dotnetcore /opt/startupcmdgen/startupcmdgen
FROM mcr.microsoft.com/mirror/docker/library/debian:bullseye-slim
ARG BUILD_DIR=/tmp/oryx/build
ADD build ${BUILD_DIR}
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
\
# .NET Core dependencies
libc6 \
libgcc1 \
libgssapi-krb5-2 \
libicu67 \
libssl1.1 \
libstdc++6 \
zlib1g \
lldb \
curl \
file \
libgdiplus \
&& apt-get upgrade --assume-yes \
&& rm -rf /var/lib/apt/lists/*
# Configure web servers to bind to port 80 when present
ENV ASPNETCORE_URLS=http://+:80 \
# Enable detection of running in a container
DOTNET_RUNNING_IN_CONTAINER=true \
PATH="/opt/dotnetcore-tools:${PATH}"
COPY --from=tools-install /dotnetcore-tools /opt/dotnetcore-tools
ARG NET_CORE_APP_70_SHA
ARG ASPNET_CORE_APP_70_SHA
ARG NET_CORE_APP_70
ARG ASPNET_CORE_APP_70
# Install .NET Core
RUN set -ex \
&& curl -SL --output dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Runtime/$NET_CORE_APP_70/dotnet-runtime-$NET_CORE_APP_70-linux-x64.tar.gz \
&& echo "$NET_CORE_APP_70_SHA dotnet.tar.gz" | sha512sum -c - \
&& mkdir -p /usr/share/dotnet \
&& tar -zxf dotnet.tar.gz -C /usr/share/dotnet \
&& rm dotnet.tar.gz \
&& ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet \
# Install ASP.NET Core
&& curl -SL --output aspnetcore.tar.gz https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/$ASPNET_CORE_APP_70/aspnetcore-runtime-$ASPNET_CORE_APP_70-linux-x64.tar.gz \
&& echo "$ASPNET_CORE_APP_70_SHA aspnetcore.tar.gz" | sha512sum -c - \
&& mkdir -p /usr/share/dotnet \
&& tar -zxf aspnetcore.tar.gz -C /usr/share/dotnet ./shared/Microsoft.AspNetCore.App \
&& rm aspnetcore.tar.gz \
&& dotnet-sos install \
&& rm -rf ${BUILD_DIR}
# Bake Application Insights key from pipeline variable into final image
ARG AI_CONNECTION_STRING
ARG USER_DOTNET_AI_VERSION
ENV USER_DOTNET_AI_VERSION=${USER_DOTNET_AI_VERSION}
ENV ORYX_AI_CONNECTION_STRING=${AI_CONNECTION_STRING}
ENV DOTNET_VERSION="7.0"
ENV ASPNETCORE_LOGGING__CONSOLE__DISABLECOLORS=true
#Bake in client certificate path into image to avoid downloading it
ENV PATH_CA_CERTIFICATE="/etc/ssl/certs/ca-certificate.crt"
ENV LANG="C.UTF-8" \
LANGUAGE="C.UTF-8" \
LC_ALL="C.UTF-8"
# Oryx++ Builder variables
ENV CNB_STACK_ID="oryx.stacks.skeleton"
LABEL io.buildpacks.stack.id="oryx.stacks.skeleton"
COPY --from=startupCmdGen /opt/startupcmdgen/startupcmdgen /opt/startupcmdgen/startupcmdgen
COPY DotNetCoreAgent.${USER_DOTNET_AI_VERSION}.zip /DotNetCoreAgent/appinsights.zip
RUN set -e \
&& echo $USER_DOTNET_AI_VERSION \
&& ln -s /opt/startupcmdgen/startupcmdgen /usr/local/bin/oryx \
&& apt-get update \
&& apt-get install unzip -y \
&& apt-get upgrade --assume-yes \
&& cd DotNetCoreAgent \
&& unzip appinsights.zip && rm appinsights.zip

Просмотреть файл

@ -1,111 +0,0 @@
# dotnet tools are currently available as part of SDK so we need to create them in an sdk image
# and copy them to our final runtime image
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS tools-install
RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-sos
RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-trace
RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-dump
RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-counters
RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-gcdump
RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-monitor --version 7.*
# Startup script generator
FROM mcr.microsoft.com/oss/go/microsoft/golang:1.20-buster as startupCmdGen
# GOPATH is set to "/go" in the base image
WORKDIR /go/src
COPY src/startupscriptgenerator/src .
ARG GIT_COMMIT=unspecified
ARG BUILD_NUMBER=unspecified
ARG RELEASE_TAG_NAME=unspecified
ENV RELEASE_TAG_NAME=${RELEASE_TAG_NAME}
ENV GIT_COMMIT=${GIT_COMMIT}
ENV BUILD_NUMBER=${BUILD_NUMBER}
#Bake in client certificate path into image to avoid downloading it
ENV PATH_CA_CERTIFICATE="/etc/ssl/certs/ca-certificate.crt"
RUN chmod +x build.sh && ./build.sh dotnetcore /opt/startupcmdgen/startupcmdgen
FROM mcr.microsoft.com/mirror/docker/library/debian:buster-slim
ARG BUILD_DIR=/tmp/oryx/build
ADD build ${BUILD_DIR}
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
# .NET Core dependencies
libc6 \
libgcc1 \
libgssapi-krb5-2 \
libicu63 \
libssl1.1 \
libstdc++6 \
zlib1g \
lldb \
curl \
file \
libgdiplus \
&& apt-get upgrade --assume-yes \
&& rm -rf /var/lib/apt/lists/*
# Configure web servers to bind to port 80 when present
ENV ASPNETCORE_URLS=http://+:80 \
# Enable detection of running in a container
DOTNET_RUNNING_IN_CONTAINER=true \
PATH="/opt/dotnetcore-tools:${PATH}"
COPY --from=tools-install /dotnetcore-tools /opt/dotnetcore-tools
ARG NET_CORE_APP_70_SHA
ARG ASPNET_CORE_APP_70_SHA
ARG NET_CORE_APP_70
ARG ASPNET_CORE_APP_70
# Install .NET Core
RUN set -ex \
# based on resolution on https://github.com/NuGet/Announcements/issues/49#issue-795386700
&& apt-get remove ca-certificates -y \
&& apt-get purge ca-certificates -y \
&& apt-get update \
&& apt-get install -f ca-certificates=20200601~deb10u2 -y --no-install-recommends \
&& curl -SL --output dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Runtime/$NET_CORE_APP_70/dotnet-runtime-$NET_CORE_APP_70-linux-x64.tar.gz \
&& echo "$NET_CORE_APP_70_SHA dotnet.tar.gz" | sha512sum -c - \
&& mkdir -p /usr/share/dotnet \
&& tar -zxf dotnet.tar.gz -C /usr/share/dotnet \
&& rm dotnet.tar.gz \
&& ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet \
# Install ASP.NET Core
&& curl -SL --output aspnetcore.tar.gz https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/$ASPNET_CORE_APP_70/aspnetcore-runtime-$ASPNET_CORE_APP_70-linux-x64.tar.gz \
&& echo "$ASPNET_CORE_APP_70_SHA aspnetcore.tar.gz" | sha512sum -c - \
&& mkdir -p /usr/share/dotnet \
&& tar -zxf aspnetcore.tar.gz -C /usr/share/dotnet ./shared/Microsoft.AspNetCore.App \
&& rm aspnetcore.tar.gz \
&& dotnet-sos install \
&& rm -rf ${BUILD_DIR}
# Bake Application Insights key from pipeline variable into final image
ARG AI_CONNECTION_STRING
ARG USER_DOTNET_AI_VERSION
ENV USER_DOTNET_AI_VERSION=${USER_DOTNET_AI_VERSION}
ENV ORYX_AI_CONNECTION_STRING=${AI_CONNECTION_STRING}
ENV DOTNET_VERSION="7.0"
ENV ASPNETCORE_LOGGING__CONSOLE__DISABLECOLORS=true
#Bake in client certificate path into image to avoid downloading it
ENV PATH_CA_CERTIFICATE="/etc/ssl/certs/ca-certificate.crt"
ENV LANG="C.UTF-8" \
LANGUAGE="C.UTF-8" \
LC_ALL="C.UTF-8"
# Oryx++ Builder variables
ENV CNB_STACK_ID="oryx.stacks.skeleton"
LABEL io.buildpacks.stack.id="oryx.stacks.skeleton"
COPY --from=startupCmdGen /opt/startupcmdgen/startupcmdgen /opt/startupcmdgen/startupcmdgen
COPY DotNetCoreAgent.${USER_DOTNET_AI_VERSION}.zip /DotNetCoreAgent/appinsights.zip
RUN set -e \
&& echo $USER_DOTNET_AI_VERSION \
&& ln -s /opt/startupcmdgen/startupcmdgen /usr/local/bin/oryx \
&& apt-get update \
&& apt-get install unzip -y \
&& apt-get upgrade --assume-yes \
&& cd DotNetCoreAgent \
&& unzip appinsights.zip && rm appinsights.zip

Просмотреть файл

@ -22,20 +22,19 @@ variables:
php81DebianFlavors: bullseye,buster
php82DebianFlavors: bullseye,buster
php83DebianFlavors: bullseye,buster,bookworm
debianFlavors: 'buster,bullseye,bookworm'
dotnetDebianFlavors: 'bookworm,bullseye,buster'
nodejsDebianFlavors: 'bookworm,bullseye'
phpDebianFlavors: 'bookworm,bullseye,buster'
pythonDebianFlavors: 'bookworm,bullseye,buster'
debianFlavors: buster,bullseye,bookworm
dotnetDebianFlavors: bookworm,bullseye,buster
nodejsDebianFlavors: bookworm,bullseye
phpDebianFlavors: bookworm,bullseye,buster
pythonDebianFlavors: bookworm,bullseye,buster
cliDebianFlavors: buster,bullseye
cliBuilderDebianFlavors: buster,bullseye
fullDebianFlavors: buster,bullseye
jamstackDebianFlavors: buster,bullseye
DotNetCoreAgent_version: 2.8.42
GitHubActions_BaseImage_Buster: mcr.microsoft.com/mirror/docker/library/buildpack-deps@sha256:be7137ba47bdf421d3950abe1200322631e8db11b468cd6f0ebf3d687e556c90
GitHubActions_BaseImage_Bullseye: mcr.microsoft.com/mirror/docker/library/buildpack-deps@sha256:25c86292946cce832340fe808ac47e5a845b68c488f177a47ff44fd59040397d
GitHubActions_BaseImage_Bookworm: mcr.microsoft.com/mirror/docker/library/buildpack-deps@sha256:ff838f535d6e3bace9ab7eefa360d648ba529f9aa57fdd709335f8ef0516cdde
debianFlavors: 'buster,bullseye,bookworm'
dotnetDebianFlavors: 'bookworm,bullseye,buster'
nodejsDebianFlavors: 'bookworm,bullseye'
phpDebianFlavors: 'bookworm,bullseye,buster'
pythonDebianFlavors: 'bookworm,bullseye,buster'
php81_GPG_keys: '528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544'
php82_GPG_keys: '1198C0117593497A5EC5C199286AF1F9897469DC 39B641343D8C104B2B146DC3F9C39DC0B9698544'
php83_GPG_keys: '1198C0117593497A5EC5C199286AF1F9897469DC AFD8691FDAEDF03BDF6E460563F15A9B715376CA'
@ -43,4 +42,4 @@ variables:
python311_GPG_keys: 'A035C8C19219BA821ECEA86B64E628F8D684696D'
python312_GPG_keys: '7169605F62C751356D054A26A821E680E5FA6305'
python38_GPG_keys: 'E3FF2839C048B25C084DEBE9B26995E310250568'
python39_GPG_keys: 'E3FF2839C048B25C084DEBE9B26995E310250568'
python39_GPG_keys: 'E3FF2839C048B25C084DEBE9B26995E310250568'

Просмотреть файл

@ -1,4 +1,3 @@
# NOTE: Make sure to set the default version in 'defaultVersion.txt' file
# version, sha, download url
6.0.415, b1a3f84b50faf5840f5151bc8e41550f4c5828ea6a8df472e802fae8a00dca1a141ae620e2c20eec90935c322bc1fb082b38dee90a625766df1ec66b0f640d02,
@ -11,6 +10,7 @@
7.0.403, 2e96fa4ee32885a4433be12aac0e10998f9e7f0fe4791f33cd31966c0e0d345d978514787a36c5f0f43c7754e9639a5d52fc96c9f44cf56c0cfc9a8ad2620dd6,
7.0.404, f5c122044e9a107968af1a534051e28242f45307c3db760fbb4f3a003d92d8ea5a856ad4c4e8e4b88a3b6a825fe5e3c9e596c9d2cfa0eca8d5d9ee2c5dad0053,
7.0.410, 20b8e02979328e4c4a14493f7791ed419aabd0175233db80cd60e2c004b829b3e8301281ea86b27ba818372473accf5a6d553e5354c54917c8e84d25f5855caa,
8.0.100, 13905ea20191e70baeba50b0e9bbe5f752a7c34587878ee104744f9fb453bfe439994d38969722bdae7f60ee047d75dda8636f3ab62659450e9cd4024f38b2a5, https://dotnetcli.blob.core.windows.net/dotnet-private/Internal/8.0.0/dotnet-sdk-8.0.100-linux-x64.tar.gz,
8.0.100-preview.1.23115.2, 23a14c92e402161ed8d42ec9cb25a97868a1b72348195d28cffa00a12815f019308b56485e4375c0d0a33d9a683d83cc1e1a2a517eea44af8fb353171b6c3f64,
8.0.100-preview.2.23157.25, 97302c3600af7787fb136b226ca7e2a0a22241aa93dcffc70010b475bf6f8c4ff74a363d94949e1b64a91032b57a58a7065d7c6b2177696d8e78504ef4f1280f,
8.0.100-preview.3.23178.7, 3b5d72979831256b9340a01db23d3b2dca801672546eeed04385949ed5f4363d3c731f31477ec82c7200ce88502dc45e03986c8acc8f2fc611b0343af5f1c488,
@ -20,7 +20,6 @@
8.0.100-preview.7.23376.3, 8bc71a586382f0e264024707f2f3af9a2f675dd5d4fbdd4bced7ab207141fb74d7c6492dfd94373505962b8597ae379259d152e4ace93a65dad0f89600afecd8,
8.0.100-rc.1.23463.5, ac941fd16fd7c328f7cc44b132b4253ddb2b6a6c152af5f43c71c6cd0d468c89b7276ebf6c08895dcb6e5e25f7cae83b6fbacb91cfcc4a61d49b5657a834a901,
8.0.100-rc.2.23502.2, 45f09e7b031f4cf5b4dcead240fe47e2e3731d97d22aa96d3a02a087322658606cc22792053c3784c44f15d7c9bad0ac9dbda90def7b4e197f2955dca9a5bb6c,
8.0.100, 13905ea20191e70baeba50b0e9bbe5f752a7c34587878ee104744f9fb453bfe439994d38969722bdae7f60ee047d75dda8636f3ab62659450e9cd4024f38b2a5, https://dotnetcli.blob.core.windows.net/dotnet-private/Internal/8.0.0/dotnet-sdk-8.0.100-linux-x64.tar.gz,
8.0.101, 26df0151a3a59c4403b52ba0f0df61eaa904110d897be604f19dcaa27d50860c82296733329cb4a3cf20a2c2e518e8f5d5f36dfb7931bf714a45e46b11487c9a,
8.0.201, 310cf54f595698435b533931b12f86d49f89d27243cf7c87a5b926e0c676b80e869aa58aaff17b5095536c432f377c67d92bf0ca8941b9d891d4b3879637d488,
8.0.202, e0e790c7cc6f8129913317d326c599ff8e8ed4927d4e0adccbe55c50be5c353fe3d83043e529973ced2b302b8432c2ab31533b94ffe9c363eaa9964a7160643a,

Просмотреть файл

@ -1,4 +1,3 @@
# NOTE: Make sure to set the default version in 'defaultVersion.txt' file
# version, sha, download url
3.1.404, 94d8eca3b4e2e6c36135794330ab196c621aee8392c2545a19a991222e804027f300d8efd152e9e4893c4c610d6be8eef195e30e6f6675285755df1ea49d3605,
@ -16,6 +15,7 @@
3.1.423, bcb0efcc066a668eb390b57fd2c944abe73234fdbed57a4b1d21af5b880d102b765f2a790bb137d4b9f3d0d4e24fc53d39dc7666e665624c12e07d503c54ceae,
3.1.425, 3d31c6bb578f668111d0f124db6a1222b5d186450380bfd4f42bc8030f156055b025697eabc8c2672791c96e247f6fc499ff0281388e452fcc16fbd1f8a36de1,
3.1.426, 6c3f9541557feb5d5b93f5c10b28264878948e8540f2b8bb7fb966c32bd38191e6b310dcb5f87a4a8f7c67a7046fa932cde3cce9dc8341c1365ae6c9fcc481ec,
6.0.100, cb0d174a79d6294c302261b645dba6a479da8f7cf6c1fe15ae6998bc09c5e0baec810822f9e0104e84b0efd51fdc0333306cb2a0a6fcdbaf515a8ad8cf1af25b,
6.0.100-preview.1.21103.13, 86f591c70c73732030210e8e7ce39b7b4e4a680098862e340a4a8726bcb3f981f0748baec0fce8c5c4a8615670a72ab92bfad8d0dc0a305401bbc5864116996a,
6.0.100-preview.2.21155.3, 90d9b6070f7732dcf75f5a09a4f10f9b23c835a3bb144e0c3f1fa451cadd3d49c9781973b180f70a4d2798358a7c00f3c0b9b3bf35326fe4c94e470e84ac8c35,
6.0.100-preview.3.21202.5, f776177c1ca2b672cf05f9ec32f20ef35a039dd8d31beaa139d1e47d71cca4ccf0f2a61bbf006a781e693977ee91cc9e08e12134ffb4c7a03a8e56c163b8661d,
@ -26,7 +26,6 @@
6.0.100-rc.1.21458.32, 7a20c5ac3f8ae7a5a67b0ddc184e7eb845b57aacea65e42e451c51dd48afb8c854f25a879777f0067617bba131ad0c09fb395c62b3ec292915f9434213523463,
6.0.100-rc.2.21505.57, 0a8f85a2757f61ca7f9b8c546af4554c2aac9cdb06f6d62879a60de6f2a3d37ea7136f48896c9c85828a2d55df354e7b9b5b4dc22896c927f0c6370a5ade1b9c,
6.0.100-rtm.21524.1, CB0D174A79D6294C302261B645DBA6A479DA8F7CF6C1FE15AE6998BC09C5E0BAEC810822F9E0104E84B0EFD51FDC0333306CB2A0A6FCDBAF515A8AD8CF1AF25B, https://dotnetstage.blob.core.windows.net/6-0-100-rtm-21527-11-public/Sdk/6.0.100-rtm.21527.11/dotnet-sdk-6.0.100-linux-x64.tar.gz,
6.0.100, cb0d174a79d6294c302261b645dba6a479da8f7cf6c1fe15ae6998bc09c5e0baec810822f9e0104e84b0efd51fdc0333306cb2a0a6fcdbaf515a8ad8cf1af25b,
6.0.201, a4d96b6ca2abb7d71cc2c64282f9bd07cedc52c03d8d6668346ae0cd33a9a670d7185ab0037c8f0ecd6c212141038ed9ea9b19a188d1df2aae10b2683ce818ce,
6.0.300, 52d720e90cfb889a92d605d64e6d0e90b96209e1bd7eab00dab1d567017d7a5a4ff4adbc55aff4cffcea4b1bf92bb8d351859d00d8eb65059eec5e449886c938,
6.0.301, 2f434ea4860ee637e9cf19991a80e1febb1105531dd96b4fbc728d538ca0ab202a0bdff128fd13b269fac3ba3bc9d5f9c49039a6e0d7d32751e8a2bb6d790446,
@ -47,13 +46,13 @@
6.0.421, aa2c1fdc06c477acbb8ca938895f22373a96e96bb75028b496ddf3d433a1e347f3f765b414e8e09fbf1da1cc50f575e28572e701693bad2a33f9b92437a7d3fc,
6.0.423, 4b4a0e66634211ae04fa030e18ae9e22640f5828307ba85c4bae596ab2d31260519197828dae3b2ec73d6772635e0b375536ea6591b03c67c2b7a5566f016952,
6.0.424, e9823aa2ad261199f8289fde8721931c1e4d47357b4973b8c7d34c12abd440bb932064ac151b0e0d7b3d5b72a5dfe3f20d5dafa19e6f56f1a61ad54b7de5e584,
7.0.100, 0a2e74486357a3ee16abb551ecd828836f90d8744d6e2b6b83556395c872090d9e5166f92a8d050331333d07d112c4b27e87100ba1af86cac8a37f1aee953078,
7.0.100-preview.1.22110.4, 54488a911172f059e3823d6bf52e1fa87305eb09e84d97f81a40e0815fc8a73a480b149023283f557a672ef0341f022b8ca16ebec92264ee16a56fac8f35e2e2,
7.0.100-preview.5.22307.18, 691c0d8917bc9848a08707b7fa22da05228dad0ba6335ff06c6d80f9a95349307572ff45c0b088d9fc199c40a1784ff314e1a8735d0366bd3aa06eb8dfa2b7d5,
7.0.100-preview.6.22352.1, e49a2119021e4069f1193898536cc59628336e656f2f7e49d454a593a330d8e437acf2f4efb70925bc16a9c900c2e49f4a6c2fb5f69e696b09a91ebccd2c9307,
7.0.100-preview.7.22377.5, c16d452dbe4f097b75d304c8bc19892017847768bf2e8a0a72fafd6d6b46c3dd77e0c251b80c245197f47fdeafc2c18db255af8a1a5c30be982de19129874390
7.0.100-rc.1.22431.12, 7ecebf284bd1546e1575b9561f4e64bbb8d69680a7bbda6f06ff6fbf687d3a6c653b0e6a6c569241455c6f83620f0ddbe193ca5cd52384ac062c8565dd22b859,
7.0.100-rc.2.22477.23, 22db5d1d16f6fcedfc46f87896920425b5d9b61d09c47d254d6ac731c6d853657882b21faf21f313ed20b33e6331d01b9f723b2c586f0e0cf5acc5ed570b0260,
7.0.100, 0a2e74486357a3ee16abb551ecd828836f90d8744d6e2b6b83556395c872090d9e5166f92a8d050331333d07d112c4b27e87100ba1af86cac8a37f1aee953078,
7.0.101, cf289ad0e661c38dcda7f415b3078a224e8347528448429d62c0f354ee951f4e7bef9cceaf3db02fb52b5dd7be987b7a4327ca33fb9239b667dc1c41c678095c,
7.0.102, 7667aae20a9e50d31d1fc004cdc5cb033d2682d3aa793dde28fa2869de5ac9114e8215a87447eb734e87073cfe9496c1c9b940133567f12b3a7dea31a813967f,
7.0.201, fc9d224bf1d3600e878991fc1e8d3b1a0f21c7a8aac7b3cae0e4925ad33172cc12f56210eabfd66cfedd5f70f85918b889673401172b3999cecbeb8f2fe58863,
@ -67,6 +66,7 @@
7.0.403, 2e96fa4ee32885a4433be12aac0e10998f9e7f0fe4791f33cd31966c0e0d345d978514787a36c5f0f43c7754e9639a5d52fc96c9f44cf56c0cfc9a8ad2620dd6,
7.0.404, f5c122044e9a107968af1a534051e28242f45307c3db760fbb4f3a003d92d8ea5a856ad4c4e8e4b88a3b6a825fe5e3c9e596c9d2cfa0eca8d5d9ee2c5dad0053,
7.0.410, 20b8e02979328e4c4a14493f7791ed419aabd0175233db80cd60e2c004b829b3e8301281ea86b27ba818372473accf5a6d553e5354c54917c8e84d25f5855caa,
8.0.100, 13905ea20191e70baeba50b0e9bbe5f752a7c34587878ee104744f9fb453bfe439994d38969722bdae7f60ee047d75dda8636f3ab62659450e9cd4024f38b2a5, https://dotnetcli.blob.core.windows.net/dotnet-private/Internal/8.0.0/dotnet-sdk-8.0.100-linux-x64.tar.gz,
8.0.100-preview.1.23115.2, 23a14c92e402161ed8d42ec9cb25a97868a1b72348195d28cffa00a12815f019308b56485e4375c0d0a33d9a683d83cc1e1a2a517eea44af8fb353171b6c3f64,
8.0.100-preview.2.23157.25, 97302c3600af7787fb136b226ca7e2a0a22241aa93dcffc70010b475bf6f8c4ff74a363d94949e1b64a91032b57a58a7065d7c6b2177696d8e78504ef4f1280f,
8.0.100-preview.3.23178.7, 3b5d72979831256b9340a01db23d3b2dca801672546eeed04385949ed5f4363d3c731f31477ec82c7200ce88502dc45e03986c8acc8f2fc611b0343af5f1c488,
@ -75,10 +75,9 @@
8.0.100-preview.7.23376.3, 8bc71a586382f0e264024707f2f3af9a2f675dd5d4fbdd4bced7ab207141fb74d7c6492dfd94373505962b8597ae379259d152e4ace93a65dad0f89600afecd8,
8.0.100-rc.1.23463.5, ac941fd16fd7c328f7cc44b132b4253ddb2b6a6c152af5f43c71c6cd0d468c89b7276ebf6c08895dcb6e5e25f7cae83b6fbacb91cfcc4a61d49b5657a834a901,
8.0.100-rc.2.23502.2, 45f09e7b031f4cf5b4dcead240fe47e2e3731d97d22aa96d3a02a087322658606cc22792053c3784c44f15d7c9bad0ac9dbda90def7b4e197f2955dca9a5bb6c,
8.0.100, 13905ea20191e70baeba50b0e9bbe5f752a7c34587878ee104744f9fb453bfe439994d38969722bdae7f60ee047d75dda8636f3ab62659450e9cd4024f38b2a5, https://dotnetcli.blob.core.windows.net/dotnet-private/Internal/8.0.0/dotnet-sdk-8.0.100-linux-x64.tar.gz,
8.0.101, 26df0151a3a59c4403b52ba0f0df61eaa904110d897be604f19dcaa27d50860c82296733329cb4a3cf20a2c2e518e8f5d5f36dfb7931bf714a45e46b11487c9a,
8.0.201, 310cf54f595698435b533931b12f86d49f89d27243cf7c87a5b926e0c676b80e869aa58aaff17b5095536c432f377c67d92bf0ca8941b9d891d4b3879637d488,
8.0.202, e0e790c7cc6f8129913317d326c599ff8e8ed4927d4e0adccbe55c50be5c353fe3d83043e529973ced2b302b8432c2ab31533b94ffe9c363eaa9964a7160643a,
8.0.301, 6e2e1ad5fe3f00e6974ad3eac9c5b74cd09521f19e06eb9aff45a44d6c55e4a2c1cd489364735215d2ea53cec2a7d45892a5ede344a8421be9ad15872c3496a2,
8.0.303, 814ff07ccdfc8160c4a24adfda6c815e7feace88c59722f827a5a27041719067538754911fc15cb46978e16566fe0938695891723d182055190e876131faedda,
9.0.100-preview.6.24328.19, ff040c456b096aeac707053517d5f9f5f0df92b6754a4af6b6fe635fd8f4a569589b8241cbad0c5db998dc5bc54682b2f1e4dc4f3d88024a3ef56c1ecc9f4c97,
9.0.100-preview.6.24328.19, ff040c456b096aeac707053517d5f9f5f0df92b6754a4af6b6fe635fd8f4a569589b8241cbad0c5db998dc5bc54682b2f1e4dc4f3d88024a3ef56c1ecc9f4c97,

Просмотреть файл

@ -1,4 +1,3 @@
# NOTE: Make sure to set the default version in 'defaultVersion.txt' file
# version, sha, download url
2.1.811, ddc6a583c90405a1cf57c33b2ee285ce34d59f82c4f7bc01900f4ce87c45e295de96a0293ad51937ac1935611b87bc73cdafa8acd93b6fda5a2c624b00070326,
@ -34,6 +33,7 @@
5.0.403, 7ba5f7f898dba64ea7027dc66184d60ac5ac35fabe750bd509711628442e098413878789fad5766be163fd2867cf22ef482a951e187cf629bbc6f54dd9293a4a
5.0.406, 21f0617d359d5c333a8925af71b359c0e9e371eaa6e4b20faf0f699296cebaacc56cb9660fa310b2ed99ca636f241f2df999698a883cf7899dd670bdf92bdd29,
5.0.408, abbf22c420df2d8398d1616efa3d31e1b8f96130697746c45ad68668676d12e65ec3b4dd75f28a5dc7607da58b6e369693c0e658def15ce2431303c28e99db55,
6.0.100, cb0d174a79d6294c302261b645dba6a479da8f7cf6c1fe15ae6998bc09c5e0baec810822f9e0104e84b0efd51fdc0333306cb2a0a6fcdbaf515a8ad8cf1af25b,
6.0.100-preview.1.21103.13, 86f591c70c73732030210e8e7ce39b7b4e4a680098862e340a4a8726bcb3f981f0748baec0fce8c5c4a8615670a72ab92bfad8d0dc0a305401bbc5864116996a,
6.0.100-preview.2.21155.3, 90d9b6070f7732dcf75f5a09a4f10f9b23c835a3bb144e0c3f1fa451cadd3d49c9781973b180f70a4d2798358a7c00f3c0b9b3bf35326fe4c94e470e84ac8c35,
6.0.100-preview.3.21202.5, f776177c1ca2b672cf05f9ec32f20ef35a039dd8d31beaa139d1e47d71cca4ccf0f2a61bbf006a781e693977ee91cc9e08e12134ffb4c7a03a8e56c163b8661d,
@ -44,7 +44,6 @@
6.0.100-rc.1.21458.32, 7a20c5ac3f8ae7a5a67b0ddc184e7eb845b57aacea65e42e451c51dd48afb8c854f25a879777f0067617bba131ad0c09fb395c62b3ec292915f9434213523463,
6.0.100-rc.2.21505.57, 0a8f85a2757f61ca7f9b8c546af4554c2aac9cdb06f6d62879a60de6f2a3d37ea7136f48896c9c85828a2d55df354e7b9b5b4dc22896c927f0c6370a5ade1b9c,
6.0.100-rtm.21524.1, CB0D174A79D6294C302261B645DBA6A479DA8F7CF6C1FE15AE6998BC09C5E0BAEC810822F9E0104E84B0EFD51FDC0333306CB2A0A6FCDBAF515A8AD8CF1AF25B, https://dotnetstage.blob.core.windows.net/6-0-100-rtm-21527-11-public/Sdk/6.0.100-rtm.21527.11/dotnet-sdk-6.0.100-linux-x64.tar.gz,
6.0.100, cb0d174a79d6294c302261b645dba6a479da8f7cf6c1fe15ae6998bc09c5e0baec810822f9e0104e84b0efd51fdc0333306cb2a0a6fcdbaf515a8ad8cf1af25b,
6.0.201, a4d96b6ca2abb7d71cc2c64282f9bd07cedc52c03d8d6668346ae0cd33a9a670d7185ab0037c8f0ecd6c212141038ed9ea9b19a188d1df2aae10b2683ce818ce,
6.0.300, 52d720e90cfb889a92d605d64e6d0e90b96209e1bd7eab00dab1d567017d7a5a4ff4adbc55aff4cffcea4b1bf92bb8d351859d00d8eb65059eec5e449886c938,
6.0.301, 2f434ea4860ee637e9cf19991a80e1febb1105531dd96b4fbc728d538ca0ab202a0bdff128fd13b269fac3ba3bc9d5f9c49039a6e0d7d32751e8a2bb6d790446,
@ -62,13 +61,13 @@
6.0.421, aa2c1fdc06c477acbb8ca938895f22373a96e96bb75028b496ddf3d433a1e347f3f765b414e8e09fbf1da1cc50f575e28572e701693bad2a33f9b92437a7d3fc,
6.0.423, 4b4a0e66634211ae04fa030e18ae9e22640f5828307ba85c4bae596ab2d31260519197828dae3b2ec73d6772635e0b375536ea6591b03c67c2b7a5566f016952,
6.0.424, e9823aa2ad261199f8289fde8721931c1e4d47357b4973b8c7d34c12abd440bb932064ac151b0e0d7b3d5b72a5dfe3f20d5dafa19e6f56f1a61ad54b7de5e584,
7.0.100, 0a2e74486357a3ee16abb551ecd828836f90d8744d6e2b6b83556395c872090d9e5166f92a8d050331333d07d112c4b27e87100ba1af86cac8a37f1aee953078,
7.0.100-preview.1.22110.4, 54488a911172f059e3823d6bf52e1fa87305eb09e84d97f81a40e0815fc8a73a480b149023283f557a672ef0341f022b8ca16ebec92264ee16a56fac8f35e2e2,
7.0.100-preview.5.22307.18, 691c0d8917bc9848a08707b7fa22da05228dad0ba6335ff06c6d80f9a95349307572ff45c0b088d9fc199c40a1784ff314e1a8735d0366bd3aa06eb8dfa2b7d5,
7.0.100-preview.6.22352.1, e49a2119021e4069f1193898536cc59628336e656f2f7e49d454a593a330d8e437acf2f4efb70925bc16a9c900c2e49f4a6c2fb5f69e696b09a91ebccd2c9307,
7.0.100-preview.7.22377.5, c16d452dbe4f097b75d304c8bc19892017847768bf2e8a0a72fafd6d6b46c3dd77e0c251b80c245197f47fdeafc2c18db255af8a1a5c30be982de19129874390,
7.0.100-rc.1.22431.12, 7ecebf284bd1546e1575b9561f4e64bbb8d69680a7bbda6f06ff6fbf687d3a6c653b0e6a6c569241455c6f83620f0ddbe193ca5cd52384ac062c8565dd22b859,
7.0.100-rc.2.22477.23, 22db5d1d16f6fcedfc46f87896920425b5d9b61d09c47d254d6ac731c6d853657882b21faf21f313ed20b33e6331d01b9f723b2c586f0e0cf5acc5ed570b0260,
7.0.100, 0a2e74486357a3ee16abb551ecd828836f90d8744d6e2b6b83556395c872090d9e5166f92a8d050331333d07d112c4b27e87100ba1af86cac8a37f1aee953078,
7.0.101, cf289ad0e661c38dcda7f415b3078a224e8347528448429d62c0f354ee951f4e7bef9cceaf3db02fb52b5dd7be987b7a4327ca33fb9239b667dc1c41c678095c,
7.0.102, 7667aae20a9e50d31d1fc004cdc5cb033d2682d3aa793dde28fa2869de5ac9114e8215a87447eb734e87073cfe9496c1c9b940133567f12b3a7dea31a813967f,
7.0.201, fc9d224bf1d3600e878991fc1e8d3b1a0f21c7a8aac7b3cae0e4925ad33172cc12f56210eabfd66cfedd5f70f85918b889673401172b3999cecbeb8f2fe58863,
@ -79,6 +78,7 @@
7.0.305, c63e6baf3760a9949089d78920531a1140f4f31fffe13069b2011c61c3d583d585f5ec8cca973b414fa35d48ccbfea9c1ec1c88222b53afd2af5974be3b5cb1b,
7.0.306, 62df9bca9492b3273830e098e787ec3664243989ac03550534599fc331693553660d3cf8bca655f2d1326070dbb7b20b04743eaba77fa9cc69f6f0fddfdebd06,
7.0.410, 20b8e02979328e4c4a14493f7791ed419aabd0175233db80cd60e2c004b829b3e8301281ea86b27ba818372473accf5a6d553e5354c54917c8e84d25f5855caa,
8.0.100, 13905ea20191e70baeba50b0e9bbe5f752a7c34587878ee104744f9fb453bfe439994d38969722bdae7f60ee047d75dda8636f3ab62659450e9cd4024f38b2a5, https://dotnetcli.blob.core.windows.net/dotnet-private/Internal/8.0.0/dotnet-sdk-8.0.100-linux-x64.tar.gz,
8.0.100-preview.1.23115.2, 23a14c92e402161ed8d42ec9cb25a97868a1b72348195d28cffa00a12815f019308b56485e4375c0d0a33d9a683d83cc1e1a2a517eea44af8fb353171b6c3f64,
8.0.100-preview.2.23157.25, 97302c3600af7787fb136b226ca7e2a0a22241aa93dcffc70010b475bf6f8c4ff74a363d94949e1b64a91032b57a58a7065d7c6b2177696d8e78504ef4f1280f,
8.0.100-preview.3.23178.7, 3b5d72979831256b9340a01db23d3b2dca801672546eeed04385949ed5f4363d3c731f31477ec82c7200ce88502dc45e03986c8acc8f2fc611b0343af5f1c488,
@ -87,9 +87,8 @@
8.0.100-preview.7.23376.3, 8bc71a586382f0e264024707f2f3af9a2f675dd5d4fbdd4bced7ab207141fb74d7c6492dfd94373505962b8597ae379259d152e4ace93a65dad0f89600afecd8,
8.0.100-rc.1.23463.5, ac941fd16fd7c328f7cc44b132b4253ddb2b6a6c152af5f43c71c6cd0d468c89b7276ebf6c08895dcb6e5e25f7cae83b6fbacb91cfcc4a61d49b5657a834a901,
8.0.100-rc.2.23502.2, 45f09e7b031f4cf5b4dcead240fe47e2e3731d97d22aa96d3a02a087322658606cc22792053c3784c44f15d7c9bad0ac9dbda90def7b4e197f2955dca9a5bb6c,
8.0.100, 13905ea20191e70baeba50b0e9bbe5f752a7c34587878ee104744f9fb453bfe439994d38969722bdae7f60ee047d75dda8636f3ab62659450e9cd4024f38b2a5, https://dotnetcli.blob.core.windows.net/dotnet-private/Internal/8.0.0/dotnet-sdk-8.0.100-linux-x64.tar.gz,
8.0.101, 26df0151a3a59c4403b52ba0f0df61eaa904110d897be604f19dcaa27d50860c82296733329cb4a3cf20a2c2e518e8f5d5f36dfb7931bf714a45e46b11487c9a,
8.0.201, 310cf54f595698435b533931b12f86d49f89d27243cf7c87a5b926e0c676b80e869aa58aaff17b5095536c432f377c67d92bf0ca8941b9d891d4b3879637d488,
8.0.202, e0e790c7cc6f8129913317d326c599ff8e8ed4927d4e0adccbe55c50be5c353fe3d83043e529973ced2b302b8432c2ab31533b94ffe9c363eaa9964a7160643a,
8.0.301, 6e2e1ad5fe3f00e6974ad3eac9c5b74cd09521f19e06eb9aff45a44d6c55e4a2c1cd489364735215d2ea53cec2a7d45892a5ede344a8421be9ad15872c3496a2,
8.0.303, 814ff07ccdfc8160c4a24adfda6c815e7feace88c59722f827a5a27041719067538754911fc15cb46978e16566fe0938695891723d182055190e876131faedda,
8.0.303, 814ff07ccdfc8160c4a24adfda6c815e7feace88c59722f827a5a27041719067538754911fc15cb46978e16566fe0938695891723d182055190e876131faedda,

Просмотреть файл

@ -2,4 +2,4 @@
20.11.0
20.11.1
20.14.0
20.15.1
20.15.1

Просмотреть файл

@ -48,4 +48,4 @@
20.11.0
20.11.1
20.14.0
20.15.1
20.15.1

Просмотреть файл

@ -1,6 +1,5 @@
10.23.0
10.24.1
12.19.0
12.20.0
12.21.0

Просмотреть файл

@ -5,4 +5,4 @@
8.2.21, 8cc44d51bb2506399ec176f70fe110f0c9e1f7d852a5303a2cd1403402199707, 1198C0117593497A5EC5C199286AF1F9897469DC 39B641343D8C104B2B146DC3F9C39DC0B9698544,
8.3.4, 39a337036a546e5c28aea76cf424ac172db5156bd8a8fd85252e389409a5ba63, 1198C0117593497A5EC5C199286AF1F9897469DC AFD8691FDAEDF03BDF6E460563F15A9B715376CA,
8.3.8, aea358b56186f943c2bbd350c9005b9359133d47e954cfc561385319ae5bb8d7, 1198C0117593497A5EC5C199286AF1F9897469DC AFD8691FDAEDF03BDF6E460563F15A9B715376CA,
8.3.9, bf4d7b8ea60a356064f88485278bd6f941a230ec16f0fc401574ce1445ad6c77, 1198C0117593497A5EC5C199286AF1F9897469DC AFD8691FDAEDF03BDF6E460563F15A9B715376CA,
8.3.9, bf4d7b8ea60a356064f88485278bd6f941a230ec16f0fc401574ce1445ad6c77, 1198C0117593497A5EC5C199286AF1F9897469DC AFD8691FDAEDF03BDF6E460563F15A9B715376CA,

Просмотреть файл

@ -46,4 +46,4 @@
8.2.21, 8cc44d51bb2506399ec176f70fe110f0c9e1f7d852a5303a2cd1403402199707, 1198C0117593497A5EC5C199286AF1F9897469DC 39B641343D8C104B2B146DC3F9C39DC0B9698544,
8.3.4, 39a337036a546e5c28aea76cf424ac172db5156bd8a8fd85252e389409a5ba63, 1198C0117593497A5EC5C199286AF1F9897469DC AFD8691FDAEDF03BDF6E460563F15A9B715376CA,
8.3.8, aea358b56186f943c2bbd350c9005b9359133d47e954cfc561385319ae5bb8d7, 1198C0117593497A5EC5C199286AF1F9897469DC AFD8691FDAEDF03BDF6E460563F15A9B715376CA,
8.3.9, bf4d7b8ea60a356064f88485278bd6f941a230ec16f0fc401574ce1445ad6c77, 1198C0117593497A5EC5C199286AF1F9897469DC AFD8691FDAEDF03BDF6E460563F15A9B715376CA,
8.3.9, bf4d7b8ea60a356064f88485278bd6f941a230ec16f0fc401574ce1445ad6c77, 1198C0117593497A5EC5C199286AF1F9897469DC AFD8691FDAEDF03BDF6E460563F15A9B715376CA,

Просмотреть файл

@ -60,4 +60,4 @@
8.2.21, 8cc44d51bb2506399ec176f70fe110f0c9e1f7d852a5303a2cd1403402199707, 1198C0117593497A5EC5C199286AF1F9897469DC 39B641343D8C104B2B146DC3F9C39DC0B9698544,
8.3.4, 39a337036a546e5c28aea76cf424ac172db5156bd8a8fd85252e389409a5ba63, 1198C0117593497A5EC5C199286AF1F9897469DC AFD8691FDAEDF03BDF6E460563F15A9B715376CA,
8.3.8, aea358b56186f943c2bbd350c9005b9359133d47e954cfc561385319ae5bb8d7, 1198C0117593497A5EC5C199286AF1F9897469DC AFD8691FDAEDF03BDF6E460563F15A9B715376CA,
8.3.9, bf4d7b8ea60a356064f88485278bd6f941a230ec16f0fc401574ce1445ad6c77, 1198C0117593497A5EC5C199286AF1F9897469DC AFD8691FDAEDF03BDF6E460563F15A9B715376CA,
8.3.9, bf4d7b8ea60a356064f88485278bd6f941a230ec16f0fc401574ce1445ad6c77, 1198C0117593497A5EC5C199286AF1F9897469DC AFD8691FDAEDF03BDF6E460563F15A9B715376CA,

Просмотреть файл

@ -1,4 +1,3 @@
# NOTE: Make sure to set the default version in 'defaultVersion.txt' file
# version, gpg keys, dockerfile
3.8.18, E3FF2839C048B25C084DEBE9B26995E310250568,

Просмотреть файл

@ -1,32 +1,31 @@
# NOTE: Make sure to set the default version in 'defaultVersion.txt' file
# version, gpg keys, dockerfile
3.10.0, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.7.9, 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D,
3.7.12, 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D,
3.7.15, 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D,
3.8.6, E3FF2839C048B25C084DEBE9B26995E310250568,
3.8.12, E3FF2839C048B25C084DEBE9B26995E310250568,
3.8.15, E3FF2839C048B25C084DEBE9B26995E310250568,
3.8.16, E3FF2839C048B25C084DEBE9B26995E310250568,
3.8.18, E3FF2839C048B25C084DEBE9B26995E310250568,
3.8.19, E3FF2839C048B25C084DEBE9B26995E310250568,
3.9.0, E3FF2839C048B25C084DEBE9B26995E310250568,
3.9.1rc1, E3FF2839C048B25C084DEBE9B26995E310250568,
3.9.7, E3FF2839C048B25C084DEBE9B26995E310250568,
3.9.15, E3FF2839C048B25C084DEBE9B26995E310250568,
3.9.18, E3FF2839C048B25C084DEBE9B26995E310250568,
3.9.19, E3FF2839C048B25C084DEBE9B26995E310250568,
3.10.0a2, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.10.13, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.10.14, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.10.0, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.10.4, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.10.8, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.11.0, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.10.13, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.10.14, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.11.0b1, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.11.0, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.11.6, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.11.7, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.11.8, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.12.0, 7169605F62C751356D054A26A821E680E5FA6305,
3.12.1, 7169605F62C751356D054A26A821E680E5FA6305,
3.12.2, 7169605F62C751356D054A26A821E680E5FA6305,
3.7.12, 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D,
3.7.15, 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D,
3.7.9, 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D,
3.8.12, E3FF2839C048B25C084DEBE9B26995E310250568,
3.8.15, E3FF2839C048B25C084DEBE9B26995E310250568,
3.8.16, E3FF2839C048B25C084DEBE9B26995E310250568,
3.8.18, E3FF2839C048B25C084DEBE9B26995E310250568,
3.8.19, E3FF2839C048B25C084DEBE9B26995E310250568,
3.8.6, E3FF2839C048B25C084DEBE9B26995E310250568,
3.9.0, E3FF2839C048B25C084DEBE9B26995E310250568,
3.9.15, E3FF2839C048B25C084DEBE9B26995E310250568,
3.9.18, E3FF2839C048B25C084DEBE9B26995E310250568,
3.9.19, E3FF2839C048B25C084DEBE9B26995E310250568,
3.9.1rc1, E3FF2839C048B25C084DEBE9B26995E310250568,
3.9.7, E3FF2839C048B25C084DEBE9B26995E310250568,

Просмотреть файл

@ -1,31 +1,30 @@
# NOTE: Make sure to set the default version in 'defaultVersion.txt' file
# version, gpg keys, dockerfile
3.10.0, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.10.0a2, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.10.13, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.10.14, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.10.4, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.10.8, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.11.6, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.11.7, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.11.8, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.12.1, 7169605F62C751356D054A26A821E680E5FA6305,
3.12.2, 7169605F62C751356D054A26A821E680E5FA6305,
3.6.12, 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D,
3.6.15, 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D,
3.7.9, 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D,
3.7.12, 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D,
3.7.15, 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D,
3.7.9, 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D,
3.8.6, E3FF2839C048B25C084DEBE9B26995E310250568,
3.8.12, E3FF2839C048B25C084DEBE9B26995E310250568,
3.8.15, E3FF2839C048B25C084DEBE9B26995E310250568,
3.8.16, E3FF2839C048B25C084DEBE9B26995E310250568,
3.8.18, E3FF2839C048B25C084DEBE9B26995E310250568,
3.8.19, E3FF2839C048B25C084DEBE9B26995E310250568,
3.8.6, E3FF2839C048B25C084DEBE9B26995E310250568,
3.9.0, E3FF2839C048B25C084DEBE9B26995E310250568,
3.9.1rc1, E3FF2839C048B25C084DEBE9B26995E310250568,
3.9.7, E3FF2839C048B25C084DEBE9B26995E310250568,
3.9.15, E3FF2839C048B25C084DEBE9B26995E310250568,
3.9.18, E3FF2839C048B25C084DEBE9B26995E310250568,
3.9.19, E3FF2839C048B25C084DEBE9B26995E310250568,
3.9.1rc1, E3FF2839C048B25C084DEBE9B26995E310250568,
3.9.7, E3FF2839C048B25C084DEBE9B26995E310250568,
3.10.0a2, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.10.0, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.10.4, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.10.8, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.10.13, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.10.14, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.11.6, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.11.7, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.11.8, A035C8C19219BA821ECEA86B64E628F8D684696D,
3.12.1, 7169605F62C751356D054A26A821E680E5FA6305,
3.12.2, 7169605F62C751356D054A26A821E680E5FA6305,

Просмотреть файл

@ -18,7 +18,6 @@ namespace Microsoft.Oryx.RuntimeImage.Tests
[Theory]
[Trait("category", "runtime-buster")]
[InlineData("6.0")]
[InlineData("7.0")]
public void GDIPlusLibrary_IsPresentInTheBusterImage(string version)
{
// Arrange
@ -46,7 +45,6 @@ namespace Microsoft.Oryx.RuntimeImage.Tests
[Theory]
[Trait("category", "runtime-bullseye")]
[InlineData("6.0")]
[InlineData("7.0")]
[InlineData("8.0")]
public void GDIPlusLibrary_IsPresentInTheBullseyeImage(string version)
{
@ -104,7 +102,6 @@ namespace Microsoft.Oryx.RuntimeImage.Tests
[Theory]
[Trait("category", "runtime-buster")]
[InlineData("6.0")]
[InlineData("7.0")]
public void DotnetMonitorTool_IsPresentInTheBusterImage(string version)
{
// Act
@ -129,7 +126,6 @@ namespace Microsoft.Oryx.RuntimeImage.Tests
[Theory]
[Trait("category", "runtime-bullseye")]
[InlineData("6.0")]
[InlineData("7.0")]
[InlineData("8.0")]
public void DotnetMonitorTool_IsPresentInTheBullseyeImage(string version)
{

Просмотреть файл

@ -21,7 +21,6 @@ namespace Microsoft.Oryx.RuntimeImage.Tests
[Theory]
[Trait("category", "runtime-bullseye")]
[InlineData("6.0")]
[InlineData("7.0")]
[InlineData("8.0")]
public void DotNetCoreBullseyeRuntimeImage_Contains_VersionAndCommit_Information(string version)
{
@ -61,7 +60,6 @@ namespace Microsoft.Oryx.RuntimeImage.Tests
[Theory]
[Trait("category", "runtime-buster")]
[InlineData("6.0")]
[InlineData("7.0")]
public void DotNetCoreBusterRuntimeImage_Contains_VersionAndCommit_Information(string version)
{
// we cant always rely on gitcommitid as env variable in case build context is not correctly passed
@ -139,7 +137,6 @@ namespace Microsoft.Oryx.RuntimeImage.Tests
[Theory]
[Trait("category", "runtime-buster")]
[InlineData("6.0", "Version: " + DotNetCoreRunTimeVersions.NetCoreApp60)]
[InlineData("7.0", "Version: " + DotNetCoreRunTimeVersions.NetCoreApp70)]
[Trait(TestConstants.Category, TestConstants.Release)]
public void RuntimeImage_Buster_HasExecptedDotNetVersion(string version, string expectedOutput)
{
@ -165,7 +162,6 @@ namespace Microsoft.Oryx.RuntimeImage.Tests
[Theory]
[Trait("category", "runtime-bullseye")]
[InlineData("6.0", "Version: " + DotNetCoreRunTimeVersions.NetCoreApp60)]
[InlineData("7.0", "Version: " + DotNetCoreRunTimeVersions.NetCoreApp70)]
[InlineData("8.0", "Version: " + DotNetCoreRunTimeVersions.NetCoreApp80)]
[Trait(TestConstants.Category, TestConstants.Release)]
public void RuntimeImage_Bullseye_HasExecptedDotNetVersion(string version, string expectedOutput)

Просмотреть файл

@ -15,6 +15,21 @@ using Xunit.Abstractions;
namespace Microsoft.Oryx.RuntimeImage.Tests
{
public class PhpTestBase : TestBase, IClassFixture<TestTempDirTestFixture>
{
public readonly string _hostSamplesDir;
public readonly string _tempRootDir;
public readonly HttpClient _httpClient = new HttpClient();
public DockerVolume CreateSampleAppVolume(string sampleAppName) =>
DockerVolume.CreateMirror(Path.Combine(_hostSamplesDir, "php", sampleAppName));
public PhpTestBase(ITestOutputHelper output, TestTempDirTestFixture testTempDirTestFixture) : base(output)
{
_hostSamplesDir = Path.Combine(Directory.GetCurrentDirectory(), "SampleApps");
_tempRootDir = testTempDirTestFixture.RootDirPath;
}
}
public class PhpFpmTestBase : TestBase, IClassFixture<TestTempDirTestFixture>
{
public readonly string _hostSamplesDir;

Просмотреть файл

@ -1,747 +0,0 @@
// --------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
// --------------------------------------------------------------------------------------------
using Microsoft.Oryx.BuildScriptGenerator.Common;
using Microsoft.Oryx.Tests.Common;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
using Xunit;
using Xunit.Abstractions;
namespace Microsoft.Oryx.RuntimeImage.Tests
{
public class PhpTestBase : TestBase, IClassFixture<TestTempDirTestFixture>
{
public readonly string _hostSamplesDir;
public readonly string _tempRootDir;
public readonly HttpClient _httpClient = new HttpClient();
public DockerVolume CreateSampleAppVolume(string sampleAppName) =>
DockerVolume.CreateMirror(Path.Combine(_hostSamplesDir, "php", sampleAppName));
public PhpTestBase(ITestOutputHelper output, TestTempDirTestFixture testTempDirTestFixture) : base(output)
{
_hostSamplesDir = Path.Combine(Directory.GetCurrentDirectory(), "SampleApps");
_tempRootDir = testTempDirTestFixture.RootDirPath;
}
}
public class PhpImageTest : PhpTestBase
{
public PhpImageTest(ITestOutputHelper output, TestTempDirTestFixture testTempDirTestFixture) : base(output, testTempDirTestFixture)
{
}
[Theory]
[Trait("category", "runtime-buster")]
// [InlineData("7.4", PhpVersions.Php74Version)]
// [InlineData("8.0", PhpVersions.Php80Version)]
[InlineData("8.1", PhpVersions.Php81Version)]
[InlineData("8.2", PhpVersions.Php82Version)]
[InlineData("8.3", PhpVersions.Php83Version)]
[Trait(TestConstants.Category, TestConstants.Release)]
public void VersionMatchesBusterImageName(string version, string expectedPhpVersion)
{
// Arrange & Act
var result = _dockerCli.Run(
_imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBuster),
"php",
new[] { "--version" }
);
// Assert
RunAsserts(() =>
{
Assert.True(result.IsSuccess);
Assert.Contains("PHP " + expectedPhpVersion, result.StdOut);
},
result.GetDebugInfo());
}
[Theory]
[Trait("category", "runtime-bullseye")]
// [InlineData("7.4", PhpVersions.Php74Version)]
// [InlineData("8.0", PhpVersions.Php80Version)]
[InlineData("8.1", PhpVersions.Php81Version)]
[InlineData("8.2", PhpVersions.Php82Version)]
[InlineData("8.3", PhpVersions.Php83Version)]
[Trait(TestConstants.Category, TestConstants.Release)]
public void VersionMatchesBullseyeImageName(string version, string expectedPhpVersion)
{
// Arrange & Act
var result = _dockerCli.Run(
_imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBullseye),
"php",
new[] { "--version" }
);
// Assert
RunAsserts(() =>
{
Assert.True(result.IsSuccess);
Assert.Contains("PHP " + expectedPhpVersion, result.StdOut);
},
result.GetDebugInfo());
}
[Theory]
[Trait("category", "runtime-bookworm")]
[InlineData("8.3", PhpVersions.Php83Version)]
[Trait(TestConstants.Category, TestConstants.Release)]
public void VersionMatchesBookwormImageName(string version, string expectedPhpVersion)
{
// Arrange & Act
var result = _dockerCli.Run(
_imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBookworm),
"php",
new[] { "--version" }
);
// Assert
RunAsserts(() =>
{
Assert.True(result.IsSuccess);
Assert.Contains("PHP " + expectedPhpVersion, result.StdOut);
},
result.GetDebugInfo());
}
[Theory]
[Trait("category", "runtime-buster")]
// [InlineData("7.4")]
// [InlineData("8.0")]
[InlineData("8.1")]
[InlineData("8.2")]
[InlineData("8.3")]
public void GraphicsExtension_Gd_IsInstalled_For_Buster_Image(string version)
{
// Arrange & Act
var result = _dockerCli.Run(new DockerRunArguments
{
ImageId = _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBuster),
CommandToExecuteOnRun = "php",
CommandArguments = new[] { "-r", "echo json_encode(gd_info());" }
});
// Assert
JObject gdInfo = JsonConvert.DeserializeObject<JObject>(result.StdOut);
//Assert.Contains((((JValue)gdInfo.GetValue("GIF Read Support")).Value).ToString(), "true");
Assert.True((bool)((JValue)gdInfo.GetValue("GIF Read Support")).Value);
Assert.True((bool)((JValue)gdInfo.GetValue("GIF Create Support")).Value);
Assert.True((bool)((JValue)gdInfo.GetValue("JPEG Support")).Value);
Assert.True((bool)((JValue)gdInfo.GetValue("PNG Support")).Value);
}
[Theory]
[Trait("category", "runtime-bullseye")]
// [InlineData("7.4")]
// [InlineData("8.0")]
[InlineData("8.1")]
[InlineData("8.2")]
[InlineData("8.3")]
public void GraphicsExtension_Gd_IsInstalled_For_Bullseye_Image(string version)
{
// Arrange & Act
var result = _dockerCli.Run(new DockerRunArguments
{
ImageId = _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBullseye),
CommandToExecuteOnRun = "php",
CommandArguments = new[] { "-r", "echo json_encode(gd_info());" }
});
// Assert
JObject gdInfo = JsonConvert.DeserializeObject<JObject>(result.StdOut);
//Assert.Contains((((JValue)gdInfo.GetValue("GIF Read Support")).Value).ToString(), "true");
Assert.True((bool)((JValue)gdInfo.GetValue("GIF Read Support")).Value);
Assert.True((bool)((JValue)gdInfo.GetValue("GIF Create Support")).Value);
Assert.True((bool)((JValue)gdInfo.GetValue("JPEG Support")).Value);
Assert.True((bool)((JValue)gdInfo.GetValue("PNG Support")).Value);
}
[Theory]
[Trait("category", "runtime-bookworm")]
[InlineData("8.3")]
public void GraphicsExtension_Gd_IsInstalled_For_Bookworm_Image(string version)
{
// Arrange & Act
var result = _dockerCli.Run(new DockerRunArguments
{
ImageId = _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBookworm),
CommandToExecuteOnRun = "php",
CommandArguments = new[] { "-r", "echo json_encode(gd_info());" }
});
// Assert
JObject gdInfo = JsonConvert.DeserializeObject<JObject>(result.StdOut);
//Assert.Contains((((JValue)gdInfo.GetValue("GIF Read Support")).Value).ToString(), "true");
Assert.True((bool)((JValue)gdInfo.GetValue("GIF Read Support")).Value);
Assert.True((bool)((JValue)gdInfo.GetValue("GIF Create Support")).Value);
Assert.True((bool)((JValue)gdInfo.GetValue("JPEG Support")).Value);
Assert.True((bool)((JValue)gdInfo.GetValue("PNG Support")).Value);
}
[Theory]
[Trait("category", "runtime-buster")]
// [InlineData("7.4")]
// [InlineData("8.0")]
[InlineData("8.1")]
[InlineData("8.2")]
[InlineData("8.3")]
public async Task Check_If_Apache_Allows_Casing_In_PHP_File_ExtensionAsync_For_Buster(string version)
{
// Arrange
var appName = "imagick-example";
var hostDir = Path.Combine(_hostSamplesDir, "php", appName);
var volume = CreateSampleAppVolume(hostDir);
var appDir = volume.ContainerDir;
var testSiteConfigApache2 =
@"<VirtualHost *:80>
\nServerAdmin php-x@localhost
\nDocumentRoot /var/www/php-x/
\nServerName localhost
\nServerAlias www.php-x.com
\n<Directory />
\n Options FollowSymLinks
\n AllowOverride None
\n</Directory>
\n<Directory /var/www/php-x/>
Require all granted
\n</Directory>
\nErrorLog /var/www/php-x/error.log
\nCustomLog /var/www/php-x/access.log combined
</VirtualHost>";
int containerPort = 8080;
var customSiteConfig = @"echo '" + testSiteConfigApache2 + "' > /etc/apache2/sites-available/php-x.conf";
var portConfig = @"sed -i -e 's!\${APACHE_PORT}!" + containerPort + "!g' /etc/apache2/ports.conf /etc/apache2/sites-available/*.conf";
var documentRootConfig = @"sed -i -e 's!\${APACHE_DOCUMENT_ROOT}!/var/www/php-x/!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf /etc/apache2/sites-available/*.conf";
var script = new ShellScriptBuilder()
.AddCommand("mkdir -p /var/www/php-x")
.AddCommand("echo '' > /var/www/php-x/error.log")
.AddCommand("echo '' > /var/www/php-x/access.log")
.AddCommand("echo '<?php\n phpinfo();\n ?>' > /var/www/php-x/inDex.PhP")
.AddCommand("chmod -R +x /var/www/php-x")
.AddCommand(documentRootConfig)
.AddCommand(portConfig)
.AddCommand("echo 'ServerName localhost' >> /etc/apache2/apache2.conf")
.AddCommand(customSiteConfig)
.AddCommand("a2ensite php-x.conf") // load custom site
.AddCommand("service apache2 start") // start apache with the custom site configuration
.AddCommand("tail -f /dev/null") //foreground process to keep the container alive
.ToString();
// Assert
await EndToEndTestHelper.RunAndAssertAppAsync(
imageName: _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBuster),
output: _output,
volumes: new List<DockerVolume> { volume },
environmentVariables: null,
port: containerPort,
link: null,
runCmd: "/bin/sh",
runArgs: new[] { "-c", script },
assertAction: async (hostPort) =>
{
var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/inDex.PhP");
Assert.DoesNotContain("<?", data);
Assert.DoesNotContain("<?php", data);
Assert.DoesNotContain("?>", data);
},
dockerCli: _dockerCli);
}
[Theory]
[Trait("category", "runtime-bullseye")]
// [InlineData("7.4")]
// [InlineData("8.0")]
[InlineData("8.1")]
[InlineData("8.2")]
[InlineData("8.3")]
public async Task Check_If_Apache_Allows_Casing_In_PHP_File_ExtensionAsync_For_Bullseye(string version)
{
// Arrange
var appName = "imagick-example";
var hostDir = Path.Combine(_hostSamplesDir, "php", appName);
var volume = CreateSampleAppVolume(hostDir);
var appDir = volume.ContainerDir;
var testSiteConfigApache2 =
@"<VirtualHost *:80>
\nServerAdmin php-x@localhost
\nDocumentRoot /var/www/php-x/
\nServerName localhost
\nServerAlias www.php-x.com
\n<Directory />
\n Options FollowSymLinks
\n AllowOverride None
\n</Directory>
\n<Directory /var/www/php-x/>
Require all granted
\n</Directory>
\nErrorLog /var/www/php-x/error.log
\nCustomLog /var/www/php-x/access.log combined
</VirtualHost>";
int containerPort = 8080;
var customSiteConfig = @"echo '" + testSiteConfigApache2 + "' > /etc/apache2/sites-available/php-x.conf";
var portConfig = @"sed -i -e 's!\${APACHE_PORT}!" + containerPort + "!g' /etc/apache2/ports.conf /etc/apache2/sites-available/*.conf";
var documentRootConfig = @"sed -i -e 's!\${APACHE_DOCUMENT_ROOT}!/var/www/php-x/!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf /etc/apache2/sites-available/*.conf";
var script = new ShellScriptBuilder()
.AddCommand("mkdir -p /var/www/php-x")
.AddCommand("echo '' > /var/www/php-x/error.log")
.AddCommand("echo '' > /var/www/php-x/access.log")
.AddCommand("echo '<?php\n phpinfo();\n ?>' > /var/www/php-x/inDex.PhP")
.AddCommand("chmod -R +x /var/www/php-x")
.AddCommand(documentRootConfig)
.AddCommand(portConfig)
.AddCommand("echo 'ServerName localhost' >> /etc/apache2/apache2.conf")
.AddCommand(customSiteConfig)
.AddCommand("a2ensite php-x.conf") // load custom site
.AddCommand("service apache2 start") // start apache with the custom site configuration
.AddCommand("tail -f /dev/null") //foreground process to keep the container alive
.ToString();
// Assert
await EndToEndTestHelper.RunAndAssertAppAsync(
imageName: _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBullseye),
output: _output,
volumes: new List<DockerVolume> { volume },
environmentVariables: null,
port: containerPort,
link: null,
runCmd: "/bin/sh",
runArgs: new[] { "-c", script },
assertAction: async (hostPort) =>
{
var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/inDex.PhP");
Assert.DoesNotContain("<?", data);
Assert.DoesNotContain("<?php", data);
Assert.DoesNotContain("?>", data);
},
dockerCli: _dockerCli);
}
[Theory]
[Trait("category", "runtime-bookworm")]
[InlineData("8.3")]
public async Task Check_If_Apache_Allows_Casing_In_PHP_File_ExtensionAsync_For_Bookworm(string version)
{
// Arrange
var appName = "imagick-example";
var hostDir = Path.Combine(_hostSamplesDir, "php", appName);
var volume = CreateSampleAppVolume(hostDir);
var appDir = volume.ContainerDir;
var testSiteConfigApache2 =
@"<VirtualHost *:80>
\nServerAdmin php-x@localhost
\nDocumentRoot /var/www/php-x/
\nServerName localhost
\nServerAlias www.php-x.com
\n<Directory />
\n Options FollowSymLinks
\n AllowOverride None
\n</Directory>
\n<Directory /var/www/php-x/>
Require all granted
\n</Directory>
\nErrorLog /var/www/php-x/error.log
\nCustomLog /var/www/php-x/access.log combined
</VirtualHost>";
int containerPort = 8080;
var customSiteConfig = @"echo '" + testSiteConfigApache2 + "' > /etc/apache2/sites-available/php-x.conf";
var portConfig = @"sed -i -e 's!\${APACHE_PORT}!" + containerPort + "!g' /etc/apache2/ports.conf /etc/apache2/sites-available/*.conf";
var documentRootConfig = @"sed -i -e 's!\${APACHE_DOCUMENT_ROOT}!/var/www/php-x/!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf /etc/apache2/sites-available/*.conf";
var script = new ShellScriptBuilder()
.AddCommand("mkdir -p /var/www/php-x")
.AddCommand("echo '' > /var/www/php-x/error.log")
.AddCommand("echo '' > /var/www/php-x/access.log")
.AddCommand("echo '<?php\n phpinfo();\n ?>' > /var/www/php-x/inDex.PhP")
.AddCommand("chmod -R +x /var/www/php-x")
.AddCommand(documentRootConfig)
.AddCommand(portConfig)
.AddCommand("echo 'ServerName localhost' >> /etc/apache2/apache2.conf")
.AddCommand(customSiteConfig)
.AddCommand("a2ensite php-x.conf") // load custom site
.AddCommand("service apache2 start") // start apache with the custom site configuration
.AddCommand("tail -f /dev/null") //foreground process to keep the container alive
.ToString();
// Assert
await EndToEndTestHelper.RunAndAssertAppAsync(
imageName: _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBookworm),
output: _output,
volumes: new List<DockerVolume> { volume },
environmentVariables: null,
port: containerPort,
link: null,
runCmd: "/bin/sh",
runArgs: new[] { "-c", script },
assertAction: async (hostPort) =>
{
var data = await _httpClient.GetStringAsync($"http://localhost:{hostPort}/inDex.PhP");
Assert.DoesNotContain("<?", data);
Assert.DoesNotContain("<?php", data);
Assert.DoesNotContain("?>", data);
},
dockerCli: _dockerCli);
}
[Theory]
[Trait("category", "runtime-buster")]
// [InlineData("7.4")]
// [InlineData("8.0")]
[InlineData("8.1")]
[InlineData("8.2")]
[InlineData("8.3")]
public void MongoDb_IsInstalled_For_Buster(string version)
{
// Arrange & Act
var result = _dockerCli.Run(new DockerRunArguments
{
ImageId = _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBuster),
CommandToExecuteOnRun = "php",
CommandArguments = new[] { "-m", " | grep mongodb);" }
});
// Assert
var output = result.StdOut.ToString();
RunAsserts(() =>
{
Assert.True(result.IsSuccess);
Assert.Contains("mongodb", output);
},
result.GetDebugInfo());
}
[Theory]
[Trait("category", "runtime-bullseye")]
// [InlineData("7.4")]
// [InlineData("8.0")]
[InlineData("8.1")]
[InlineData("8.2")]
[InlineData("8.3")]
public void MongoDb_IsInstalled_For_Bullseye(string version)
{
// Arrange & Act
var result = _dockerCli.Run(new DockerRunArguments
{
ImageId = _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBullseye),
CommandToExecuteOnRun = "php",
CommandArguments = new[] { "-m", " | grep mongodb);" }
});
// Assert
var output = result.StdOut.ToString();
RunAsserts(() =>
{
Assert.True(result.IsSuccess);
Assert.Contains("mongodb", output);
},
result.GetDebugInfo());
}
[Theory]
[Trait("category", "runtime-bookworm")]
[InlineData("8.3")]
public void MongoDb_IsInstalled_For_Bookworm(string version)
{
// Arrange & Act
var result = _dockerCli.Run(new DockerRunArguments
{
ImageId = _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBookworm),
CommandToExecuteOnRun = "php",
CommandArguments = new[] { "-m", " | grep mongodb);" }
});
// Assert
var output = result.StdOut.ToString();
RunAsserts(() =>
{
Assert.True(result.IsSuccess);
Assert.Contains("mongodb", output);
},
result.GetDebugInfo());
}
// [Theory]
// [Trait("category", "runtime-buster")]
// [InlineData("7.4")]
// public void MySqlnd_Azure_IsInstalled_For_Buster(string version)
// {
// // Arrange & Act
// var result = _dockerCli.Run(new DockerRunArguments
// {
// ImageId = _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBuster),
// CommandToExecuteOnRun = "php",
// CommandArguments = new[] { "-m", " | grep mysqlnd_azure);" }
// });
// // Assert
// var output = result.StdOut.ToString();
// RunAsserts(() =>
// {
// Assert.True(result.IsSuccess);
// Assert.Contains("mysqlnd_azure", output);
// },
// result.GetDebugInfo());
// }
// [Theory]
// [Trait("category", "runtime-bullseye")]
// [InlineData("7.4")]
// public void MySqlnd_Azure_IsInstalled_For_Bullseye(string version)
// {
// // Arrange & Act
// var result = _dockerCli.Run(new DockerRunArguments
// {
// ImageId = _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBullseye),
// CommandToExecuteOnRun = "php",
// CommandArguments = new[] { "-m", " | grep mysqlnd_azure);" }
// });
// // Assert
// var output = result.StdOut.ToString();
// RunAsserts(() =>
// {
// Assert.True(result.IsSuccess);
// Assert.Contains("mysqlnd_azure", output);
// },
// result.GetDebugInfo());
// }
[SkippableTheory]
[Trait("category", "runtime-buster")]
// [InlineData("7.4")]
// [InlineData("8.0")]
[InlineData("8.1")]
[InlineData("8.2")]
[InlineData("8.3")]
public void PhpRuntimeBusterImage_Contains_VersionAndCommit_Information(string version)
{
// we cant always rely on gitcommitid as env variable in case build context is not correctly passed
// so we should check agent_os environment variable to know if the build is happening in azure devops agent
// or locally, locally we need to skip this test
var agentOS = Environment.GetEnvironmentVariable("AGENT_OS");
Skip.If(string.IsNullOrEmpty(agentOS));
// Arrange
var gitCommitID = GitHelper.GetCommitID();
var buildNumber = Environment.GetEnvironmentVariable("IMAGE_BUILDNUMBER");
var expectedOryxVersion = string.Concat(Settings.OryxVersion, buildNumber);
// Act
var result = _dockerCli.Run(new DockerRunArguments
{
ImageId = _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBuster),
CommandToExecuteOnRun = "oryx",
CommandArguments = new[] { "version" }
});
// Assert
RunAsserts(
() =>
{
Assert.True(result.IsSuccess);
Assert.NotNull(result.StdErr);
Assert.DoesNotContain(".unspecified, Commit: unspecified", result.StdOut);
Assert.Contains(gitCommitID, result.StdOut);
Assert.Contains(expectedOryxVersion, result.StdOut);
},
result.GetDebugInfo());
}
[SkippableTheory]
[Trait("category", "runtime-bullseye")]
// [InlineData("7.4")]
// [InlineData("8.0")]
[InlineData("8.1")]
[InlineData("8.2")]
[InlineData("8.3")]
public void PhpRuntimeBullseyeImage_Contains_VersionAndCommit_Information(string version)
{
// we cant always rely on gitcommitid as env variable in case build context is not correctly passed
// so we should check agent_os environment variable to know if the build is happening in azure devops agent
// or locally, locally we need to skip this test
var agentOS = Environment.GetEnvironmentVariable("AGENT_OS");
Skip.If(string.IsNullOrEmpty(agentOS));
// Arrange
var gitCommitID = GitHelper.GetCommitID();
var buildNumber = Environment.GetEnvironmentVariable("IMAGE_BUILDNUMBER");
var expectedOryxVersion = string.Concat(Settings.OryxVersion, buildNumber);
// Act
var result = _dockerCli.Run(new DockerRunArguments
{
ImageId = _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBullseye),
CommandToExecuteOnRun = "oryx",
CommandArguments = new[] { "version" }
});
// Assert
RunAsserts(
() =>
{
Assert.True(result.IsSuccess);
Assert.NotNull(result.StdErr);
Assert.DoesNotContain(".unspecified, Commit: unspecified", result.StdOut);
Assert.Contains(gitCommitID, result.StdOut);
Assert.Contains(expectedOryxVersion, result.StdOut);
},
result.GetDebugInfo());
}
[Theory]
[Trait("category", "runtime-buster")]
// [InlineData("7.4")]
// [InlineData("8.0")]
[InlineData("8.1")]
[InlineData("8.2")]
[InlineData("8.3")]
public void Redis_IsInstalled_For_Buster(string version)
{
// Arrange & Act
var result = _dockerCli.Run(new DockerRunArguments
{
ImageId = _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBuster),
CommandToExecuteOnRun = "php",
CommandArguments = new[] { "-m", " | grep redis);" }
});
// Assert
var output = result.StdOut.ToString();
RunAsserts(() =>
{
Assert.True(result.IsSuccess);
Assert.Contains("redis", output);
},
result.GetDebugInfo());
}
[Theory]
[Trait("category", "runtime-bullseye")]
// [InlineData("7.4")]
// [InlineData("8.0")]
[InlineData("8.1")]
[InlineData("8.2")]
[InlineData("8.3")]
public void Redis_IsInstalled_For_Bullseye(string version)
{
// Arrange & Act
var result = _dockerCli.Run(new DockerRunArguments
{
ImageId = _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBullseye),
CommandToExecuteOnRun = "php",
CommandArguments = new[] { "-m", " | grep redis);" }
});
// Assert
var output = result.StdOut.ToString();
RunAsserts(() =>
{
Assert.True(result.IsSuccess);
Assert.Contains("redis", output);
},
result.GetDebugInfo());
}
[Theory]
[Trait("category", "runtime-buster")]
// [InlineData("8.0")]
[InlineData("8.1")]
[InlineData("8.2")]
[InlineData("8.3")]
public void SqlSrv_IsInstalled_For_Buster(string version)
{
// Arrange & Act
var result = _dockerCli.Run(new DockerRunArguments
{
ImageId = _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBuster),
CommandToExecuteOnRun = "php",
CommandArguments = new[] { "-m", " | grep pdo_sqlsrv);" }
});
// Assert
var output = result.StdOut.ToString();
RunAsserts(() =>
{
Assert.True(result.IsSuccess);
Assert.Contains("pdo_sqlsrv", output);
},
result.GetDebugInfo());
}
[Theory]
[Trait("category", "runtime-bullseye")]
// [InlineData("8.0")]
[InlineData("8.1")]
[InlineData("8.2")]
[InlineData("8.3")]
public void SqlSrv_IsInstalled_For_Bullseye(string version)
{
// Arrange & Act
var result = _dockerCli.Run(new DockerRunArguments
{
ImageId = _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBullseye),
CommandToExecuteOnRun = "php",
CommandArguments = new[] { "-m", " | grep pdo_sqlsrv);" }
});
// Assert
var output = result.StdOut.ToString();
RunAsserts(() =>
{
Assert.True(result.IsSuccess);
Assert.Contains("pdo_sqlsrv", output);
},
result.GetDebugInfo());
}
[Theory]
[Trait("category", "runtime-bookworm")]
[InlineData("8.3")]
public void SqlSrv_IsInstalled_For_Bookworm(string version)
{
// Arrange & Act
var result = _dockerCli.Run(new DockerRunArguments
{
ImageId = _imageHelper.GetRuntimeImage("php", version, ImageTestHelperConstants.OsTypeDebianBookworm),
CommandToExecuteOnRun = "php",
CommandArguments = new[] { "-m", " | grep pdo_sqlsrv);" }
});
// Assert
var output = result.StdOut.ToString();
RunAsserts(() =>
{
Assert.True(result.IsSuccess);
Assert.Contains("pdo_sqlsrv", output);
},
result.GetDebugInfo());
}
}
}