Publish windows images for smoke tests backends (#2621)

* Build and push Windows Docker images for fake-backend and collector

* Run on main branch only

* Update smoke-tests/fake-backend/build.gradle

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>

* Fix comment

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
This commit is contained in:
Nikita Salnikov-Tarnovski 2021-03-24 13:20:40 +02:00 committed by GitHub
parent 79d7e88e53
commit 2a2d4ae2f8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 119 additions and 13 deletions

View File

@ -5,11 +5,11 @@ on:
paths:
- 'smoke-tests/fake-backend/**'
- '.github/workflows/build-smoke-dist-fakebackend.yaml'
branches: 'main'
branches: ['main']
workflow_dispatch:
jobs:
publish:
publishLinux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
@ -32,5 +32,42 @@ jobs:
- name: Build Docker Image
run: |
./gradlew jib -Djib.httpTimeout=120000 -Djib.console=plain
TAG="$(date '+%Y%m%d').$GITHUB_RUN_ID"
echo "Using extra tag $TAG"
./gradlew jib -Djib.httpTimeout=120000 -Djib.console=plain -PextraTag=$TAG
working-directory: smoke-tests/fake-backend
publishWindows:
runs-on: windows-latest
defaults:
run:
shell: bash
steps:
- name: Support longpaths
run: git config --system core.longpaths true
- uses: actions/checkout@v2
- name: Set up JDK 11 for running Gradle
uses: actions/setup-java@v1
with:
java-version: 11
- name: Cache gradle dependencies
uses: burrunan/gradle-cache-action@v1.10
with:
job-id: fakebackend-smoke
- name: Login to GitHub Package Registry
uses: azure/docker-login@v1
with:
login-server: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GHCR_TOKEN }}
- name: Build Docker Image
run: |
TAG="$(date '+%Y%m%d').$GITHUB_RUN_ID"
echo "Using extra tag $TAG"
./gradlew dockerPush -PextraTag=$TAG
working-directory: smoke-tests/fake-backend

View File

@ -1,6 +1,12 @@
import com.bmuschko.gradle.docker.tasks.image.DockerBuildImage
import com.bmuschko.gradle.docker.tasks.image.DockerPushImage
plugins {
id 'java'
id 'com.google.cloud.tools.jib' version '2.5.0'
id "com.bmuschko.docker-remote-api" version "6.7.0"
id 'com.github.johnrengelman.shadow' version '6.1.0'
id "de.undercouch.download" version "4.1.1"
}
group = 'io.opentelemetry'
@ -8,18 +14,10 @@ version = '0.0.1-SNAPSHOT'
repositories {
mavenCentral()
// this is only needed for the working against unreleased otel-java snapshots
maven {
url "https://oss.jfrog.org/artifactory/oss-snapshot-local"
content {
includeGroup "io.opentelemetry"
}
}
}
compileJava {
options.release = 11
options.release.set(11)
}
dependencies {
@ -28,7 +26,71 @@ dependencies {
implementation("org.slf4j:slf4j-simple:1.7.30")
}
shadowJar {
manifest {
attributes 'Main-Class': 'io.opentelemetry.smoketest.fakebackend.FakeBackendMain'
}
}
ext {
extraTag = findProperty("extraTag") ?: new Date().format("yyyyMMdd.HHmmSS")
}
jib {
from.image = "gcr.io/distroless/java-debian10:11"
to.image = "ghcr.io/open-telemetry/java-test-containers:smoke-fake-backend-${new Date().format("yyyyMMdd.HHmmSS")}"
to.image = "ghcr.io/open-telemetry/java-test-containers:smoke-fake-backend-$extraTag"
}
//windows containers are built manually since jib does not support windows containers yet
def backendDockerBuildDir = new File(project.buildDir, "docker-backend")
task windowsBackendImagePrepare(type: Copy) {
dependsOn(shadowJar)
into(backendDockerBuildDir)
from("src/docker/backend")
from(shadowJar.outputs) {
rename { _ -> "fake-backend.jar" }
}
}
task windowsBackendImageBuild(type: DockerBuildImage) {
dependsOn(windowsBackendImagePrepare)
inputDir = backendDockerBuildDir
it.images.add "ghcr.io/open-telemetry/java-test-containers:smoke-fake-backend-windows-$extraTag"
it.dockerFile = new File(backendDockerBuildDir, "windows.dockerfile")
}
def collectorDockerBuildDir = new File(project.buildDir, "docker-collector")
task windowsCollectorBinaryDownload(type: Download) {
doFirst {
collectorDockerBuildDir.mkdirs()
}
src("https://github.com/open-telemetry/opentelemetry-collector/releases/latest/download/otelcol_windows_amd64.exe")
dest(collectorDockerBuildDir)
}
task windowsCollectorImagePrepare(type: Copy) {
dependsOn(windowsCollectorBinaryDownload)
into(collectorDockerBuildDir)
from("src/docker/collector")
}
task windowsCollectorImageBuild(type: DockerBuildImage) {
dependsOn(windowsCollectorImagePrepare)
inputDir = collectorDockerBuildDir
it.images.add "ghcr.io/open-telemetry/java-test-containers:collector-windows-$extraTag"
it.dockerFile = new File(collectorDockerBuildDir, "windows.dockerfile")
}
tasks.create("dockerPush", DockerPushImage) {
group = "publishing"
description = "Push all Docker images for the test backend"
dependsOn(windowsBackendImageBuild, windowsCollectorImageBuild)
images.set(["ghcr.io/open-telemetry/java-test-containers:smoke-fake-backend-windows-$extraTag",
"ghcr.io/open-telemetry/java-test-containers:collector-windows-$extraTag"])
}

View File

@ -0,0 +1,3 @@
FROM winamd64/openjdk:11.0.9.1-jdk-windowsservercore-1809
COPY fake-backend.jar /fake-backend.jar
CMD ["java", "-jar", "/fake-backend.jar"]

View File

@ -0,0 +1,4 @@
FROM mcr.microsoft.com/windows/servercore:ltsc2019
COPY otelcol_windows_amd64.exe /otelcol_windows_amd64.exe
ENV NO_WINDOWS_SERVICE=1
ENTRYPOINT /otelcol_windows_amd64.exe