Skip to content

Commit

Permalink
Add jetbrains/teamcity-agent:2021.2-linux; update dotnet 3.1.19
Browse files Browse the repository at this point in the history
  • Loading branch information
Tho Ho committed Oct 27, 2021
1 parent 07b7463 commit d097aa7
Show file tree
Hide file tree
Showing 3 changed files with 132 additions and 3 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ https://hub.docker.com/r/teslaconsulting/teamcity-agent

Update per build.

- Latest tag: `2021.1.4-linux`
- Latest tag: `2021.2-linux`
- .NET 6 SDK: 6.0.0-rc.2
- .NET 5 SDK: 5.0.402
- .NET 5 and ASP.NETCore 5: 5.0.11
- .NETCore 3.1 SDK: 3.1.409
- .NET 3.1 and ASP.NETCore 3.1: 3.1.15
- .NETCore 3.1 SDK: 3.1.413
- .NET 3.1 and ASP.NETCore 3.1: 3.1.19
- Powershell Core: 7.1.4
- MinVer Cli: 2.5.0
57 changes: 57 additions & 0 deletions teamcity-agent/2021.2/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
ARG DOTNET_SDK_VERSION5=5.0.402
ARG DOTNET_SDK_VERSION6=6.0.100-rc.2
ARG MINVER_IMAGE_TAG=2.5.0
ARG MINVER_IMAGE=teslaconsulting/minver-cli:$MINVER_IMAGE_TAG
ARG TEAMCITYAGENT_IMAGE_TAG=2021.2-linux

FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_SDK_VERSION6}-focal AS dotnetsdk6
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_SDK_VERSION5}-focal AS dotnetsdk5
FROM $MINVER_IMAGE AS minver

FROM scratch AS build
WORKDIR /usr/share
COPY --from=dotnetsdk5 /usr/share/dotnet /usr/share/dotnet
COPY --from=dotnetsdk6 /usr/share/dotnet /usr/share/dotnet
COPY --from=dotnetsdk5 /usr/share/powershell /usr/share/powershell
COPY --from=minver /usr/share/minver-cli /usr/share/minver-cli

FROM jetbrains/teamcity-agent:${TEAMCITYAGENT_IMAGE_TAG} AS final

USER root

ARG DOTNET_VERSION31=3.1.19
ARG DOTNET_SDK_VERSION31=3.1.413
ARG DOTNET_VERSION6=6.0.0-rc.2.21480.5
ARG DOTNET_VERSION=5.0.11
ARG DOTNET_SDK_VERSION6
ARG DOTNET_SDK_VERSION5
ARG POWERSHELL_VERSION=7.1.4
ARG MINVER_IMAGE_TAG
# Install PowerShell global tool
# Install minver Console global tool
ENV DOTNET_VERSION31=${DOTNET_VERSION31} \
ASPNET_VERSION31=${DOTNET_VERSION31} \
DOTNET_SDK_VERSION31=${DOTNET_SDK_VERSION31} \
DOTNET_VERSION6=${DOTNET_VERSION6} \
DOTNET_VERSION=${DOTNET_VERSION} \
ASPNET_VERSION=${DOTNET_VERSION} \
DOTNET_SDK_VERSION6=${DOTNET_SDK_VERSION6} \
DOTNET_SDK_VERSION=${DOTNET_SDK_VERSION5} \
POWERSHELL_VERSION=${POWERSHELL_VERSION} \
POWERSHELL_DISTRIBUTION_CHANNEL=PSDocker-DotnetSDK-Ubuntu-20.04 \
DOTNET_MINVER_VERSION=$MINVER_IMAGE_TAG

COPY --from=build /usr/share /usr/share

RUN ln -s /usr/share/powershell/pwsh /usr/bin/pwsh \
&& chmod 755 /usr/share/powershell/pwsh \
&& ln -s /usr/share/minver-cli/minver /usr/bin/minver \
&& chmod 755 /usr/share/minver-cli/minver \
# Install module Pester - for root user
&& pwsh -Command "Install-Module -Name Pester -Scope AllUsers -Force" \
&& dotnet nuget locals all --clear

USER buildagent

# ENV PATH="$PATH:/home/buildagent/.dotnet/tools"
# RUN dotnet tool install --global minver-cli --version $DOTNET_MINVER_VERSION
72 changes: 72 additions & 0 deletions teamcity-agent/2021.2/hooks/build
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
#!/bin/bash

IMAGE_NAME1="${DOCKER_REPO}:${SOURCE_COMMIT:0:7}"
IMAGE_LATEST="${DOCKER_REPO}:latest"

cat <<EOF
Current Dir: ${PWD}
SOURCE_BRANCH: ${SOURCE_BRANCH}
SOURCE_COMMIT: ${SOURCE_COMMIT}
COMMIT_MSG: ${COMMIT_MSG}
DOCKER_REPO: ${DOCKER_REPO}
DOCKERFILE_PATH: ${DOCKERFILE_PATH}
DOCKER_TAG: ${DOCKER_TAG}
IMAGE_NAME: ${IMAGE_NAME}
IMAGE_LATEST: ${IMAGE_LATEST}
IMAGE_NAME1: ${IMAGE_NAME1}
EOF

DOCKER_BUID="DOCKER_BUILDKIT=1 docker build . -f $DOCKERFILE_PATH -t $IMAGE_NAME"

if [[ -n "${MINVER_IMAGE}" ]]; then
echo "-- MINVER: ${MINVER_IMAGE}"
DOCKER_BUID="$DOCKER_BUID --build-arg MINVER_IMAGE=$MINVER_IMAGE"
fi

if [[ "${SOURCE_BRANCH}" -eq "main" ]]; then
unset IMAGE_LATEST
unset IMAGE_NAME3
echo "-- Commit: ${IMAGE_NAME1}"
DOCKER_BUID="$DOCKER_BUID -t $IMAGE_NAME1"
else
unset IMAGE_NAME1
echo "-- Latest: ${IMAGE_LATEST}"
DOCKER_BUID="$DOCKER_BUID -t $IMAGE_LATEST"

if [[ -n "${REPO2}" ]]; then
IMAGE_NAME2="${REPO2}:${DOCKER_TAG}"
DOCKER_BUID="$DOCKER_BUID -t $IMAGE_NAME2"
fi

if [[ -n "${IMAGE_NAME3}" ]]; then
DOCKER_BUID="$DOCKER_BUID -t $IMAGE_NAME3"
fi
fi

echo "Docker build=> ${DOCKER_BUID}"
eval $DOCKER_BUID

ret_val=$?
if [[ ${ret_val} -eq 0 ]]; then
if [[ -n "${IMAGE_NAME1}" ]]; then
echo "Pushing=> ${IMAGE_NAME1}"
docker push ${IMAGE_NAME1}
fi

if [[ -n "${IMAGE_LATEST}" ]]; then
echo "Pushing=> ${IMAGE_LATEST}"
docker push ${IMAGE_LATEST}
fi

if [[ -n "${IMAGE_NAME2}" ]]; then
echo "Pushing=> ${IMAGE_NAME2}"
docker push ${IMAGE_NAME2}
fi

if [[ -n "${IMAGE_NAME3}" ]]; then
echo "Pushing=> ${IMAGE_NAME3}"
docker push ${IMAGE_NAME3}
fi
else
exit ret_val
fi

0 comments on commit d097aa7

Please sign in to comment.