Skip to content

Commit 6f295b8

Browse files
committed
ci: fixes docker image build after CFS deployment
Signed-off-by: Vincent Biret <vibiret@microsoft.com>
1 parent b06f85d commit 6f295b8

2 files changed

Lines changed: 34 additions & 2 deletions

File tree

.azure-pipelines/ci-build.yml

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,9 @@ extends:
388388
scriptLocation: inlineScript
389389
inlineScript: |
390390
az acr login --name $(REGISTRY)
391+
392+
- task: NuGetAuthenticate@1
393+
displayName: 'Authenticate Docker build to Azure Artifacts'
391394

392395
- pwsh: |
393396
$content = [XML](Get-Content $(Pipeline.Workspace)/Directory.Build.props)
@@ -473,27 +476,49 @@ extends:
473476
- bash: |
474477
echo "Building Docker image..."
475478
echo "Using build date: ${BUILDDATE}"
479+
if [ -z "${VSS_NUGET_ACCESSTOKEN:-}" ]; then
480+
echo "##vso[task.logissue type=error]VSS_NUGET_ACCESSTOKEN is not available. Ensure NuGetAuthenticate@1 ran successfully before docker build."
481+
exit 1
482+
fi
476483
# Using quotes around tags to prevent flag interpretation
477484
docker buildx build \
478485
--platform linux/amd64,linux/arm64/v8 \
479486
--push \
487+
--build-arg VSS_NUGET_EXTERNAL_FEED_ENDPOINTS \
488+
--build-arg VSS_NUGET_URI_PREFIXES \
489+
--secret id=vss_nuget_accesstoken,env=VSS_NUGET_ACCESSTOKEN \
480490
-t "$(REGISTRY)/$(IMAGE_NAME):nightly" \
481491
-t "$(REGISTRY)/$(IMAGE_NAME):${VERSION}.${BUILDDATE}${RUNNUMBER}" \
482492
"$(Pipeline.Workspace)"
483493
484494
displayName: 'Build and Push Nightly Image'
485495
condition: eq(variables['Build.SourceBranch'], variables['PREVIEW_BRANCH'])
496+
env:
497+
VSS_NUGET_ACCESSTOKEN: $(VSS_NUGET_ACCESSTOKEN)
498+
VSS_NUGET_EXTERNAL_FEED_ENDPOINTS: $(VSS_NUGET_EXTERNAL_FEED_ENDPOINTS)
499+
VSS_NUGET_URI_PREFIXES: $(VSS_NUGET_URI_PREFIXES)
486500
487501
- bash: |
488502
echo "Building Docker image for release..."
489-
docker buildx build\
503+
if [ -z "${VSS_NUGET_ACCESSTOKEN:-}" ]; then
504+
echo "##vso[task.logissue type=error]VSS_NUGET_ACCESSTOKEN is not available. Ensure NuGetAuthenticate@1 ran successfully before docker build."
505+
exit 1
506+
fi
507+
docker buildx build \
490508
--platform linux/amd64,linux/arm64/v8 \
491509
--push \
510+
--build-arg VSS_NUGET_EXTERNAL_FEED_ENDPOINTS \
511+
--build-arg VSS_NUGET_URI_PREFIXES \
512+
--secret id=vss_nuget_accesstoken,env=VSS_NUGET_ACCESSTOKEN \
492513
-t "$(REGISTRY)/$(IMAGE_NAME):latest" \
493514
-t "$(REGISTRY)/$(IMAGE_NAME):${VERSION}" \
494515
"$(Pipeline.Workspace)"
495516
displayName: 'Build and Push Release Image'
496517
condition: contains(variables['Build.SourceBranch'], 'refs/tags/v')
518+
env:
519+
VSS_NUGET_ACCESSTOKEN: $(VSS_NUGET_ACCESSTOKEN)
520+
VSS_NUGET_EXTERNAL_FEED_ENDPOINTS: $(VSS_NUGET_EXTERNAL_FEED_ENDPOINTS)
521+
VSS_NUGET_URI_PREFIXES: $(VSS_NUGET_URI_PREFIXES)
497522
498523
# once the nuget has been released, fill this form to get the public documentation updated.
499524
# https://dev.azure.com/msft-skilling/Content/_workitems/create/User%20Story?templateId=39fb91e3-64a2-4c8a-83db-b2bdf3603dd3&ownerId=c4a28f90-17ae-4384-b514-7273392b082b

Dockerfile

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
1+
# syntax=docker/dockerfile:1.2
12
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build-env
23
WORKDIR /app
4+
ARG VSS_NUGET_URI_PREFIXES
5+
ARG VSS_NUGET_EXTERNAL_FEED_ENDPOINTS
36

47
COPY ./src ./hidi/src
58
COPY ./Directory.Build.props ./hidi/Directory.Build.props
9+
COPY ./nuget.config ./hidi/nuget.config
610
COPY ./README.md ./hidi/README.md
711
WORKDIR /app/hidi
8-
RUN dotnet publish ./src/Microsoft.OpenApi.Hidi/Microsoft.OpenApi.Hidi.csproj -c Release
12+
RUN wget -qO- https://aka.ms/install-artifacts-credprovider.sh | bash
13+
RUN --mount=type=secret,id=vss_nuget_accesstoken,target=/run/secrets/vss_nuget_accesstoken \
14+
VSS_NUGET_ACCESSTOKEN="$(cat /run/secrets/vss_nuget_accesstoken)" \
15+
dotnet publish ./src/Microsoft.OpenApi.Hidi/Microsoft.OpenApi.Hidi.csproj -c Release -p:RestoreConfigFile=/app/hidi/nuget.config
916

1017
FROM mcr.microsoft.com/dotnet/runtime:8.0-jammy-chiseled AS runtime
1118
WORKDIR /app

0 commit comments

Comments
 (0)