diff --git a/.github/workflows/mirrormaker_offset_tool_release.yml b/.github/workflows/mirrormaker_offset_tool_release.yml new file mode 100644 index 0000000000000..daefaa4a2a62f --- /dev/null +++ b/.github/workflows/mirrormaker_offset_tool_release.yml @@ -0,0 +1,40 @@ +# The workflow to create PRs with release commits. +name: Create Mirrormaker Offset Sync Inspector release +on: + push: + tags: + - mm2-offset-sync-inspector-* + +permissions: + contents: write + +jobs: + build: + name: Create Release + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Setup Java SDK + uses: actions/setup-java@v4 + with: + java-version: 11 + distribution: "temurin" + + - name: Checkout code + uses: actions/checkout@v4 + + - name: Build + run: | + github_ref=${{ github.ref }} + mm2_offset_sync_inspector_version=$(echo ${github_ref##*-}) + MM2_OFFSET_SYNC_INSPECTOR_VERSION=${mm2_offset_sync_inspector_version} ./gradlew :connect:mirror:releaseMirrorMaker2OffsetToolInspectorTarGz + export release_file=$(ls ./connect/mirror/build/distributions/ | grep tgz) + echo release_file=${release_file} >> $GITHUB_ENV + echo release_file_path=`realpath ./connect/mirror/build/distributions/${release_file}` >> $GITHUB_ENV + + - name: Upload MirrorMaker Offset Inspector tgz + uses: softprops/action-gh-release@v2 + if: startsWith(github.ref, 'refs/tags/mm2-offset-sync-inspector-') + with: + files: ${{ env.release_file_path }} diff --git a/build.gradle b/build.gradle index 41229843eeca3..578bea63fe859 100644 --- a/build.gradle +++ b/build.gradle @@ -3496,6 +3496,28 @@ project(':connect:mirror') { jar { dependsOn copyDependantLibs } + + tasks.create(name: "releaseMirrorMaker2OffsetToolInspectorTarGz", dependsOn: configurations.archives.artifacts, type: Tar) { + def mm2OffsetSyncInspectorVersion = System.getenv("MM2_OFFSET_SYNC_INSPECTOR_VERSION") + if (mm2OffsetSyncInspectorVersion == null) { + mm2OffsetSyncInspectorVersion = "SNAPSHOT" + } + var commitHash = determineCommitId() + into "kafka_mm2_offset_tool_inspector_g${versions.baseScala}-${commitHash}-${mm2OffsetSyncInspectorVersion}" + archiveFileName = "mm2_offset_tool_inspector_${versions.baseScala}-g${commitHash}-${mm2OffsetSyncInspectorVersion}.tgz" + compression = Compression.GZIP + from(project.file("$rootDir/bin/kafka-mirrormaker-offset-sync-inspector.sh")) { into "bin/" } + from(project.file("$rootDir/bin/kafka-run-class.sh")) { into "bin/" } + from(project.file("$rootDir/licenses")) { into "licenses/" } + from "$rootDir/LICENSE-binary" rename {String filename -> filename.replace("-binary", "")} + from "$rootDir/NOTICE-binary" rename {String filename -> filename.replace("-binary", "")} + from(project(':clients').jar) { into("libs/") } + from(project(':clients').configurations.runtimeClasspath) { into("libs/") } + from(project(':connect:mirror').jar) { into("libs/") } + from(project(':connect:mirror').configurations.runtimeClasspath) { into("libs/") } + duplicatesStrategy 'exclude' + } + } project(':connect:mirror-client') {