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:
|
||||
- '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
|
||||
|
|
|
@ -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"])
|
||||
}
|
||||
|
|
|
@ -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