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:
parent
79d7e88e53
commit
2a2d4ae2f8
|
@ -5,11 +5,11 @@ on:
|
||||||
paths:
|
paths:
|
||||||
- 'smoke-tests/fake-backend/**'
|
- 'smoke-tests/fake-backend/**'
|
||||||
- '.github/workflows/build-smoke-dist-fakebackend.yaml'
|
- '.github/workflows/build-smoke-dist-fakebackend.yaml'
|
||||||
branches: 'main'
|
branches: ['main']
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
publish:
|
publishLinux:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
@ -32,5 +32,42 @@ jobs:
|
||||||
|
|
||||||
- name: Build Docker Image
|
- name: Build Docker Image
|
||||||
run: |
|
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
|
working-directory: smoke-tests/fake-backend
|
||||||
|
|
|
@ -1,6 +1,12 @@
|
||||||
|
import com.bmuschko.gradle.docker.tasks.image.DockerBuildImage
|
||||||
|
import com.bmuschko.gradle.docker.tasks.image.DockerPushImage
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id 'java'
|
id 'java'
|
||||||
id 'com.google.cloud.tools.jib' version '2.5.0'
|
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'
|
group = 'io.opentelemetry'
|
||||||
|
@ -8,18 +14,10 @@ version = '0.0.1-SNAPSHOT'
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
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 {
|
compileJava {
|
||||||
options.release = 11
|
options.release.set(11)
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
@ -28,7 +26,71 @@ dependencies {
|
||||||
implementation("org.slf4j:slf4j-simple:1.7.30")
|
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 {
|
jib {
|
||||||
from.image = "gcr.io/distroless/java-debian10:11"
|
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"])
|
||||||
}
|
}
|
||||||
|
|
|
@ -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"]
|
|
@ -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
|
Loading…
Reference in New Issue