From 1c454b4fdf47c25324b7c99070f2d55e66b81d9b Mon Sep 17 00:00:00 2001 From: Kavin <20838718+FireMasterK@users.noreply.github.com> Date: Thu, 2 Jun 2022 12:33:07 +0100 Subject: [PATCH 1/6] Add testing support for GraalVM's and OpenJ9 JVM. --- .dockerignore | 4 ++-- .github/workflows/docker-build-test.yml | 5 +++++ Dockerfile.graalvm-jvm | 26 +++++++++++++++++++++++++ 3 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 Dockerfile.graalvm-jvm diff --git a/.dockerignore b/.dockerignore index 4ac1703..f5caf90 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,8 +1,8 @@ .* build bin -Dockerfile -Dockerfile.* +Dockerfile* +docker-compose.yml *.bat LICENSE *.md diff --git a/.github/workflows/docker-build-test.yml b/.github/workflows/docker-build-test.yml index 7a129b4..e6150e4 100644 --- a/.github/workflows/docker-build-test.yml +++ b/.github/workflows/docker-build-test.yml @@ -16,6 +16,10 @@ jobs: - testing/docker-compose.hsqldb.yml - testing/docker-compose.cockroachdb.yml - testing/docker-compose.yugabytedb.yml + dockerfile: + - Dockerfile + - Dockerfile.openj9 + - Dockerfile.graalvm-jvm steps: - uses: actions/checkout@v3 - name: Create Version File @@ -25,6 +29,7 @@ jobs: with: context: . load: true + file: ${{ matrix.dockerfile }} tags: 1337kavin/piped:latest - name: Start Docker-Compose services run: docker-compose -f ${{ matrix.docker-compose-file }} up -d && sleep 5 diff --git a/Dockerfile.graalvm-jvm b/Dockerfile.graalvm-jvm new file mode 100644 index 0000000..3bcd3d2 --- /dev/null +++ b/Dockerfile.graalvm-jvm @@ -0,0 +1,26 @@ +FROM ghcr.io/graalvm/native-image:latest as build + +WORKDIR /app/ + +COPY . /app/ + +RUN --mount=type=cache,target=/root/.gradle/caches/ \ + ./gradlew shadowJar + +RUN jlink \ + --add-modules java.base,java.logging,java.sql,java.management,java.xml,java.naming,java.desktop,jdk.crypto.ec \ + --strip-debug \ + --no-man-pages \ + --no-header-files \ + --compress=2 \ + --output /javaruntime + +FROM debian:stable-slim + +ENV JAVA_HOME=/opt/java/openjdk +ENV PATH "${JAVA_HOME}/bin:${PATH}" +COPY --from=build /javaruntime $JAVA_HOME + +WORKDIR /app/ + +COPY --from=build /app/build/libs/piped-1.0-all.jar . From e84070234a7b417ca3ddd38950afa4ea1ae30abe Mon Sep 17 00:00:00 2001 From: Kavin <20838718+FireMasterK@users.noreply.github.com> Date: Thu, 2 Jun 2022 12:48:40 +0100 Subject: [PATCH 2/6] Collect docker services logs. --- .github/workflows/docker-build-test.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/docker-build-test.yml b/.github/workflows/docker-build-test.yml index e6150e4..dd6ace9 100644 --- a/.github/workflows/docker-build-test.yml +++ b/.github/workflows/docker-build-test.yml @@ -35,3 +35,6 @@ jobs: run: docker-compose -f ${{ matrix.docker-compose-file }} up -d && sleep 5 - name: Run tests run: ./testing/api-test.sh + - name: Collect services logs + if: failure() + run: docker-compose -f ${{ matrix.docker-compose-file }} logs From 7a6c5fdf96682e9586b1bb2b87c860655bd10570 Mon Sep 17 00:00:00 2001 From: Kavin <20838718+FireMasterK@users.noreply.github.com> Date: Thu, 2 Jun 2022 12:52:23 +0100 Subject: [PATCH 3/6] Run only on PRs / master branch. --- .github/workflows/docker-build-test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/docker-build-test.yml b/.github/workflows/docker-build-test.yml index dd6ace9..883da2b 100644 --- a/.github/workflows/docker-build-test.yml +++ b/.github/workflows/docker-build-test.yml @@ -4,6 +4,8 @@ on: push: paths-ignore: - "**.md" + branches: + - master pull_request: jobs: From cfd4df723c40718e52a7cd9b32871dbc41579657 Mon Sep 17 00:00:00 2001 From: Kavin <20838718+FireMasterK@users.noreply.github.com> Date: Thu, 2 Jun 2022 12:52:41 +0100 Subject: [PATCH 4/6] Complete graalvm dockerfile. --- Dockerfile.graalvm-jvm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Dockerfile.graalvm-jvm b/Dockerfile.graalvm-jvm index 3bcd3d2..1e07549 100644 --- a/Dockerfile.graalvm-jvm +++ b/Dockerfile.graalvm-jvm @@ -23,4 +23,10 @@ COPY --from=build /javaruntime $JAVA_HOME WORKDIR /app/ -COPY --from=build /app/build/libs/piped-1.0-all.jar . +COPY --from=build /app/build/libs/piped-1.0-all.jar /app/piped.jar + +COPY VERSION . + +EXPOSE 8080 + +CMD java -jar /app/piped.jar From 58759a3944b27241628bda66b799fcb536b11c71 Mon Sep 17 00:00:00 2001 From: Kavin <20838718+FireMasterK@users.noreply.github.com> Date: Thu, 2 Jun 2022 13:09:54 +0100 Subject: [PATCH 5/6] Add delay to yugabytedb piped command. --- .github/workflows/docker-build-test.yml | 4 ++-- testing/docker-compose.yugabytedb.yml | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-build-test.yml b/.github/workflows/docker-build-test.yml index 883da2b..356688c 100644 --- a/.github/workflows/docker-build-test.yml +++ b/.github/workflows/docker-build-test.yml @@ -9,7 +9,7 @@ on: pull_request: jobs: - build-hotspot-test: + build-test: runs-on: ubuntu-latest strategy: matrix: @@ -34,7 +34,7 @@ jobs: file: ${{ matrix.dockerfile }} tags: 1337kavin/piped:latest - name: Start Docker-Compose services - run: docker-compose -f ${{ matrix.docker-compose-file }} up -d && sleep 5 + run: docker-compose -f ${{ matrix.docker-compose-file }} up -d && sleep 20 - name: Run tests run: ./testing/api-test.sh - name: Collect services logs diff --git a/testing/docker-compose.yugabytedb.yml b/testing/docker-compose.yugabytedb.yml index dfa82fa..2258648 100644 --- a/testing/docker-compose.yugabytedb.yml +++ b/testing/docker-compose.yugabytedb.yml @@ -8,6 +8,7 @@ services: - ./config.yugabytedb.properties:/app/config.properties depends_on: - yb-tserver + command: [ "sh", "-c", "sleep 10 && java -jar piped.jar" ] yb-master: image: yugabytedb/yugabyte:latest command: From e58d9a63677cf08e2e4e7bb0363f448c03e4a094 Mon Sep 17 00:00:00 2001 From: Kavin <20838718+FireMasterK@users.noreply.github.com> Date: Thu, 2 Jun 2022 13:22:11 +0100 Subject: [PATCH 6/6] Build and publish graalvm images. --- .github/workflows/docker-build.yml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 2e06036..1d2b2e0 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -68,3 +68,33 @@ jobs: tags: 1337kavin/piped:latest,1337kavin/piped:openj9 cache-from: type=gha cache-to: type=gha,mode=max + build-docker-graalvm: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Create Version File + run: echo $(git log -1 --date=short --pretty=format:%cd)-$(git rev-parse --short HEAD) > VERSION + - name: Set up QEMU + uses: docker/setup-qemu-action@v2.0.0 + with: + platforms: all + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v2.0.0 + with: + version: latest + - name: Login to DockerHub + uses: docker/login-action@v2.0.0 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Build and push + uses: docker/build-push-action@v3.0.0 + with: + context: . + file: ./Dockerfile.graalvm-jvm + platforms: linux/amd64,linux/arm64 + push: true + tags: 1337kavin/piped:graalvm-jvm + cache-from: type=gha + cache-to: type=gha,mode=max