From bcee5bd974600cd15ad9a7ce4eef41a7360e8ecd Mon Sep 17 00:00:00 2001 From: Mitchell Syer Date: Tue, 21 Jun 2022 15:42:13 -0400 Subject: [PATCH 1/3] java11 test --- .github/workflows/build_container_images.yml | 59 +++++++++++++++++++- Dockerfile | 4 +- 2 files changed, 61 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_container_images.yml b/.github/workflows/build_container_images.yml index ab189cf..c9ecb23 100644 --- a/.github/workflows/build_container_images.yml +++ b/.github/workflows/build_container_images.yml @@ -19,10 +19,13 @@ env: build_repo_docker: 'tachidesk' build_base_image_alpine: 'alpine:3.15' build_base_image_alpine_platform: 'linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x' + build_base_image_alpine_platform_java11: 'linux/amd64,linux/arm64/v8,linux/ppc64le,linux/s390x' build_base_image_alpine_platform_testing: 'linux/amd64' startup_script_url: 'https://raw.githubusercontent.com/${{ github.repository }}/main/scripts/startup_script.sh' tachidesk_webui_stable_url: 'https://api.github.com/repos/suwayomi/Tachidesk-Server/releases/latest' tachidesk_webui_preview_url: 'https://api.github.com/repos/suwayomi/Tachidesk-Server-preview/releases/latest' + java_8_version: openjdk8-jre-base + java_11_version: openjdk11-jre-headless jobs: check_workflow: @@ -196,6 +199,7 @@ jobs: TACHIDESK_FILENAME=${{ steps.get_latest_release_metadata.outputs.release_filename }} STARTUP_SCRIPT_URL=${{ env.startup_script_url }} TACHIDESK_DOCKER_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }} + JAVA_VERSION=${{ env.java_8_version }} tags: | test-image:stable outputs: type=docker,dest=/tmp/test_image_stable.tar @@ -280,12 +284,39 @@ jobs: STARTUP_SCRIPT_URL=${{ env.startup_script_url }} TACHIDESK_DOCKER_GIT_COMMIT=${{ needs.check_stable.outputs.tachidesk_docker_git_commit }} IMAGE_OWNER=${{ needs.check_stable.outputs.repository_owner_lower }} + JAVA_VERSION=${{ env.java_8_version }} tags: | ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:latest ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:${{ needs.check_stable.outputs.release_tag }} cache-from: type=local,src=/tmp/.buildx-cache cache-to: type=local,dest=/tmp/.buildx-cache + - name: Build and push stable alpine java11 + id: docker_build_release_alpine + uses: docker/build-push-action@v3 + with: + file: scripts/dockerfiles/Git_Actions-Dockerfile + platforms: ${{ env.build_base_image_alpine_platform_java11 }} + push: ${{ needs.check_stable.outputs.enable_build_publish == 'true' }} + build-args: | + BASE_IMAGE=${{ env.build_base_image_alpine }} + BUILD_DATE=${{ needs.check_stable.outputs.build_date }} + IMAGE_VERSION=${{ needs.check_stable.outputs.release_version }} + IMAGE_TYPE=stable-alpine + TACHIDESK_GIT_COMMIT=${{ needs.check_stable.outputs.release_commit }} + TACHIDESK_RELEASE_TAG=${{ needs.check_stable.outputs.release_tag }} + TACHIDESK_RELEASE_DOWNLOAD_URL=${{ needs.check_stable.outputs.release_url }} + TACHIDESK_FILENAME=${{ needs.check_stable.outputs.release_filename }} + STARTUP_SCRIPT_URL=${{ env.startup_script_url }} + TACHIDESK_DOCKER_GIT_COMMIT=${{ needs.check_stable.outputs.tachidesk_docker_git_commit }} + IMAGE_OWNER=${{ needs.check_stable.outputs.repository_owner_lower }} + JAVA_VERSION=${{ env.java_11_version }} + tags: | + ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:latest-java11 + ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:${{ needs.check_stable.outputs.release_tag }}-java11 + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,dest=/tmp/.buildx-cache + - name: save stable release run: | cd main @@ -466,12 +497,38 @@ jobs: TACHIDESK_FILENAME=${{ needs.check_preview.outputs.release_filename }} STARTUP_SCRIPT_URL=${{ env.startup_script_url }} TACHIDESK_DOCKER_GIT_COMMIT=${{ needs.check_preview.outputs.tachidesk_docker_git_commit }} - IMAGE_OWNER=${{ needs.check_preview.outputs.repository_owner_lower }} + IMAGE_OWNER=${{ needs.check_preview.outputs.repository_owner_lower }} + JAVA_VERSION=${{ env.java_8_version }} tags: | ghcr.io/${{ needs.check_preview.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:preview cache-from: type=local,src=/tmp/.buildx-cache cache-to: type=local,dest=/tmp/.buildx-cache + - name: Build and push preview alpine java11 + id: docker_build_release_alpine + uses: docker/build-push-action@v3 + with: + file: scripts/dockerfiles/Git_Actions-Dockerfile + platforms: ${{ env.build_base_image_alpine_platform_java11 }} + push: ${{ needs.check_preview.outputs.enable_build_publish == 'true' }} + build-args: | + BASE_IMAGE=${{ env.build_base_image_alpine }} + BUILD_DATE=${{ needs.check_preview.outputs.build_date }} + IMAGE_VERSION=${{ needs.check_preview.outputs.release_version }} + IMAGE_TYPE=preview-alpine + TACHIDESK_GIT_COMMIT=${{ needs.check_preview.outputs.release_commit }} + TACHIDESK_RELEASE_TAG=${{ needs.check_preview.outputs.release_tag }} + TACHIDESK_RELEASE_DOWNLOAD_URL=${{ needs.check_preview.outputs.release_url }} + TACHIDESK_FILENAME=${{ needs.check_preview.outputs.release_filename }} + STARTUP_SCRIPT_URL=${{ env.startup_script_url }} + TACHIDESK_DOCKER_GIT_COMMIT=${{ needs.check_preview.outputs.tachidesk_docker_git_commit }} + IMAGE_OWNER=${{ needs.check_preview.outputs.repository_owner_lower }} + JAVA_VERSION=${{ env.java_11_version }} + tags: | + ghcr.io/${{ needs.check_preview.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:preview-java11 + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,dest=/tmp/.buildx-cache + - name: save preview release run: | cd main diff --git a/Dockerfile b/Dockerfile index 9ffe93c..eafd805 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,8 @@ FROM alpine:latest -RUN apk --update add curl openjdk8-jre-base tzdata +ARG JAVA_VERSION + +RUN apk --update add "$JAVA_VERSION" tzdata RUN addgroup -g 1000 -S suwayomi && adduser -u 1000 -S suwayomi -G suwayomi From 1a7557c749efa853c3e4ba80585cf9276c0e2a93 Mon Sep 17 00:00:00 2001 From: Mitchell Syer Date: Tue, 21 Jun 2022 15:50:40 -0400 Subject: [PATCH 2/3] Fix --- .github/workflows/build_container_images.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_container_images.yml b/.github/workflows/build_container_images.yml index c9ecb23..d88bb85 100644 --- a/.github/workflows/build_container_images.yml +++ b/.github/workflows/build_container_images.yml @@ -292,7 +292,7 @@ jobs: cache-to: type=local,dest=/tmp/.buildx-cache - name: Build and push stable alpine java11 - id: docker_build_release_alpine + id: docker_build_release_alpine_java11 uses: docker/build-push-action@v3 with: file: scripts/dockerfiles/Git_Actions-Dockerfile @@ -505,7 +505,7 @@ jobs: cache-to: type=local,dest=/tmp/.buildx-cache - name: Build and push preview alpine java11 - id: docker_build_release_alpine + id: docker_build_release_alpine_java11 uses: docker/build-push-action@v3 with: file: scripts/dockerfiles/Git_Actions-Dockerfile From c4ec61dbbf8005d7a18012aeee58b696ee5ee099 Mon Sep 17 00:00:00 2001 From: Mitchell Syer Date: Tue, 21 Jun 2022 16:10:44 -0400 Subject: [PATCH 3/3] Add testing --- .github/workflows/build_container_images.yml | 104 +++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/.github/workflows/build_container_images.yml b/.github/workflows/build_container_images.yml index d88bb85..ba9fdc7 100644 --- a/.github/workflows/build_container_images.yml +++ b/.github/workflows/build_container_images.yml @@ -231,6 +231,56 @@ jobs: fi exit 1 fi + + - name: Build and save stable alpine java11 + id: docker_build_release_alpine_java11 + uses: docker/build-push-action@v3 + with: + file: scripts/dockerfiles/Git_Actions-Dockerfile + platforms: ${{ env.build_base_image_alpine_platform_testing }} + build-args: | + BASE_IMAGE=${{ env.build_base_image_alpine }} + BUILD_DATE=${{ steps.get_latest_release_metadata.outputs.build_date }} + IMAGE_VERSION=${{ steps.get_latest_release_metadata.outputs.release_version }} + IMAGE_TYPE=stable-alpine + TACHIDESK_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.release_commit }} + TACHIDESK_RELEASE_TAG=${{ steps.get_latest_release_metadata.outputs.release_tag }} + TACHIDESK_RELEASE_DOWNLOAD_URL=${{ steps.get_latest_release_metadata.outputs.release_url }} + TACHIDESK_FILENAME=${{ steps.get_latest_release_metadata.outputs.release_filename }} + STARTUP_SCRIPT_URL=${{ env.startup_script_url }} + TACHIDESK_DOCKER_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }} + JAVA_VERSION=${{ env.java_11_version }} + tags: | + test-image:stable-java11 + outputs: type=docker,dest=/tmp/test_image_stable_java11.tar + + - name: Docker Run Test Stable Image Java11 + id: docker_run_test_image_stable_java11 + run: | + docker load --input /tmp/test_image_stable_java11.tar + mkdir -p /home/runner/work/_temp/tachidesk_java11 + chmod -R 777 /home/runner/work/_temp/tachidesk_java11 + docker run --rm -d -p 127.0.0.1:4568:4567 -v /home/runner/work/_temp/tachidesk_java11:/home/suwayomi/.local/share/Tachidesk --name=test_image_stable_java11 test-image:stable-java11 + sleep 15 + cat /home/runner/work/_temp/tachidesk_java11/logfile.log + curl -s 127.0.0.1:4568/api/v1/settings/about/ && val=$(curl -s 127.0.0.1:4568/api/v1/settings/about/ | grep -o "Tachidesk" | sort --unique) + if [[ $val == "Tachidesk" ]]; then + echo "" + echo "Tachidesk stable java11 run successfully" + echo "::set-output name=value::true" + docker stop test_image_stable_java11 + else + echo "" + echo "Tachidesk stable run Failed" + echo "::set-output name=value::false" + if [[ ${{ needs.check_workflow.outputs.enable_discord_hook }} == 'true' ]]; then + curl \ + -F 'payload_json={"username": "Github", "content": "<@255018340244914177>\n<@785012853178499073>\nDocker Stable Java11 Image Dry Run Failed Version - ${{ steps.get_latest_release_metadata.outputs.release_tag }}"}' \ + -F "file1=@/home/runner/work/_temp/tachidesk/logfile.log" \ + "https://discord.com/api/webhooks/${{ secrets.DISCORD_TACHIDESK_WEBHOOK_ID }}/${{ secrets.DISCORD_TACHIDESK_TOKEN }}" + fi + exit 1 + fi - name: Delete docker files run: | @@ -413,6 +463,7 @@ jobs: TACHIDESK_FILENAME=${{ steps.get_latest_release_metadata.outputs.release_filename }} STARTUP_SCRIPT_URL=${{ env.startup_script_url }} TACHIDESK_DOCKER_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }} + JAVA_VERSION=${{ env.java_8_version }} tags: | test-image:preview outputs: type=docker,dest=/tmp/test_image_preview.tar @@ -446,6 +497,59 @@ jobs: exit 1 fi docker system prune -a -f --volumes + + - name: Build and save preview alpine java11 + id: docker_build_release_alpine_java11 + uses: docker/build-push-action@v3 + with: + file: scripts/dockerfiles/Git_Actions-Dockerfile + platforms: ${{ env.build_base_image_alpine_platform_testing }} + build-args: | + BASE_IMAGE=${{ env.build_base_image_alpine }} + BUILD_DATE=${{ steps.get_latest_release_metadata.outputs.build_date }} + IMAGE_VERSION=${{ steps.get_latest_release_metadata.outputs.release_version }} + IMAGE_TYPE=preview-alpine + TACHIDESK_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.release_commit }} + TACHIDESK_RELEASE_TAG=${{ steps.get_latest_release_metadata.outputs.release_tag }} + TACHIDESK_RELEASE_DOWNLOAD_URL=${{ steps.get_latest_release_metadata.outputs.release_url }} + TACHIDESK_FILENAME=${{ steps.get_latest_release_metadata.outputs.release_filename }} + STARTUP_SCRIPT_URL=${{ env.startup_script_url }} + TACHIDESK_DOCKER_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }} + JAVA_VERSION=${{ env.java_11_version }} + tags: | + test-image:preview-java11 + outputs: type=docker,dest=/tmp/test_image_preview_java11.tar + + + - name: Docker Run Test Preview Image Java11 + id: docker_run_test_image_preview_java11 + run: | + docker load --input /tmp/test_image_preview_java11.tar + mkdir -p /home/runner/work/_temp/tachidesk_java11 + chmod -R 777 /home/runner/work/_temp/tachidesk_java11 + docker run --rm -d -p 127.0.0.1:4569:4567 -v /home/runner/work/_temp/tachidesk_java11:/home/suwayomi/.local/share/Tachidesk --name=test_image_preview_java11 test-image:preview-java11 + sleep 15 + cat /home/runner/work/_temp/tachidesk/logfile.log + curl -s 127.0.0.1:4569/api/v1/settings/about/ && val=$(curl -s 127.0.0.1:4569/api/v1/settings/about/ | grep -o "Tachidesk" | sort --unique) + if [[ $val == "Tachidesk" ]]; then + echo "" + echo "Tachidesk preview java11 run successfully" + echo "::set-output name=value::true" + docker stop test_image_preview_java11 + run_check="true" + else + echo "" + echo "Tachidesk preview java11 run Failed" + echo "::set-output name=value::false" + if [[ ${{ needs.check_workflow.outputs.enable_discord_hook }} == 'true' ]]; then + curl \ + -F 'payload_json={"username": "Github", "content": "<@255018340244914177>\n<@785012853178499073>\nDocker Preview Java11 Image Dry Run Failed Version - ${{ steps.get_latest_release_metadata.outputs.release_tag }}"}' \ + -F "file1=@/home/runner/work/_temp/tachidesk/logfile.log" \ + "https://discord.com/api/webhooks/${{ secrets.DISCORD_TACHIDESK_WEBHOOK_ID }}/${{ secrets.DISCORD_TACHIDESK_TOKEN }}" + fi + exit 1 + fi + docker system prune -a -f --volumes - name: Delete docker files run: |