Skip to content

Commit f04a81d

Browse files
committed
Runs peer-forward and log analytics end-to-end tests on both ARM and x86 architectures. Updates these projects to use the current architecture Linux distribution when running. Include the ARM runner in the GitHub Actions matrix strategy. Combines the two GitHub Actions for peer-forwarder into a single GitHub Action.
Signed-off-by: David Venable <dlv@amazon.com>
1 parent e62ef21 commit f04a81d

File tree

5 files changed

+50
-45
lines changed

5 files changed

+50
-45
lines changed

.github/workflows/data-prepper-peer-forwarder-local-node-e2e-tests.yml

Lines changed: 0 additions & 29 deletions
This file was deleted.

.github/workflows/data-prepper-log-analytics-basic-grok-e2e-tests.yml renamed to .github/workflows/e2e-tests-log-analytics.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# This workflow will build a Java project with Gradle
22
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
33

4-
name: Data Prepper Log Analytics Basic Grok End-to-end test with Gradle
4+
name: End-to-End Tests - Log Analytics
55

66
on:
77
push:
@@ -15,16 +15,18 @@ jobs:
1515
matrix:
1616
java: [11, 17, 21, docker]
1717
test: ['basicLogEndToEndTest', 'parallelGrokStringSubstituteTest']
18+
runner: [ubuntu-latest, ubuntu-24.04-arm]
1819
fail-fast: false
1920

20-
runs-on: ubuntu-latest
21+
runs-on: ${{ matrix.runner }}
2122

2223
steps:
23-
- name: Set up JDK 11
24-
uses: actions/setup-java@v1
24+
- name: Set up JDK
25+
uses: actions/setup-java@v2
2526
with:
27+
distribution: 'temurin'
2628
java-version: 11
2729
- name: Checkout Data Prepper
2830
uses: actions/checkout@v2
29-
- name: Run basic grok end-to-end tests with Gradle
31+
- name: Run log analytics end-to-end tests with Gradle
3032
run: ./gradlew -PendToEndJavaVersion=${{ matrix.java }} :e2e-test:log:${{ matrix.test }}

.github/workflows/data-prepper-peer-forwarder-static-e2e-tests.yml renamed to .github/workflows/e2e-tests-peer-forwarder.yml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# This workflow will build a Java project with Gradle
22
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
33

4-
name: Data Prepper Static List Peer Forwarder with SSL and mTLS End-to-end test with Gradle
4+
name: End-to-End Tests - Peer Forwarder
55

66
on:
77
push:
@@ -14,17 +14,19 @@ jobs:
1414
strategy:
1515
matrix:
1616
java: [11, 17, 21, docker]
17-
test: ['staticAggregateEndToEndTest', 'staticLogMetricsEndToEndTest']
17+
test: ['staticAggregateEndToEndTest', 'staticLogMetricsEndToEndTest', 'localAggregateEndToEndTest']
18+
runner: [ubuntu-latest, ubuntu-24.04-arm]
1819
fail-fast: false
1920

20-
runs-on: ubuntu-latest
21+
runs-on: ${{ matrix.runner }}
2122

2223
steps:
23-
- name: Set up JDK 11
24-
uses: actions/setup-java@v1
24+
- name: Set up JDK
25+
uses: actions/setup-java@v2
2526
with:
27+
distribution: 'temurin'
2628
java-version: 11
2729
- name: Checkout Data Prepper
2830
uses: actions/checkout@v2
29-
- name: Run raw-span latest release compatibility end-to-end tests with Gradle
31+
- name: Run peer-forward end-to-end tests with Gradle
3032
run: ./gradlew -PendToEndJavaVersion=${{ matrix.java }} :e2e-test:peerforwarder:${{ matrix.test }}

e2e-test/build.gradle

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
/*
22
* Copyright OpenSearch Contributors
33
* SPDX-License-Identifier: Apache-2.0
4+
*
5+
* The OpenSearch Contributors require contributions made to
6+
* this file be licensed under the Apache-2.0 license or a
7+
* compatible open source license.
48
*/
59

610

@@ -54,22 +58,24 @@ subprojects {
5458
}
5559

5660
tasks.register('copyDataPrepperArchive', Copy) {
57-
dependsOn ':release:archives:linux:linuxx64DistTar'
61+
def distTask = project(':release:archives').ext.getCurrentPlatformDistTask('linux')
62+
dependsOn distTask
5863
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
59-
from project(':release:archives:linux').tasks.getByName('linuxx64DistTar').archiveFile.get().asFile
64+
from project(':release:archives').ext.getCurrentPlatformDistFile('linux')
6065
into("${project.buildDir}/docker/")
6166
}
6267

6368
tasks.register('createDataPrepperDockerFile', Dockerfile) {
6469
dependsOn copyDataPrepperArchive
65-
dependsOn ':release:archives:linux:linuxx64DistTar'
70+
def distTask = project(':release:archives').ext.getCurrentPlatformDistTask('linux')
71+
dependsOn distTask
6672
destFile = project.file('build/docker/Dockerfile')
6773

6874
from(dataPrepperBaseImage)
6975
runCommand('useradd -u 1012 -M -U -d / -s /sbin/nologin -c "Data Prepper Test" data_prepper_test')
7076
runCommand('mkdir -p /var/log/data-prepper')
71-
addFile(project(':release:archives:linux').tasks.getByName('linuxx64DistTar').archiveFileName.get(), '/usr/share')
72-
runCommand("mv /usr/share/${project(':release:archives:linux').tasks.getByName('linuxx64DistTar').archiveFileName.get().replace('.tar.gz', '')} /usr/share/data-prepper")
77+
addFile(project(':release:archives').ext.getCurrentPlatformDistFileName('linux'), '/usr/share')
78+
runCommand("mv /usr/share/${project(':release:archives').ext.getCurrentPlatformDistFileName('linux').replace('.tar.gz', '')} /usr/share/data-prepper")
7379
runCommand('chown -R 1012:1012 /usr/share/data-prepper /var/log/data-prepper')
7480
user('data_prepper_test')
7581
workingDir('/usr/share/data-prepper')

release/archives/build.gradle

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,3 +194,27 @@ task buildTar {
194194
task buildArchives {
195195
dependsOn buildTar
196196
}
197+
198+
ext {
199+
getCurrentArchitecture = {
200+
def osArch = System.getProperty("os.arch")
201+
return osArch == "aarch64" || osArch == "arm64" ? "arm64" : "x64"
202+
}
203+
204+
getCurrentPlatformDistTask = { platform ->
205+
def arch = getCurrentArchitecture()
206+
return ":release:archives:${platform}:${platform}${arch}DistTar"
207+
}
208+
209+
getCurrentPlatformDistFile = { platform ->
210+
def arch = getCurrentArchitecture()
211+
def taskName = "${platform}${arch}DistTar"
212+
return project(":release:archives:${platform}").tasks.getByName(taskName).archiveFile.get().asFile
213+
}
214+
215+
getCurrentPlatformDistFileName = { platform ->
216+
def arch = getCurrentArchitecture()
217+
def taskName = "${platform}${arch}DistTar"
218+
return project(":release:archives:${platform}").tasks.getByName(taskName).archiveFileName.get()
219+
}
220+
}

0 commit comments

Comments
 (0)