Skip to content

Commit 85d7b5d

Browse files
thongdk8ypeckstadt
andauthored
Add Docker support for ScalarDB Data Loader CLI (#2758)
Co-authored-by: Peckstadt Yves <[email protected]>
1 parent 30057d8 commit 85d7b5d

File tree

8 files changed

+66
-1
lines changed

8 files changed

+66
-1
lines changed

.github/workflows/ci.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,12 @@ jobs:
6767
run: |
6868
mkdir -p /tmp/gradle_test_reports/core
6969
mkdir -p /tmp/gradle_test_reports/schema-loader
70+
mkdir -p /tmp/gradle_test_reports/data-loader/core
71+
mkdir -p /tmp/gradle_test_reports/data-loader/cli
7072
cp -a core/build/reports/tests/test /tmp/gradle_test_reports/core/
7173
cp -a schema-loader/build/reports/tests/test /tmp/gradle_test_reports/schema-loader/
74+
cp -a data-loader/core/build/reports/tests/test /tmp/gradle_test_reports/data-loader/core/
75+
cp -a data-loader/cli/build/reports/tests/test /tmp/gradle_test_reports/data-loader/cli/
7276
7377
- name: Upload Gradle test reports
7478
if: always()
@@ -83,9 +87,13 @@ jobs:
8387
mkdir -p /tmp/gradle_spotbugs_reports/core
8488
mkdir -p /tmp/gradle_spotbugs_reports/schema-loader
8589
mkdir -p /tmp/gradle_spotbugs_reports/integration-test
90+
mkdir -p /tmp/gradle_spotbugs_reports/data-loader/core
91+
mkdir -p /tmp/gradle_spotbugs_reports/data-loader/cli
8692
cp -a core/build/reports/spotbugs /tmp/gradle_spotbugs_reports/core/
8793
cp -a schema-loader/build/reports/spotbugs /tmp/gradle_spotbugs_reports/schema-loader/
8894
cp -a integration-test/build/reports/spotbugs /tmp/gradle_spotbugs_reports/integration-test/
95+
cp -a data-loader/core/build/reports/spotbugs /tmp/gradle_spotbugs_reports/data-loader/core/
96+
cp -a data-loader/cli/build/reports/spotbugs /tmp/gradle_spotbugs_reports/data-loader/cli/
8997
9098
- name: Upload Spotbugs reports
9199
if: always()
@@ -113,6 +121,9 @@ jobs:
113121
- name: Dockerfile Lint for ScalarDB Schema Loader
114122
run: ./gradlew schema-loader:dockerfileLint
115123

124+
- name: Dockerfile Lint for ScalarDB Data Loader CLI
125+
run: ./gradlew data-loader:cli:dockerfileLint
126+
116127
integration-test-for-cassandra-3-0:
117128
name: Cassandra 3.0 integration test (${{ matrix.mode.label }})
118129
runs-on: ubuntu-latest

.github/workflows/create-release.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,3 +77,16 @@ jobs:
7777
asset_path: schema-loader/build/libs/scalardb-schema-loader-${{ steps.version.outputs.version }}.jar
7878
asset_name: scalardb-schema-loader-${{ steps.version.outputs.version }}.jar
7979
asset_content_type: application/java-archive
80+
81+
- name: Build scalardb-data-loader-cli jar
82+
run: ./gradlew :data-loader:cli:shadowJar
83+
84+
- name: Upload scalardb-data-loader-cli jar
85+
uses: actions/upload-release-asset@v1
86+
env:
87+
GITHUB_TOKEN: ${{ secrets.GH_PROJECT_ACCESS_TOKEN }}
88+
with:
89+
upload_url: ${{ steps.create_release.outputs.upload_url }}
90+
asset_path: data-loader/cli/build/libs/scalardb-data-loader-cli-${{ steps.version.outputs.version }}.jar
91+
asset_name: scalardb-data-loader-cli-${{ steps.version.outputs.version }}.jar
92+
asset_content_type: application/java-archive

.github/workflows/release-snapshot.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,3 +56,4 @@ jobs:
5656
if: contains(steps.version.outputs.version, '-SNAPSHOT')
5757
run: |
5858
docker push ghcr.io/scalar-labs/scalardb-schema-loader:${{ steps.version.outputs.version }}
59+
docker push ghcr.io/scalar-labs/scalardb-data-loader-cli:${{ steps.version.outputs.version }}

.github/workflows/remove-untagged-images.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,9 @@ jobs:
2525
with:
2626
github-token: ${{ secrets.CR_PAT }}
2727
package-name: scalardb-schema-loader
28+
29+
- name: scalardb-data-loader-cli
30+
uses: camargo/delete-untagged-action@v1
31+
with:
32+
github-token: ${{ secrets.CR_PAT }}
33+
package-name: scalardb-data-loader-cli

.github/workflows/upload-artifacts.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ jobs:
5656
- name: Push containers
5757
run: |
5858
docker push ghcr.io/scalar-labs/scalardb-schema-loader:${{ steps.version.outputs.version }}
59+
docker push ghcr.io/scalar-labs/scalardb-data-loader-cli:${{ steps.version.outputs.version }}
5960
6061
- name: Upload scalardb, scalardb-schema-loader, scalardb-data-loader-core, and scalardb-integration-test to Maven Central Repository
6162
run: |

.github/workflows/vuln-check.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
with:
2626
target-ref: ${{ inputs.target-ref }}
2727
find-latest-release: ${{ inputs.find-latest-release }}
28-
images: '[["ScalarDB Schema Loader", "scalardb-schema-loader"]]'
28+
images: '[["ScalarDB Schema Loader", "scalardb-schema-loader"], ["ScalarDB Data Loader CLI", "scalardb-data-loader-cli"]]'
2929
version-command: "./gradlew :core:properties -q | grep version: | awk '{print $2}'"
3030
secrets:
3131
CR_PAT: ${{ secrets.CR_PAT }}

data-loader/cli/Dockerfile

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
FROM eclipse-temurin:8-jre-jammy
2+
3+
RUN apt-get update && apt-get upgrade -y --no-install-recommends \
4+
&& rm -rf /var/lib/apt/lists/*
5+
6+
COPY scalardb-data-loader-*.jar /app.jar
7+
8+
RUN groupadd -r --gid 201 scalar && \
9+
useradd -r --uid 201 -g scalar scalar
10+
11+
USER 201
12+
13+
ENTRYPOINT ["java", "-jar", "/app.jar"]

data-loader/cli/build.gradle

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,23 @@ spotbugsTest.reports {
5959
html.enabled = true
6060
}
6161
spotbugsTest.excludeFilter = file("${project.rootDir}/gradle/spotbugs-exclude.xml")
62+
63+
task dockerfileLint(type: Exec) {
64+
description 'Lint the Dockerfile'
65+
commandLine "${project.rootDir}/ci/dockerfile_lint.sh"
66+
}
67+
68+
task copyFilesToDockerBuildContextDir(type: Copy) {
69+
description 'Copy files to a temporary folder to build the Docker image'
70+
dependsOn shadowJar
71+
from("Dockerfile")
72+
from(tasks.shadowJar.archiveFile)
73+
into('build/docker')
74+
}
75+
76+
task docker(type: Exec) {
77+
description 'Build ScalarDB Data Loader Docker CLI image'
78+
dependsOn copyFilesToDockerBuildContextDir
79+
workingDir 'build/docker'
80+
commandLine 'docker', 'build', "--tag=ghcr.io/scalar-labs/scalardb-data-loader-cli:${project.version}", "."
81+
}

0 commit comments

Comments
 (0)