Skip to content

Commit

Permalink
[chore] Build and publish application hosted in the repository for th…
Browse files Browse the repository at this point in the history
…e DotNet instrumentation E2E test (#2082)

* Build and publish the DotNet E2E image

Signed-off-by: Israel Blancas <iblancasa@gmail.com>

* Build the image for linux/arm64,linux/amd64,linux/s390x and linux/ppc64le

Signed-off-by: Israel Blancas <iblancasa@gmail.com>

* Remove the application and generate it from the CLI

Signed-off-by: Israel Blancas <iblancasa@gmail.com>

* Fix architectures

Signed-off-by: Israel Blancas <iblancasa@gmail.com>

* Fix the tags

Signed-off-by: Israel Blancas <iblancasa@gmail.com>

* Fix tag for E2E Golang application

Signed-off-by: Israel Blancas <iblancasa@gmail.com>

* Fix tag

Signed-off-by: Israel Blancas <iblancasa@gmail.com>

* Fix tag

Signed-off-by: Israel Blancas <iblancasa@gmail.com>

* Make the workflow reusable

Signed-off-by: Israel Blancas <iblancasa@gmail.com>

* Fix name

Signed-off-by: Israel Blancas <iblancasa@gmail.com>

* Remove deps

Signed-off-by: Israel Blancas <iblancasa@gmail.com>

---------

Signed-off-by: Israel Blancas <iblancasa@gmail.com>
  • Loading branch information
iblancasa authored Oct 2, 2023
1 parent b9a701e commit 4e3e79c
Show file tree
Hide file tree
Showing 3 changed files with 85 additions and 44 deletions.
53 changes: 9 additions & 44 deletions .github/workflows/publish-autoinstrumentation-e2e-images.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
@@ -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
18 changes: 18 additions & 0 deletions tests/instrumentation-e2e-apps/dotnet/Dockerfile
Original file line number Diff line number Diff line change
@@ -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"]

0 comments on commit 4e3e79c

Please sign in to comment.