From 78d93217a86cd047089bfb51d2e2a8dfb4b9d170 Mon Sep 17 00:00:00 2001 From: Israel Blancas Date: Mon, 2 Oct 2023 16:04:13 +0200 Subject: [PATCH] [chore] Build and publish application hosted in the repository for the DotNet instrumentation E2E test (#2082) * Build and publish the DotNet E2E image Signed-off-by: Israel Blancas * Build the image for linux/arm64,linux/amd64,linux/s390x and linux/ppc64le Signed-off-by: Israel Blancas * Remove the application and generate it from the CLI Signed-off-by: Israel Blancas * Fix architectures Signed-off-by: Israel Blancas * Fix the tags Signed-off-by: Israel Blancas * Fix tag for E2E Golang application Signed-off-by: Israel Blancas * Fix tag Signed-off-by: Israel Blancas * Fix tag Signed-off-by: Israel Blancas * Make the workflow reusable Signed-off-by: Israel Blancas * Fix name Signed-off-by: Israel Blancas * Remove deps Signed-off-by: Israel Blancas --------- Signed-off-by: Israel Blancas --- ...ublish-autoinstrumentation-e2e-images.yaml | 53 +++-------------- ...ublish-autoinstrumentation-e2e-images.yaml | 58 +++++++++++++++++++ .../dotnet/Dockerfile | 18 ++++++ 3 files changed, 85 insertions(+), 44 deletions(-) create mode 100644 .github/workflows/reusable-publish-autoinstrumentation-e2e-images.yaml create mode 100644 tests/instrumentation-e2e-apps/dotnet/Dockerfile diff --git a/.github/workflows/publish-autoinstrumentation-e2e-images.yaml b/.github/workflows/publish-autoinstrumentation-e2e-images.yaml index 9d761e09a9..5ceb0b9daf 100644 --- a/.github/workflows/publish-autoinstrumentation-e2e-images.yaml +++ b/.github/workflows/publish-autoinstrumentation-e2e-images.yaml @@ -19,47 +19,12 @@ concurrency: jobs: golang: - runs-on: ubuntu-20.04 - - steps: - - uses: actions/checkout@v4 - - - name: Docker meta - id: meta - uses: docker/metadata-action@v5 - with: - images: | - ghcr.io/open-telemetry/opentelemetry-operator/e2e-test-app-golang - tags: | - type=ref,event=branch - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Cache Docker layers - uses: actions/cache@v3 - with: - path: /tmp/.buildx-cache - key: ${{ runner.os }}-buildx-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-buildx- - - - name: Login to GitHub Package Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Build and push - uses: docker/build-push-action@v5 - with: - tags: ${{ steps.meta.outputs.tags }} - context: tests/instrumentation-e2e-apps/golang - platforms: linux/arm64,linux/amd64,linux/s390x,linux/ppc64le - push: ${{ github.event_name == 'push' }} - cache-from: type=local,src=/tmp/.buildx-cache - cache-to: type=local,dest=/tmp/.buildx-cache + uses: ./.github/workflows/reusable-publish-autoinstrumentation-e2e-images.yaml + with: + language: golang + platforms: linux/arm64,linux/amd64,linux/s390x,linux/ppc64le + dotnet: + uses: ./.github/workflows/reusable-publish-autoinstrumentation-e2e-images.yaml + with: + language: dotnet + platforms: linux/arm64,linux/amd64 diff --git a/.github/workflows/reusable-publish-autoinstrumentation-e2e-images.yaml b/.github/workflows/reusable-publish-autoinstrumentation-e2e-images.yaml new file mode 100644 index 0000000000..cfe6268864 --- /dev/null +++ b/.github/workflows/reusable-publish-autoinstrumentation-e2e-images.yaml @@ -0,0 +1,58 @@ +name: Reusable - Publish autoinstrumentation E2E images + +on: + workflow_call: + inputs: + language: + type: string + required: true + platforms: + type: string + required: true + +jobs: + publish-e2e-image: + runs-on: ubuntu-20.04 + + steps: + - uses: actions/checkout@v4 + + - name: Docker meta + id: meta + uses: docker/metadata-action@v5 + with: + images: | + ghcr.io/open-telemetry/opentelemetry-operator/e2e-test-app-${{ inputs.language }} + tags: | + type=ref,event=branch + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Cache Docker layers + uses: actions/cache@v3 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- + + - name: Login to GitHub Package Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v5 + with: + tags: ${{ steps.meta.outputs.tags }} + context: tests/instrumentation-e2e-apps/${{ inputs.language }} + platforms: ${{ inputs.platforms }} + push: ${{ github.event_name == 'push' }} + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,dest=/tmp/.buildx-cache diff --git a/tests/instrumentation-e2e-apps/dotnet/Dockerfile b/tests/instrumentation-e2e-apps/dotnet/Dockerfile new file mode 100644 index 0000000000..c7f2eb8330 --- /dev/null +++ b/tests/instrumentation-e2e-apps/dotnet/Dockerfile @@ -0,0 +1,18 @@ +FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:7.0.400-bookworm-slim-amd64 AS build +ARG TARGETARCH +WORKDIR /source + +RUN dotnet new webapp -o MyWebApp --no-https -f net7.0 + +WORKDIR /source/MyWebApp +RUN dotnet publish -a $TARGETARCH -o /app + +FROM mcr.microsoft.com/dotnet/aspnet:7.0.10-bullseye-slim + +ENV DOTNET_ROLL_FORWARD=Major +ENV DOTNET_ROLL_FORWARD_PRE_RELEASE=1 + +WORKDIR /app +COPY --from=build /app/ . + +ENTRYPOINT ["./MyWebApp"] \ No newline at end of file