mirror of
https://github.com/Suwayomi/docker-tachidesk.git
synced 2025-12-10 06:42:12 +01:00
overhaul the workflows
This commit is contained in:
671
.github/workflows/build_container_images.yml
vendored
671
.github/workflows/build_container_images.yml
vendored
@@ -4,161 +4,32 @@ on:
|
|||||||
branches: [ main ]
|
branches: [ main ]
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- '**/README.md'
|
- '**/README.md'
|
||||||
- '**/Dockerfile'
|
|
||||||
- '**/save_docker_pull_count.yml'
|
|
||||||
- '**/build_test_images.yml'
|
|
||||||
- '**/Test_Git_Actions-Dockerfile'
|
|
||||||
pull_request:
|
|
||||||
branches: [ main ]
|
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
tachidesk_release_type:
|
tachidesk_release_type:
|
||||||
required: false
|
required: true
|
||||||
default: 'stable'
|
default: 'preview'
|
||||||
description: 'Tachidesk Release Type'
|
description: 'Suwayomi Release Type'
|
||||||
publish_images_manually:
|
type: choice
|
||||||
required: false
|
options:
|
||||||
default: 'no'
|
- stable
|
||||||
description: 'Force Publish Images Manually'
|
- preview
|
||||||
|
|
||||||
env:
|
env:
|
||||||
build_repo_docker: 'tachidesk'
|
server_repo: ${{ inputs.tachidesk_release_type == 'stable' && 'Tachidesk-Server' || 'Tachidesk-Server-prevew' }}
|
||||||
build_base_image_temurin: 'eclipse-temurin:11-jre-jammy'
|
|
||||||
build_base_image_temurin_platform: 'linux/amd64,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x'
|
|
||||||
build_base_image_temurin_platform_testing: 'linux/amd64'
|
|
||||||
build_base_image_alpine: 'alpine:3.16'
|
|
||||||
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_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'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
check_workflow:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
outputs:
|
|
||||||
enable_discord_hook: ${{ steps.run_job_steps.outputs.enable_discord_hook }}
|
|
||||||
enable_build_publish: ${{ steps.run_job_steps.outputs.enable_discord_hook }}
|
|
||||||
run_check_stable: ${{ steps.run_job_steps.outputs.run_check_stable }}
|
|
||||||
run_check_preview: ${{ steps.run_job_steps.outputs.run_check_preview }}
|
|
||||||
run_build_stable: ${{ steps.run_job_steps.outputs.run_build_stable }}
|
|
||||||
run_build_preview: ${{ steps.run_job_steps.outputs.run_build_preview }}
|
|
||||||
|
|
||||||
if: "!startsWith(github.event.head_commit.message, '[SKIP CI]')"
|
jobs:
|
||||||
steps:
|
build_stable:
|
||||||
- name: run job and steps check
|
|
||||||
id: run_job_steps
|
|
||||||
run: |
|
|
||||||
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
|
|
||||||
if [[ "${{ github.event.inputs.tachidesk_release_type }}" == "stable" ]]; then
|
|
||||||
if [[ "${{ github.actor }}" == "AriaMoradi" ]]; then
|
|
||||||
echo "run_check_stable=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "run_build_stable=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_build_publish=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_discord_hook=true" >> $GITHUB_OUTPUT
|
|
||||||
elif [[ "${{ github.actor }}" == "arbuilder" && "${{ github.repository_owner }}" == "arbuilder" ]]; then
|
|
||||||
echo "run_check_stable=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "run_build_stable=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_build_publish=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_discord_hook=true" >> $GITHUB_OUTPUT
|
|
||||||
elif [[ "${{ github.actor }}" == "arbuilder" && "${{ github.repository_owner }}" == "Suwayomi" && "${{ github.event.inputs.publish_images_manually }}" == "yes" ]]; then
|
|
||||||
echo "run_check_stable=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "run_build_stable=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_build_publish=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_discord_hook=true" >> $GITHUB_OUTPUT
|
|
||||||
elif [[ "${{ github.actor }}" == "arbuilder" && "${{ github.repository_owner }}" == "Suwayomi" && "${{ github.event.inputs.publish_images_manually }}" == "no" ]]; then
|
|
||||||
echo "run_check_stable=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "run_build_stable=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_build_publish=false" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_discord_hook=false" >> $GITHUB_OUTPUT
|
|
||||||
elif [[ "${{ github.actor }}" != "arbuilder" && "${{ github.event.inputs.publish_images_manually }}" == "yes" ]]; then
|
|
||||||
echo "run_check_stable=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "run_build_stable=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_build_publish=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_discord_hook=false" >> $GITHUB_OUTPUT
|
|
||||||
else
|
|
||||||
echo "run_check_stable=false" >> $GITHUB_OUTPUT
|
|
||||||
echo "run_build_stable=false" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_build_publish=false" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_discord_hook=false" >> $GITHUB_OUTPUT
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [[ "${{ github.event.inputs.tachidesk_release_type }}" == "preview" ]]; then
|
|
||||||
if [[ "${{ github.actor }}" == "AriaMoradi" ]]; then
|
|
||||||
echo "run_check_preview=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "run_build_preview=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_build_publish=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_discord_hook=true" >> $GITHUB_OUTPUT
|
|
||||||
elif [[ "${{ github.actor }}" == "arbuilder" && "${{ github.repository_owner }}" == "arbuilder" ]]; then
|
|
||||||
echo "run_check_preview=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "run_build_preview=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_build_publish=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_discord_hook=true" >> $GITHUB_OUTPUT
|
|
||||||
elif [[ "${{ github.actor }}" == "arbuilder" && "${{ github.repository_owner }}" == "Suwayomi" && "${{ github.event.inputs.publish_images_manually }}" == "yes" ]]; then
|
|
||||||
echo "run_check_preview=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "run_build_preview=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_build_publish=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_discord_hook=true" >> $GITHUB_OUTPUT
|
|
||||||
elif [[ "${{ github.actor }}" == "arbuilder" && "${{ github.repository_owner }}" == "Suwayomi" && "${{ github.event.inputs.publish_images_manually }}" == "no" ]]; then
|
|
||||||
echo "run_check_preview=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "run_build_preview=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_build_publish=false" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_discord_hook=false" >> $GITHUB_OUTPUT
|
|
||||||
elif [[ "${{ github.actor }}" != "arbuilder" && "${{ github.event.inputs.publish_images_manually }}" == "yes" ]]; then
|
|
||||||
echo "run_check_preview=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "run_build_preview=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_build_publish=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_discord_hook=false" >> $GITHUB_OUTPUT
|
|
||||||
else
|
|
||||||
echo "run_check_preview=false" >> $GITHUB_OUTPUT
|
|
||||||
echo "run_build_preview=false" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_build_publish=false" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_discord_hook=false" >> $GITHUB_OUTPUT
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
elif [[ "${{ github.event_name }}" == "pull_request" || "${{ github.event_name }}" == "push" ]]; then
|
|
||||||
echo "run_check_stable=true" >> $GITHUB_OUTPUT
|
|
||||||
echo "run_build_stable=false" >> $GITHUB_OUTPUT
|
|
||||||
echo "run_check_preview=false" >> $GITHUB_OUTPUT
|
|
||||||
echo "run_build_preview=false" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_build_publish=false" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_discord_hook=false" >> $GITHUB_OUTPUT
|
|
||||||
else
|
|
||||||
echo "run_check_stable=false" >> $GITHUB_OUTPUT
|
|
||||||
echo "run_build_stable=false" >> $GITHUB_OUTPUT
|
|
||||||
echo "run_check_preview=false" >> $GITHUB_OUTPUT
|
|
||||||
echo "run_build_preview=false" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_build_publish=false" >> $GITHUB_OUTPUT
|
|
||||||
echo "enable_discord_hook=false" >> $GITHUB_OUTPUT
|
|
||||||
fi
|
|
||||||
|
|
||||||
check_stable:
|
|
||||||
needs: check_workflow
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
outputs:
|
|
||||||
new_release_check: ${{ steps.release_version_check.outputs.new_release_check }}
|
steps:
|
||||||
release_url: ${{ steps.get_latest_release_metadata.outputs.release_url }}
|
|
||||||
release_commit: ${{ steps.get_latest_release_metadata.outputs.release_commit }}
|
|
||||||
release_tag: ${{ steps.get_latest_release_metadata.outputs.release_tag }}
|
|
||||||
release_filename: ${{ steps.get_latest_release_metadata.outputs.release_filename }}
|
|
||||||
release_version: ${{ steps.get_latest_release_metadata.outputs.release_version }}
|
|
||||||
release_var: ${{ steps.get_latest_release_metadata.outputs.release_var }}
|
|
||||||
tachidesk_docker_git_commit: ${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }}
|
|
||||||
build_date: ${{ steps.get_latest_release_metadata.outputs.build_date }}
|
|
||||||
repository_owner_lower: ${{ steps.get_latest_release_metadata.outputs.repository_owner_lower }}
|
|
||||||
run_build_stable : ${{ needs.check_workflow.outputs.run_build_stable }}
|
|
||||||
enable_discord_hook: ${{ needs.check_workflow.outputs.enable_discord_hook }}
|
|
||||||
enable_build_publish: ${{ needs.check_workflow.outputs.enable_build_publish }}
|
|
||||||
|
|
||||||
if: needs.check_workflow.outputs.run_check_stable == 'true'
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
ref: main
|
ref: main
|
||||||
path: main
|
path: main
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v2
|
uses: docker/setup-qemu-action@v2
|
||||||
|
|
||||||
@@ -166,500 +37,92 @@ jobs:
|
|||||||
id: buildx
|
id: buildx
|
||||||
uses: docker/setup-buildx-action@v2
|
uses: docker/setup-buildx-action@v2
|
||||||
|
|
||||||
|
- name: Login to GitHub Container Registry
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.repository_owner }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: get latest release metadata
|
- name: get latest release metadata
|
||||||
id: get_latest_release_metadata
|
id: get_latest_release_metadata
|
||||||
run: |
|
run: |
|
||||||
cd main
|
cd main
|
||||||
release_url=$(curl -s ${{ env.tachidesk_webui_stable_url }} | egrep -o "https://.*./releases/download.*.Tachidesk-Server.*.jar")
|
latest_release_json=$(curl -s https://api.github.com/repos/suwayomi/${{ env.server_repo }}/releases/latest)
|
||||||
release_tag=$(curl -s ${{ env.tachidesk_webui_stable_url }} | egrep -o "tag_name.*.v[0-9]+.[0-9]+.[0-9]+" | egrep -o "v[0-9]+.[0-9]+.[0-9]+")
|
release_url=$(echo $latest_release_json | egrep -o "https://.*./releases/download.*.Tachidesk-Server.*.jar")
|
||||||
|
release_tag=$(echo $latest_release_json | egrep -o "tag_name.*.v[0-9]+.[0-9]+.[0-9]+" | egrep -o "v[0-9]+.[0-9]+.[0-9]+")
|
||||||
release_var=$(echo $release_url | egrep -o "Tachidesk-Server-$release_tag-r[0-9]+.jar" | egrep -o "$release_tag-r[0-9]+")
|
release_var=$(echo $release_url | egrep -o "Tachidesk-Server-$release_tag-r[0-9]+.jar" | egrep -o "$release_tag-r[0-9]+")
|
||||||
release_commit=$(echo $release_var | cut -f2 -d"r")
|
release_commit=$(echo $release_var | cut -f2 -d"r")
|
||||||
release_filename=Tachidesk-Server-${release_var}.jar
|
release_filename=Tachidesk-Server-${release_var}.jar
|
||||||
release_version=$(echo $release_tag | cut -c2-)
|
release_version=$(echo $release_tag | cut -c2-)
|
||||||
|
tachidesk_docker_git_commit=$(git rev-list --count HEAD)
|
||||||
|
build_date=$(date "+%F")
|
||||||
echo "release_url=$release_url" >> $GITHUB_OUTPUT
|
echo "release_url=$release_url" >> $GITHUB_OUTPUT
|
||||||
echo "release_commit=$release_commit" >> $GITHUB_OUTPUT
|
|
||||||
echo "release_tag=$release_tag" >> $GITHUB_OUTPUT
|
echo "release_tag=$release_tag" >> $GITHUB_OUTPUT
|
||||||
|
echo "release_var=$release_var" >> $GITHUB_OUTPUT
|
||||||
|
echo "release_commit=$release_commit" >> $GITHUB_OUTPUT
|
||||||
echo "release_filename=$release_filename" >> $GITHUB_OUTPUT
|
echo "release_filename=$release_filename" >> $GITHUB_OUTPUT
|
||||||
echo "release_version=$release_version" >> $GITHUB_OUTPUT
|
echo "release_version=$release_version" >> $GITHUB_OUTPUT
|
||||||
echo "release_var=$release_var" >> $GITHUB_OUTPUT
|
|
||||||
tachidesk_docker_git_commit=$(git rev-list --count HEAD)
|
|
||||||
echo "tachidesk_docker_git_commit=$tachidesk_docker_git_commit" >> $GITHUB_OUTPUT
|
echo "tachidesk_docker_git_commit=$tachidesk_docker_git_commit" >> $GITHUB_OUTPUT
|
||||||
build_date=$(date "+%F")
|
|
||||||
echo "build_date=$build_date" >> $GITHUB_OUTPUT
|
echo "build_date=$build_date" >> $GITHUB_OUTPUT
|
||||||
echo "repository_owner_lower=$(echo ${{ github.repository_owner }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
- name: Build and save stable ubuntu
|
- name: Build container image
|
||||||
id: docker_build_release_ubuntu
|
id: docker_build_release_ubuntu
|
||||||
uses: docker/build-push-action@v3
|
uses: docker/build-push-action@v3
|
||||||
with:
|
with:
|
||||||
file: scripts/dockerfiles/Git_Actions-Dockerfile
|
file: scripts/dockerfiles/Git_Actions-Dockerfile
|
||||||
platforms: ${{ env.build_base_image_temurin_platform_testing }}
|
platforms: linux/amd64,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x
|
||||||
|
push: true
|
||||||
build-args: |
|
build-args: |
|
||||||
BASE_IMAGE=${{ env.build_base_image_temurin }}
|
|
||||||
BUILD_DATE=${{ steps.get_latest_release_metadata.outputs.build_date }}
|
BUILD_DATE=${{ steps.get_latest_release_metadata.outputs.build_date }}
|
||||||
IMAGE_VERSION=${{ steps.get_latest_release_metadata.outputs.release_version }}
|
IMAGE_VERSION=${{ steps.get_latest_release_metadata.outputs.release_version }}
|
||||||
IMAGE_TYPE=stable-ubuntu
|
|
||||||
TACHIDESK_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.release_commit }}
|
TACHIDESK_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.release_commit }}
|
||||||
TACHIDESK_RELEASE_TAG=${{ steps.get_latest_release_metadata.outputs.release_tag }}
|
TACHIDESK_RELEASE_TAG=${{ steps.get_latest_release_metadata.outputs.release_tag }}
|
||||||
TACHIDESK_RELEASE_DOWNLOAD_URL=${{ steps.get_latest_release_metadata.outputs.release_url }}
|
TACHIDESK_RELEASE_DOWNLOAD_URL=${{ steps.get_latest_release_metadata.outputs.release_url }}
|
||||||
TACHIDESK_FILENAME=${{ steps.get_latest_release_metadata.outputs.release_filename }}
|
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 }}
|
TACHIDESK_DOCKER_GIT_COMMIT=${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }}
|
||||||
tags: |
|
tags: |
|
||||||
test-image:stable
|
ghcr.io/suwayomi/tachidesk:latest
|
||||||
outputs: type=docker,dest=/tmp/test_image_stable.tar
|
ghcr.io/suwayomi/tachidesk:${{ inputs.tachidesk_release_type }}
|
||||||
|
ghcr.io/suwayomi/tachidesk:${{ inputs.tachidesk_release_type == 'stable' && steps.get_latest_release_metadata.outputs.release_tag || steps.get_latest_release_metadata.outputs.release_var }}
|
||||||
- name: Docker Run Test Stable Ubuntu Image
|
|
||||||
id: docker_run_test_image_stable
|
|
||||||
run: |
|
|
||||||
docker load --input /tmp/test_image_stable.tar
|
|
||||||
mkdir -p /home/runner/work/_temp/tachidesk
|
|
||||||
chmod -R 777 /home/runner/work/_temp/tachidesk
|
|
||||||
docker run --rm -d -p 127.0.0.1:4568:4567 -v /home/runner/work/_temp/tachidesk:/home/suwayomi/.local/share/Tachidesk --name=test_image_stable test-image:stable
|
|
||||||
sleep 15
|
|
||||||
cat /home/runner/work/_temp/tachidesk/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 ubuntu run successfully"
|
|
||||||
echo "value=true" >> $GITHUB_OUTPUT
|
|
||||||
docker stop test_image_stable
|
|
||||||
else
|
|
||||||
echo ""
|
|
||||||
echo "Tachidesk stable ubuntu run Failed"
|
|
||||||
echo "value=false" >> $GITHUB_OUTPUT
|
|
||||||
if [[ ${{ needs.check_workflow.outputs.enable_discord_hook }} == 'true' ]]; then
|
|
||||||
curl \
|
|
||||||
-F 'payload_json={"username": "Github", "content": "<@255018340244914177>\n<@785012853178499073>\nDocker Stable Ubuntu 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: Build and save stable alpine
|
|
||||||
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_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 }}
|
|
||||||
tags: |
|
|
||||||
test-image:stable-alpine
|
|
||||||
outputs: type=docker,dest=/tmp/test_image_stable_alpine.tar
|
|
||||||
|
|
||||||
- name: Docker Run Test Stable Alpine Image
|
|
||||||
id: docker_run_test_image_stable_alpine
|
|
||||||
run: |
|
|
||||||
docker load --input /tmp/test_image_stable_alpine.tar
|
|
||||||
mkdir -p /home/runner/work/_temp/tachidesk_alpine
|
|
||||||
chmod -R 777 /home/runner/work/_temp/tachidesk_alpine
|
|
||||||
docker run --rm -d -p 127.0.0.1:4568:4567 -v /home/runner/work/_temp/tachidesk_alpine:/home/suwayomi/.local/share/Tachidesk --name=test_image_stable_alpine test-image:stable-alpine
|
|
||||||
sleep 15
|
|
||||||
cat /home/runner/work/_temp/tachidesk_alpine/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 alpine run successfully"
|
|
||||||
echo "value=true" >> $GITHUB_OUTPUT
|
|
||||||
docker stop test_image_stable_alpine
|
|
||||||
else
|
|
||||||
echo ""
|
|
||||||
echo "Tachidesk stable alpine run Failed"
|
|
||||||
echo "value=false" >> $GITHUB_OUTPUT
|
|
||||||
if [[ ${{ needs.check_workflow.outputs.enable_discord_hook }} == 'true' ]]; then
|
|
||||||
curl \
|
|
||||||
-F 'payload_json={"username": "Github", "content": "<@255018340244914177>\n<@785012853178499073>\nDocker Stable Alpine Image Dry Run Failed Version - ${{ steps.get_latest_release_metadata.outputs.release_tag }}"}' \
|
|
||||||
-F "file1=@/home/runner/work/_temp/tachidesk_alpine/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: |
|
|
||||||
rm -f /tmp/test_image_stable.tar
|
|
||||||
rm -f /tmp/test_image_stable_alpine.tar
|
|
||||||
#rm -rf /home/runner/work/_temp/tachidesk
|
|
||||||
#rm -rf /home/runner/work/_temp/tachidesk_alpine
|
|
||||||
|
|
||||||
|
|
||||||
build_stable:
|
|
||||||
needs: check_stable
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
if: needs.check_stable.outputs.run_build_stable == 'true'
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
ref: main
|
|
||||||
path: main
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v2
|
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
id: buildx
|
|
||||||
uses: docker/setup-buildx-action@v2
|
|
||||||
|
|
||||||
- name: Login to GitHub Container Registry
|
|
||||||
uses: docker/login-action@v2
|
|
||||||
with:
|
|
||||||
registry: ghcr.io
|
|
||||||
username: ${{ github.repository_owner }}
|
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Build and push stable ubuntu
|
|
||||||
id: docker_build_release_ubuntu
|
|
||||||
uses: docker/build-push-action@v3
|
|
||||||
with:
|
|
||||||
file: scripts/dockerfiles/Git_Actions-Dockerfile
|
|
||||||
platforms: ${{ env.build_base_image_temurin_platform }}
|
|
||||||
push: ${{ needs.check_stable.outputs.enable_build_publish == 'true' }}
|
|
||||||
build-args: |
|
|
||||||
BASE_IMAGE=${{ env.build_base_image_temurin }}
|
|
||||||
BUILD_DATE=${{ needs.check_stable.outputs.build_date }}
|
|
||||||
IMAGE_VERSION=${{ needs.check_stable.outputs.release_version }}
|
|
||||||
IMAGE_TYPE=stable-ubuntu
|
|
||||||
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 }}
|
|
||||||
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 }}:stable
|
|
||||||
ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:${{ needs.check_stable.outputs.release_tag }}
|
|
||||||
ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:latest-ubuntu
|
|
||||||
ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:stable-ubuntu
|
|
||||||
ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:${{ needs.check_stable.outputs.release_tag }}-ubuntu
|
|
||||||
cache-from: type=local,src=/tmp/.buildx-cache
|
cache-from: type=local,src=/tmp/.buildx-cache
|
||||||
cache-to: type=local,dest=/tmp/.buildx-cache
|
cache-to: type=local,dest=/tmp/.buildx-cache
|
||||||
|
|
||||||
- name: Build and push stable alpine
|
# - name: Docker Run Test Stable Ubuntu Image
|
||||||
id: docker_build_release_alpine
|
# id: docker_run_test_image_stable
|
||||||
uses: docker/build-push-action@v3
|
# run: |
|
||||||
with:
|
# docker load --input /tmp/test_image_stable.tar
|
||||||
file: scripts/dockerfiles/Git_Actions-Dockerfile
|
# mkdir -p /home/runner/work/_temp/tachidesk
|
||||||
platforms: ${{ env.build_base_image_alpine_platform }}
|
# chmod -R 777 /home/runner/work/_temp/tachidesk
|
||||||
push: ${{ needs.check_stable.outputs.enable_build_publish == 'true' }}
|
# docker run --rm -d -p 127.0.0.1:4568:4567 -v /home/runner/work/_temp/tachidesk:/home/suwayomi/.local/share/Tachidesk --name=test_image_stable test-image:stable
|
||||||
build-args: |
|
# sleep 15
|
||||||
BASE_IMAGE=${{ env.build_base_image_alpine }}
|
# cat /home/runner/work/_temp/tachidesk/logfile.log
|
||||||
BUILD_DATE=${{ needs.check_stable.outputs.build_date }}
|
# 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)
|
||||||
IMAGE_VERSION=${{ needs.check_stable.outputs.release_version }}
|
# if [[ $val == "Tachidesk" ]]; then
|
||||||
IMAGE_TYPE=stable-alpine
|
# echo ""
|
||||||
TACHIDESK_GIT_COMMIT=${{ needs.check_stable.outputs.release_commit }}
|
# echo "Tachidesk stable ubuntu run successfully"
|
||||||
TACHIDESK_RELEASE_TAG=${{ needs.check_stable.outputs.release_tag }}
|
# echo "value=true" >> $GITHUB_OUTPUT
|
||||||
TACHIDESK_RELEASE_DOWNLOAD_URL=${{ needs.check_stable.outputs.release_url }}
|
# docker stop test_image_stable
|
||||||
TACHIDESK_FILENAME=${{ needs.check_stable.outputs.release_filename }}
|
# else
|
||||||
STARTUP_SCRIPT_URL=${{ env.startup_script_url }}
|
# echo ""
|
||||||
TACHIDESK_DOCKER_GIT_COMMIT=${{ needs.check_stable.outputs.tachidesk_docker_git_commit }}
|
# echo "Tachidesk stable ubuntu run Failed"
|
||||||
IMAGE_OWNER=${{ needs.check_stable.outputs.repository_owner_lower }}
|
# echo "value=false" >> $GITHUB_OUTPUT
|
||||||
tags: |
|
# curl \
|
||||||
ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:latest-alpine
|
# -F 'payload_json={"username": "Github", "content": "<@255018340244914177>\n<@785012853178499073>\nDocker Stable Ubuntu Image Dry Run Failed Version - ${{ steps.get_latest_release_metadata.outputs.release_tag }}"}' \
|
||||||
ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:stable-alpine
|
# -F "file1=@/home/runner/work/_temp/tachidesk/logfile.log" \
|
||||||
ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:${{ needs.check_stable.outputs.release_tag }}-alpine
|
# "https://discord.com/api/webhooks/${{ secrets.DISCORD_TACHIDESK_WEBHOOK_ID }}/${{ secrets.DISCORD_TACHIDESK_TOKEN }}"
|
||||||
cache-from: type=local,src=/tmp/.buildx-cache
|
# fi
|
||||||
cache-to: type=local,dest=/tmp/.buildx-cache
|
# exit 1
|
||||||
|
# fi
|
||||||
- name: save stable release
|
|
||||||
run: |
|
|
||||||
cd main
|
|
||||||
git pull
|
|
||||||
echo "`jq '.stable="${{ needs.check_stable.outputs.release_tag }}"' scripts/tachidesk_version.json`" > scripts/tachidesk_version.json
|
|
||||||
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
|
||||||
git config --global user.name "github-actions[bot]"
|
|
||||||
git status
|
|
||||||
if [ -n "$(git status --porcelain)" ]; then
|
|
||||||
git pull
|
|
||||||
git add .
|
|
||||||
git commit -m "Update stable release version"
|
|
||||||
git push
|
|
||||||
else
|
|
||||||
echo "No changes to commit"
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: discord webhook stable
|
|
||||||
if: ${{ needs.check_stable.outputs.enable_discord_hook == 'true' }}
|
|
||||||
id: discord_webhook_stable
|
|
||||||
run: |
|
|
||||||
curl -H "Content-Type: application/json" -d '{"content": "Docker Stable Image Published!","embeds":[{"color":16729344,"author":{"name":"${{ github.repository_owner }}","icon_url":"https://avatars.githubusercontent.com/u/81182076","url":"https://github.com/${{ github.repository_owner }}"},"title":"Docker Stable Release","url":"https://github.com/${{ github.repository_owner }}/docker-tachidesk","fields":[{"name":"docker update","value":"docker pull ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/tachidesk","inline":false},{"name":"docker run","value":"docker run -p 4567:4567 ghcr.io/${{ needs.check_stable.outputs.repository_owner_lower }}/tachidesk","inline":false}],"thumbnail":{"url": "https://www.docker.com/sites/default/files/d8/2019-07/vertical-logo-monochromatic.png"},"description":"Tachidesk version - ${{ needs.check_stable.outputs.release_tag }}"}]}' "https://discord.com/api/webhooks/${{ secrets.DISCORD_TACHIDESK_WEBHOOK_ID }}/${{ secrets.DISCORD_TACHIDESK_TOKEN }}"
|
|
||||||
|
|
||||||
check_preview:
|
|
||||||
needs: check_workflow
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
outputs:
|
|
||||||
new_release_check: ${{ steps.release_version_check.outputs.new_release_check }}
|
|
||||||
release_url: ${{ steps.get_latest_release_metadata.outputs.release_url }}
|
|
||||||
release_commit: ${{ steps.get_latest_release_metadata.outputs.release_commit }}
|
|
||||||
release_tag: ${{ steps.get_latest_release_metadata.outputs.release_tag }}
|
|
||||||
release_filename: ${{ steps.get_latest_release_metadata.outputs.release_filename }}
|
|
||||||
release_version: ${{ steps.get_latest_release_metadata.outputs.release_version }}
|
|
||||||
release_var: ${{ steps.get_latest_release_metadata.outputs.release_var }}
|
|
||||||
tachidesk_docker_git_commit: ${{ steps.get_latest_release_metadata.outputs.tachidesk_docker_git_commit }}
|
|
||||||
build_date: ${{ steps.get_latest_release_metadata.outputs.build_date }}
|
|
||||||
repository_owner_lower: ${{ steps.get_latest_release_metadata.outputs.repository_owner_lower }}
|
|
||||||
run_build_preview : ${{ needs.check_workflow.outputs.run_build_preview }}
|
|
||||||
enable_discord_hook: ${{ needs.check_workflow.outputs.enable_discord_hook }}
|
|
||||||
enable_build_publish: ${{ needs.check_workflow.outputs.enable_build_publish }}
|
|
||||||
|
|
||||||
if: needs.check_workflow.outputs.run_check_preview == 'true'
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
ref: main
|
|
||||||
path: main
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v2
|
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
id: buildx
|
|
||||||
uses: docker/setup-buildx-action@v2
|
|
||||||
|
|
||||||
- name: get latest release metadata
|
|
||||||
id: get_latest_release_metadata
|
|
||||||
run: |
|
|
||||||
cd main
|
|
||||||
release_url=$(curl -s ${{ env.tachidesk_webui_preview_url }} | egrep -o "https://.*./releases/download.*.Tachidesk-Server.*.jar")
|
|
||||||
release_tag=$(curl -s ${{ env.tachidesk_webui_preview_url }} | egrep -o "tag_name.*.v[0-9]+.[0-9]+.[0-9]+-r[0-9]+" | egrep -o "v[0-9]+.[0-9]+.[0-9]+-r[0-9]+")
|
|
||||||
release_var=$(echo $release_url | grep -o "Tachidesk-Server-$release_tag.jar" | grep -o "$release_tag" )
|
|
||||||
release_commit=$(echo $release_var | cut -f2 -d"r")
|
|
||||||
release_filename=Tachidesk-Server-${release_var}.jar
|
|
||||||
release_version=$(echo $release_tag | cut -c2-)
|
|
||||||
echo "release_url=$release_url" >> $GITHUB_OUTPUT
|
|
||||||
echo "release_commit=$release_commit" >> $GITHUB_OUTPUT
|
|
||||||
echo "release_tag=$release_tag" >> $GITHUB_OUTPUT
|
|
||||||
echo "release_filename=$release_filename" >> $GITHUB_OUTPUT
|
|
||||||
echo "release_version=$release_version" >> $GITHUB_OUTPUT
|
|
||||||
echo "release_var=$release_var" >> $GITHUB_OUTPUT
|
|
||||||
tachidesk_docker_git_commit=$(git rev-list --count HEAD)
|
|
||||||
echo "tachidesk_docker_git_commit=$tachidesk_docker_git_commit" >> $GITHUB_OUTPUT
|
|
||||||
build_date=$(date "+%F")
|
|
||||||
echo "build_date=$build_date" >> $GITHUB_OUTPUT
|
|
||||||
echo "repository_owner_lower=$(echo ${{ github.repository_owner }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
- name: Build and save preview ubuntu
|
|
||||||
id: docker_build_release_ubuntu
|
|
||||||
uses: docker/build-push-action@v3
|
|
||||||
with:
|
|
||||||
file: scripts/dockerfiles/Git_Actions-Dockerfile
|
|
||||||
platforms: ${{ env.build_base_image_temurin_platform_testing }}
|
|
||||||
build-args: |
|
|
||||||
BASE_IMAGE=${{ env.build_base_image_temurin }}
|
|
||||||
BUILD_DATE=${{ steps.get_latest_release_metadata.outputs.build_date }}
|
|
||||||
IMAGE_VERSION=${{ steps.get_latest_release_metadata.outputs.release_version }}
|
|
||||||
IMAGE_TYPE=preview-ubuntu
|
|
||||||
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 }}
|
|
||||||
tags: |
|
|
||||||
test-image:preview
|
|
||||||
outputs: type=docker,dest=/tmp/test_image_preview.tar
|
|
||||||
|
|
||||||
- name: Docker Run Test Preview Image Ubuntu
|
|
||||||
id: docker_run_test_image_preview
|
|
||||||
run: |
|
|
||||||
docker load --input /tmp/test_image_preview.tar
|
|
||||||
mkdir -p /home/runner/work/_temp/tachidesk
|
|
||||||
chmod -R 777 /home/runner/work/_temp/tachidesk
|
|
||||||
docker run --rm -d -p 127.0.0.1:4569:4567 -v /home/runner/work/_temp/tachidesk:/home/suwayomi/.local/share/Tachidesk --name=test_image_preview test-image:preview
|
|
||||||
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 run successfully"
|
|
||||||
echo "value=true" >> $GITHUB_OUTPUT
|
|
||||||
docker stop test_image_preview
|
|
||||||
run_check="true"
|
|
||||||
else
|
|
||||||
echo ""
|
|
||||||
echo "Tachidesk preview run Failed"
|
|
||||||
echo "value=false" >> $GITHUB_OUTPUT
|
|
||||||
if [[ ${{ needs.check_workflow.outputs.enable_discord_hook }} == 'true' ]]; then
|
|
||||||
curl \
|
|
||||||
-F 'payload_json={"username": "Github", "content": "<@255018340244914177>\n<@785012853178499073>\nDocker Preview 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: Build and save preview alpine
|
|
||||||
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_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 }}
|
|
||||||
tags: |
|
|
||||||
test-image:preview-alpine
|
|
||||||
outputs: type=docker,dest=/tmp/test_image_preview_alpine.tar
|
|
||||||
|
|
||||||
|
|
||||||
- name: Docker Run Test Preview Image Alpine
|
|
||||||
id: docker_run_test_image_preview_alpine
|
|
||||||
run: |
|
|
||||||
docker load --input /tmp/test_image_preview_alpine.tar
|
|
||||||
mkdir -p /home/runner/work/_temp/tachidesk_alpine
|
|
||||||
chmod -R 777 /home/runner/work/_temp/tachidesk_alpine
|
|
||||||
docker run --rm -d -p 127.0.0.1:4569:4567 -v /home/runner/work/_temp/tachidesk_alpine:/home/suwayomi/.local/share/Tachidesk --name=test_image_preview_alpine test-image:preview-alpine
|
|
||||||
sleep 15
|
|
||||||
cat /home/runner/work/_temp/tachidesk_alpine/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 alpine run successfully"
|
|
||||||
echo "value=true" >> $GITHUB_OUTPUT
|
|
||||||
docker stop test_image_preview_alpine
|
|
||||||
run_check="true"
|
|
||||||
else
|
|
||||||
echo ""
|
|
||||||
echo "Tachidesk preview alpine run Failed"
|
|
||||||
echo "value=false" >> $GITHUB_OUTPUT
|
|
||||||
if [[ ${{ needs.check_workflow.outputs.enable_discord_hook }} == 'true' ]]; then
|
|
||||||
curl \
|
|
||||||
-F 'payload_json={"username": "Github", "content": "<@255018340244914177>\n<@785012853178499073>\nDocker Preview Alpine Image Dry Run Failed Version - ${{ steps.get_latest_release_metadata.outputs.release_tag }}"}' \
|
|
||||||
-F "file1=@/home/runner/work/_temp/tachidesk_alpine/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: |
|
|
||||||
rm -f /tmp/test_image_preview.tar
|
|
||||||
rm -f /tmp/test_image_preview_alpine.tar
|
|
||||||
#rm -rf /home/runner/work/_temp/tachidesk
|
|
||||||
#rm -rf /home/runner/work/_temp/tachidesk_alpine
|
|
||||||
|
|
||||||
build_preview:
|
|
||||||
needs: check_preview
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
if: needs.check_preview.outputs.run_build_preview == 'true'
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
ref: main
|
|
||||||
path: main
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v2
|
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
id: buildx
|
|
||||||
uses: docker/setup-buildx-action@v2
|
|
||||||
|
|
||||||
- name: Login to GitHub Container Registry
|
|
||||||
uses: docker/login-action@v2
|
|
||||||
with:
|
|
||||||
registry: ghcr.io
|
|
||||||
username: ${{ github.repository_owner }}
|
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Build and push preview ubuntu
|
|
||||||
id: docker_build_release_ubuntu
|
|
||||||
uses: docker/build-push-action@v3
|
|
||||||
with:
|
|
||||||
file: scripts/dockerfiles/Git_Actions-Dockerfile
|
|
||||||
platforms: ${{ env.build_base_image_temurin_platform }}
|
|
||||||
push: ${{ needs.check_preview.outputs.enable_build_publish == 'true' }}
|
|
||||||
build-args: |
|
|
||||||
BASE_IMAGE=${{ env.build_base_image_temurin }}
|
|
||||||
BUILD_DATE=${{ needs.check_preview.outputs.build_date }}
|
|
||||||
IMAGE_VERSION=${{ needs.check_preview.outputs.release_version }}
|
|
||||||
IMAGE_TYPE=preview-ubuntu
|
|
||||||
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 }}
|
|
||||||
tags: |
|
|
||||||
ghcr.io/${{ needs.check_preview.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:preview
|
|
||||||
ghcr.io/${{ needs.check_preview.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:preview-ubuntu
|
|
||||||
cache-from: type=local,src=/tmp/.buildx-cache
|
|
||||||
cache-to: type=local,dest=/tmp/.buildx-cache
|
|
||||||
|
|
||||||
- name: Build and push preview alpine
|
|
||||||
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 }}
|
|
||||||
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 }}
|
|
||||||
tags: |
|
|
||||||
ghcr.io/${{ needs.check_preview.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:preview-alpine
|
|
||||||
cache-from: type=local,src=/tmp/.buildx-cache
|
|
||||||
cache-to: type=local,dest=/tmp/.buildx-cache
|
|
||||||
|
|
||||||
- name: save preview release
|
|
||||||
run: |
|
|
||||||
cd main
|
|
||||||
git pull
|
|
||||||
echo "`jq '.preview="${{ needs.check_preview.outputs.release_tag }}"' scripts/tachidesk_version.json`" > scripts/tachidesk_version.json
|
|
||||||
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
|
||||||
git config --global user.name "github-actions[bot]"
|
|
||||||
git status
|
|
||||||
if [ -n "$(git status --porcelain)" ]; then
|
|
||||||
git pull
|
|
||||||
git add .
|
|
||||||
git commit -m "Update current preview version"
|
|
||||||
git push
|
|
||||||
else
|
|
||||||
echo "No changes to commit"
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: discord webhook preview
|
- name: discord webhook preview
|
||||||
if: ${{ needs.check_preview.outputs.enable_discord_hook == 'true' }}
|
if: ${{ inputs.tachidesk_release_type == 'preview' }}
|
||||||
id: discord_webhook_preview
|
id: discord_webhook_preview
|
||||||
run: |
|
run: |
|
||||||
curl -H "Content-Type: application/json" -d '{"content": "Docker Preview Image Published!","embeds":[{"color":16729344,"author":{"name":"${{ github.repository_owner }}","icon_url":"https://avatars.githubusercontent.com/u/81182076","url":"https://github.com/${{ github.repository_owner }}"},"title":"Docker Preview Release","url":"https://github.com/${{ github.repository_owner }}/docker-tachidesk","fields":[{"name":"docker update","value":"docker pull ghcr.io/${{ needs.check_preview.outputs.repository_owner_lower }}/tachidesk:preview","inline":false},{"name":"docker run","value":"docker run -p 4567:4567 ghcr.io/${{ needs.check_preview.outputs.repository_owner_lower }}/tachidesk:preview","inline":false}],"thumbnail":{"url": "https://www.docker.com/sites/default/files/d8/2019-07/vertical-logo-monochromatic.png"},"description":"Tachidesk version - ${{ needs.check_preview.outputs.release_tag }}"}]}' "https://discord.com/api/webhooks/${{ secrets.DISCORD_TACHIDESK_WEBHOOK_ID }}/${{ secrets.DISCORD_TACHIDESK_TOKEN }}"
|
curl -H "Content-Type: application/json" -d '{"content": "Docker Preview Image Published!","embeds":[{"color":16729344,"author":{"name":"${{ github.repository_owner }}","icon_url":"https://avatars.githubusercontent.com/u/81182076","url":"https://github.com/${{ github.repository_owner }}"},"title":"Docker Preview Release","url":"https://github.com/${{ github.repository_owner }}/docker-tachidesk","fields":[{"name":"docker update","value":"docker pull ghcr.io/suwayomi/tachidesk:preview","inline":false},{"name":"docker run","value":"docker run -p 4567:4567 ghcr.io/suwayomi/tachidesk:preview","inline":false}],"thumbnail":{"url": "https://www.docker.com/sites/default/files/d8/2019-07/vertical-logo-monochromatic.png"},"description":"Tachidesk version - ${{ steps.get_latest_release_metadata.outputs.release_var }}"}]}' "https://discord.com/api/webhooks/${{ secrets.DISCORD_TACHIDESK_WEBHOOK_ID }}/${{ secrets.DISCORD_TACHIDESK_TOKEN }}"
|
||||||
|
|
||||||
|
- name: discord webhook stable
|
||||||
|
if: ${{ inputs.tachidesk_release_type == 'stable' }}
|
||||||
|
id: discord_webhook_stable
|
||||||
|
run: |
|
||||||
|
curl -H "Content-Type: application/json" -d '{"content": "Docker Stable Image Published!","embeds":[{"color":5409028,"author":{"name":"${{ github.repository_owner }}","icon_url":"https://avatars.githubusercontent.com/u/81182076","url":"https://github.com/${{ github.repository_owner }}"},"title":"Docker Stable Release","url":"https://github.com/${{ github.repository_owner }}/docker-tachidesk","fields":[{"name":"docker update","value":"docker pull ghcr.io/suwayomi/tachidesk:stable","inline":false},{"name":"docker run","value":"docker run -p 4567:4567 ghcr.io/suwayomi/tachidesk","inline":false}],"thumbnail":{"url": "https://www.docker.com/sites/default/files/d8/2019-07/vertical-logo-monochromatic.png"},"description":"Tachidesk version - ${{ steps.get_latest_release_metadata.outputs.release_tag }}"}]}' "https://discord.com/api/webhooks/${{ secrets.DISCORD_TACHIDESK_WEBHOOK_ID }}/${{ secrets.DISCORD_TACHIDESK_TOKEN }}"
|
||||||
|
|||||||
122
.github/workflows/build_test_images.yml
vendored
122
.github/workflows/build_test_images.yml
vendored
@@ -1,122 +0,0 @@
|
|||||||
name: Build Test Images
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ main ]
|
|
||||||
paths-ignore:
|
|
||||||
- '**/README.md'
|
|
||||||
- '**/Dockerfile'
|
|
||||||
- '**/save_docker_pull_count.yml'
|
|
||||||
- '**/build_container_images.yml'
|
|
||||||
- '**/Git_Actions-Dockerfile'
|
|
||||||
pull_request:
|
|
||||||
branches: [ main ]
|
|
||||||
schedule:
|
|
||||||
- cron: '10 5 * * 2,5'
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
|
|
||||||
env:
|
|
||||||
build_repo_docker: 'tachidesk'
|
|
||||||
build_base_image_temurin: 'eclipse-temurin:11-jre-jammy'
|
|
||||||
build_base_image_temurin_platform: 'linux/amd64'
|
|
||||||
build_base_image_alpine: 'alpine:3.16'
|
|
||||||
build_base_image_alpine_platform: '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'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
|
|
||||||
build_stable:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
ref: main
|
|
||||||
path: main
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v2
|
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
id: buildx
|
|
||||||
uses: docker/setup-buildx-action@v2
|
|
||||||
|
|
||||||
- name: Login to GitHub Container Registry
|
|
||||||
uses: docker/login-action@v2
|
|
||||||
with:
|
|
||||||
registry: ghcr.io
|
|
||||||
username: ${{ github.repository_owner }}
|
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: get latest release metadata
|
|
||||||
id: get_latest_release_metadata
|
|
||||||
run: |
|
|
||||||
cd main
|
|
||||||
release_url=$(curl -s ${{ env.tachidesk_webui_stable_url }} | egrep -o "https://.*./releases/download.*.Tachidesk-Server.*.jar")
|
|
||||||
release_tag=$(curl -s ${{ env.tachidesk_webui_stable_url }} | egrep -o "tag_name.*.v[0-9]+.[0-9]+.[0-9]+" | egrep -o "v[0-9]+.[0-9]+.[0-9]+")
|
|
||||||
release_var=$(echo $release_url | egrep -o "Tachidesk-Server-$release_tag-r[0-9]+.jar" | egrep -o "$release_tag-r[0-9]+")
|
|
||||||
release_commit=$(echo $release_var | cut -f2 -d"r")
|
|
||||||
release_filename=Tachidesk-Server-${release_var}.jar
|
|
||||||
release_version=$(echo $release_tag | cut -c2-)
|
|
||||||
echo "release_url=$release_url" >> $GITHUB_OUTPUT
|
|
||||||
echo "release_commit=$release_commit" >> $GITHUB_OUTPUT
|
|
||||||
echo "release_tag=$release_tag" >> $GITHUB_OUTPUT
|
|
||||||
echo "release_filename=$release_filename" >> $GITHUB_OUTPUT
|
|
||||||
echo "release_version=$release_version" >> $GITHUB_OUTPUT
|
|
||||||
echo "release_var=$release_var" >> $GITHUB_OUTPUT
|
|
||||||
tachidesk_docker_git_commit=$(git rev-list --count HEAD)
|
|
||||||
echo "tachidesk_docker_git_commit=$tachidesk_docker_git_commit" >> $GITHUB_OUTPUT
|
|
||||||
build_date=$(date "+%F")
|
|
||||||
echo "build_date=$build_date" >> $GITHUB_OUTPUT
|
|
||||||
echo "repository_owner_lower=$(echo ${{ github.repository_owner }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
- name: Build and push stable ubuntu
|
|
||||||
id: docker_build_release_ubuntu
|
|
||||||
uses: docker/build-push-action@v3
|
|
||||||
with:
|
|
||||||
file: scripts/dockerfiles/Test_Git_Actions-Dockerfile
|
|
||||||
platforms: ${{ env.build_base_image_temurin_platform }}
|
|
||||||
push: true
|
|
||||||
build-args: |
|
|
||||||
BASE_IMAGE=${{ env.build_base_image_temurin }}
|
|
||||||
BUILD_DATE=${{ steps.get_latest_release_metadata.outputs.build_date }}
|
|
||||||
IMAGE_VERSION=${{ steps.get_latest_release_metadata.outputs.release_version }}
|
|
||||||
IMAGE_TYPE=develop-ubuntu
|
|
||||||
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 }}
|
|
||||||
IMAGE_OWNER=${{ steps.get_latest_release_metadata.outputs.repository_owner_lower }}
|
|
||||||
tags: |
|
|
||||||
ghcr.io/${{ steps.get_latest_release_metadata.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:develop
|
|
||||||
cache-from: type=local,src=/tmp/.buildx-cache
|
|
||||||
cache-to: type=local,dest=/tmp/.buildx-cache
|
|
||||||
|
|
||||||
- name: Build and push stable alpine
|
|
||||||
id: docker_build_release_alpine
|
|
||||||
uses: docker/build-push-action@v3
|
|
||||||
with:
|
|
||||||
file: scripts/dockerfiles/Test_Git_Actions-Dockerfile
|
|
||||||
platforms: ${{ env.build_base_image_alpine_platform }}
|
|
||||||
push: true
|
|
||||||
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=develop-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 }}
|
|
||||||
IMAGE_OWNER=${{ steps.get_latest_release_metadata.outputs.repository_owner_lower }}
|
|
||||||
tags: |
|
|
||||||
ghcr.io/${{ steps.get_latest_release_metadata.outputs.repository_owner_lower }}/${{ env.build_repo_docker }}:develop-alpine
|
|
||||||
cache-from: type=local,src=/tmp/.buildx-cache
|
|
||||||
cache-to: type=local,dest=/tmp/.buildx-cache
|
|
||||||
37
.github/workflows/save_docker_pull_count.yml
vendored
37
.github/workflows/save_docker_pull_count.yml
vendored
@@ -1,37 +0,0 @@
|
|||||||
name: Save Docker Pull Count
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
# schedule:
|
|
||||||
# - cron: "0 11 * * *"
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
save_pull_count:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
with:
|
|
||||||
ref: main
|
|
||||||
path: main
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: save total downloads
|
|
||||||
run: |
|
|
||||||
cd main
|
|
||||||
total_downloads_previous=$(jq -r '.total_downloads' scripts/tachidesk_version.json)
|
|
||||||
total_downloads=$(curl -s https://github.com/Suwayomi/docker-tachidesk/pkgs/container/tachidesk | grep -A1 "Total downloads" | tr -d \\n | egrep -o "Total download.*.=\"[0-9]+\">" | cut -f2 -d"=" | egrep -o "[0-9]+")
|
|
||||||
if [[ $total_downloads != $total_downloads_previous ]]; then
|
|
||||||
git pull
|
|
||||||
echo "`jq --arg value "$total_downloads" '.total_downloads=$value' scripts/tachidesk_version.json`" > scripts/tachidesk_version.json
|
|
||||||
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
|
||||||
git config --global user.name "github-actions[bot]"
|
|
||||||
git status
|
|
||||||
if [ -n "$(git status --porcelain)" ]; then
|
|
||||||
git pull
|
|
||||||
git add .
|
|
||||||
git commit -a -m "Update docker pull count"
|
|
||||||
git push
|
|
||||||
else
|
|
||||||
echo "No changes to commit"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
data/
|
||||||
56
Dockerfile
56
Dockerfile
@@ -1,17 +1,39 @@
|
|||||||
FROM eclipse-temurin:11-jre-focal
|
FROM eclipse-temurin:11-jre-jammy
|
||||||
|
|
||||||
RUN groupadd --gid 1000 suwayomi && useradd --uid 1000 --gid suwayomi --no-log-init suwayomi;
|
ARG BUILD_DATE
|
||||||
|
ARG IMAGE_VERSION
|
||||||
RUN mkdir -p /home/suwayomi && chown -R suwayomi:suwayomi /home/suwayomi
|
ARG TACHIDESK_GIT_COMMIT
|
||||||
|
ARG TACHIDESK_RELEASE_TAG
|
||||||
USER suwayomi
|
ARG TACHIDESK_FILENAME
|
||||||
|
ARG TACHIDESK_RELEASE_DOWNLOAD_URL
|
||||||
WORKDIR /home/suwayomi
|
ARG TACHIDESK_DOCKER_GIT_COMMIT
|
||||||
|
|
||||||
RUN curl -s --create-dirs -L https://raw.githubusercontent.com/suwayomi/docker-tachidesk/main/scripts/startup_script.sh -o /home/suwayomi/startup/startup_script.sh
|
LABEL maintainer="suwayomi" \
|
||||||
|
org.opencontainers.image.title="Suwayomi Docker" \
|
||||||
RUN curl -L $(curl -s https://api.github.com/repos/suwayomi/tachidesk-server/releases/latest | grep -o "https.*jar") -o /home/suwayomi/startup/tachidesk_latest.jar
|
org.opencontainers.image.authors="https://github.com/suwayomi" \
|
||||||
|
org.opencontainers.image.url="https://github.com/suwayomi/docker-tachidesk/pkgs/container/tachidesk" \
|
||||||
EXPOSE 4567
|
org.opencontainers.image.source="https://github.com/suwayomi/docker-tachidesk" \
|
||||||
|
org.opencontainers.image.description="This image is used to start suwayomi server in a container" \
|
||||||
CMD ["/bin/sh", "/home/suwayomi/startup/startup_script.sh"]
|
org.opencontainers.image.vendor="suwayomi" \
|
||||||
|
org.opencontainers.image.created=$BUILD_DATE \
|
||||||
|
org.opencontainers.image.version=$IMAGE_VERSION \
|
||||||
|
tachidesk.git_commit=$TACHIDESK_GIT_COMMIT \
|
||||||
|
tachidesk.docker_commit=$TACHIDESK_DOCKER_GIT_COMMIT \
|
||||||
|
tachidesk.release_tag=$TACHIDESK_RELEASE_TAG \
|
||||||
|
tachidesk.filename=$TACHIDESK_FILENAME \
|
||||||
|
download_url=$TACHIDESK_RELEASE_DOWNLOAD_URL \
|
||||||
|
org.opencontainers.image.licenses="MPL-2.0"
|
||||||
|
|
||||||
|
RUN groupadd --gid 1000 suwayomi && \
|
||||||
|
useradd --uid 1000 --gid suwayomi --no-log-init suwayomi && \
|
||||||
|
mkdir -p /home/suwayomi && \
|
||||||
|
chown -R suwayomi:suwayomi /home/suwayomi
|
||||||
|
USER suwayomi
|
||||||
|
WORKDIR /home/suwayomi
|
||||||
|
RUN curl -s --create-dirs -L $TACHIDESK_RELEASE_DOWNLOAD_URL -o /home/suwayomi/startup/tachidesk_latest.jar
|
||||||
|
COPY startup_script.sh /home/suwayomi/startup_script.sh
|
||||||
|
|
||||||
|
EXPOSE 4567
|
||||||
|
CMD ["/bin/sh", "/home/suwayomi/startup_script.sh"]
|
||||||
|
|
||||||
|
# vim: set ft=dockerfile:
|
||||||
|
|||||||
30
compose.yml
30
compose.yml
@@ -1,30 +0,0 @@
|
|||||||
---
|
|
||||||
version: '3.7'
|
|
||||||
|
|
||||||
services:
|
|
||||||
|
|
||||||
tachidesk-docker:
|
|
||||||
image: ghcr.io/suwayomi/tachidesk
|
|
||||||
container_name: tachidesk-docker
|
|
||||||
networks:
|
|
||||||
custom_network1:
|
|
||||||
ipv4_address: 172.22.2.11
|
|
||||||
environment:
|
|
||||||
- PUID=1000 # ( dont change, require uid to be 1000 )
|
|
||||||
- PGID=1000 # ( dont change, require gid to be 1000 )
|
|
||||||
- TZ=< change it to your timezone > # Use TZ database name from https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
|
||||||
- LOGGING=file
|
|
||||||
volumes:
|
|
||||||
- /<path to folder>/docker-config/tachidesk:/home/suwayomi/.local/share/Tachidesk # edit <path to folder> to your mapped folder
|
|
||||||
ports:
|
|
||||||
- "4567:4567"
|
|
||||||
restart: on-failure:3
|
|
||||||
|
|
||||||
networks:
|
|
||||||
custom_network1:
|
|
||||||
driver: bridge
|
|
||||||
ipam:
|
|
||||||
driver: default
|
|
||||||
config:
|
|
||||||
- subnet: 172.22.2.0/24
|
|
||||||
gateway: 172.22.2.1
|
|
||||||
16
docker-compose.yml
Normal file
16
docker-compose.yml
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
version: '3.7'
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
tachidesk-docker:
|
||||||
|
image: ghcr.io/suwayomi/tachidesk:stable
|
||||||
|
environment:
|
||||||
|
- PUID=1000 # ( dont change, require uid to be 1000 )
|
||||||
|
- PGID=1000 # ( dont change, require gid to be 1000 )
|
||||||
|
- TZ=Etc/UTC # Use TZ database name from https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||||
|
volumes:
|
||||||
|
- ./data:/home/suwayomi/.local/share/Tachidesk # edit <path to folder> to your mapped folder
|
||||||
|
ports:
|
||||||
|
- "4567:4567"
|
||||||
|
restart: on-failure:3
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
ARG BASE_IMAGE=none
|
|
||||||
|
|
||||||
FROM $BASE_IMAGE
|
|
||||||
|
|
||||||
ARG BASE_IMAGE
|
|
||||||
ARG BUILD_DATE
|
|
||||||
ARG IMAGE_VERSION
|
|
||||||
ARG IMAGE_TYPE
|
|
||||||
ARG TACHIDESK_GIT_COMMIT
|
|
||||||
ARG TACHIDESK_RELEASE_TAG
|
|
||||||
ARG TACHIDESK_FILENAME
|
|
||||||
ARG TACHIDESK_RELEASE_DOWNLOAD_URL
|
|
||||||
ARG TACHIDESK_DOCKER_GIT_COMMIT
|
|
||||||
ARG STARTUP_SCRIPT_URL
|
|
||||||
|
|
||||||
RUN if echo "$BASE_IMAGE" | grep -q "openjdk"; then useradd -ms /bin/sh suwayomi; \
|
|
||||||
elif echo "$BASE_IMAGE" | grep -q "eclipse-temurin"; then \
|
|
||||||
if echo "$BASE_IMAGE" | grep -q "alpine"; then \
|
|
||||||
apk --update add curl tzdata && addgroup -g 1000 -S suwayomi && adduser -u 1000 -S suwayomi -G suwayomi; \
|
|
||||||
else \
|
|
||||||
groupadd --gid 1000 suwayomi && useradd --uid 1000 --gid suwayomi --no-log-init suwayomi; fi; \
|
|
||||||
elif echo "$BASE_IMAGE" | grep -q "alpine"; then apk --update add curl openjdk8-jre-base tzdata && addgroup -g 1000 -S suwayomi && adduser -u 1000 -S suwayomi -G suwayomi; \
|
|
||||||
else echo "wrong base image"; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
LABEL maintainer="suwayomi" \
|
|
||||||
org.opencontainers.image.title="Tachidesk Docker" \
|
|
||||||
org.opencontainers.image.authors="https://github.com/suwayomi" \
|
|
||||||
org.opencontainers.image.url="https://github.com/suwayomi/docker-tachidesk/pkgs/container/tachidesk" \
|
|
||||||
org.opencontainers.image.source="https://github.com/suwayomi/docker-tachidesk" \
|
|
||||||
org.opencontainers.image.description="This image is used to start tachidesk jar executable in a container" \
|
|
||||||
base_image=$BASE_IMAGE \
|
|
||||||
org.opencontainers.image.vendor="suwayomi" \
|
|
||||||
org.opencontainers.image.created=$BUILD_DATE \
|
|
||||||
org.opencontainers.image.version=$IMAGE_VERSION \
|
|
||||||
image_type=$IMAGE_TYPE \
|
|
||||||
"tachidesk.git_commit"=$TACHIDESK_GIT_COMMIT \
|
|
||||||
"tachidesk.release_tag"=$TACHIDESK_RELEASE_TAG \
|
|
||||||
"tachidesk.filename"=$TACHIDESK_FILENAME \
|
|
||||||
download_url=$TACHIDESK_RELEASE_DOWNLOAD_URL \
|
|
||||||
org.opencontainers.image.licenses="MPL-2.0"
|
|
||||||
|
|
||||||
RUN mkdir -p /home/suwayomi && chown -R suwayomi:suwayomi /home/suwayomi
|
|
||||||
USER suwayomi:suwayomi
|
|
||||||
WORKDIR /home/suwayomi
|
|
||||||
RUN echo $TACHIDESK_FILENAME
|
|
||||||
RUN curl -s --create-dirs -L $TACHIDESK_RELEASE_DOWNLOAD_URL -o /home/suwayomi/startup/tachidesk_latest.jar
|
|
||||||
RUN echo $TACHIDESK_DOCKER_GIT_COMMIT
|
|
||||||
RUN curl -s --create-dirs -L $STARTUP_SCRIPT_URL -o /home/suwayomi/startup/startup_script.sh
|
|
||||||
|
|
||||||
EXPOSE 4567
|
|
||||||
CMD ["/bin/sh", "/home/suwayomi/startup/startup_script.sh"]
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
ARG BASE_IMAGE=none
|
|
||||||
|
|
||||||
FROM $BASE_IMAGE
|
|
||||||
|
|
||||||
ARG BASE_IMAGE
|
|
||||||
ARG BUILD_DATE
|
|
||||||
ARG IMAGE_VERSION
|
|
||||||
ARG IMAGE_TYPE
|
|
||||||
ARG TACHIDESK_GIT_COMMIT
|
|
||||||
ARG TACHIDESK_RELEASE_TAG
|
|
||||||
ARG TACHIDESK_FILENAME
|
|
||||||
ARG TACHIDESK_RELEASE_DOWNLOAD_URL
|
|
||||||
ARG TACHIDESK_DOCKER_GIT_COMMIT
|
|
||||||
ARG STARTUP_SCRIPT_URL
|
|
||||||
|
|
||||||
RUN if echo "$BASE_IMAGE" | grep -q "openjdk"; then useradd -ms /bin/sh suwayomi; \
|
|
||||||
elif echo "$BASE_IMAGE" | grep -q "eclipse-temurin"; then \
|
|
||||||
if echo "$BASE_IMAGE" | grep -q "alpine"; then \
|
|
||||||
apk --update add curl tzdata && addgroup -g 1000 -S suwayomi && adduser -u 1000 -S suwayomi -G suwayomi; \
|
|
||||||
else \
|
|
||||||
groupadd --gid 1000 suwayomi && useradd --uid 1000 --gid suwayomi --no-log-init suwayomi; fi; \
|
|
||||||
elif echo "$BASE_IMAGE" | grep -q "alpine"; then apk --update add curl openjdk8-jre-base tzdata && addgroup -g 1000 -S suwayomi && adduser -u 1000 -S suwayomi -G suwayomi; \
|
|
||||||
else echo "wrong base image"; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
LABEL maintainer="suwayomi" \
|
|
||||||
org.opencontainers.image.title="Tachidesk Docker" \
|
|
||||||
org.opencontainers.image.authors="https://github.com/suwayomi" \
|
|
||||||
org.opencontainers.image.url="https://github.com/suwayomi/docker-tachidesk/pkgs/container/tachidesk" \
|
|
||||||
org.opencontainers.image.source="https://github.com/suwayomi/docker-tachidesk" \
|
|
||||||
org.opencontainers.image.description="This image is used to start tachidesk jar executable in a container" \
|
|
||||||
base_image=$BASE_IMAGE \
|
|
||||||
org.opencontainers.image.vendor="suwayomi" \
|
|
||||||
org.opencontainers.image.created=$BUILD_DATE \
|
|
||||||
org.opencontainers.image.version=$IMAGE_VERSION \
|
|
||||||
image_type=$IMAGE_TYPE \
|
|
||||||
"tachidesk.git_commit"=$TACHIDESK_GIT_COMMIT \
|
|
||||||
"tachidesk.release_tag"=$TACHIDESK_RELEASE_TAG \
|
|
||||||
"tachidesk.filename"=$TACHIDESK_FILENAME \
|
|
||||||
download_url=$TACHIDESK_RELEASE_DOWNLOAD_URL \
|
|
||||||
org.opencontainers.image.licenses="MPL-2.0"
|
|
||||||
|
|
||||||
RUN USER=suwayomi && \
|
|
||||||
GROUP=suwayomi && \
|
|
||||||
curl -SsL https://github.com/boxboat/fixuid/releases/download/v0.5.1/fixuid-0.5.1-linux-amd64.tar.gz | tar -C /usr/local/bin -xzf - && \
|
|
||||||
chown root:root /usr/local/bin/fixuid && \
|
|
||||||
chmod 4755 /usr/local/bin/fixuid && \
|
|
||||||
mkdir -p /etc/fixuid && \
|
|
||||||
printf "user: $USER\ngroup: $GROUP\n" > /etc/fixuid/config.yml
|
|
||||||
|
|
||||||
USER suwayomi:suwayomi
|
|
||||||
WORKDIR /home/suwayomi
|
|
||||||
RUN echo $TACHIDESK_FILENAME
|
|
||||||
RUN curl -s --create-dirs -L $TACHIDESK_RELEASE_DOWNLOAD_URL -o /home/suwayomi/startup/tachidesk_latest.jar
|
|
||||||
RUN echo $TACHIDESK_DOCKER_GIT_COMMIT
|
|
||||||
RUN curl -s --create-dirs -L $STARTUP_SCRIPT_URL -o /home/suwayomi/startup/startup_script.sh
|
|
||||||
|
|
||||||
EXPOSE 4567
|
|
||||||
ENTRYPOINT ["fixuid"]
|
|
||||||
CMD ["/bin/sh", "/home/suwayomi/startup/startup_script.sh"]
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"stable": "v0.7.0",
|
|
||||||
"preview": "v0.7.0-r1268",
|
|
||||||
"total_downloads": "50k+"
|
|
||||||
}
|
|
||||||
8
scripts/startup_script.sh → startup_script.sh
Normal file → Executable file
8
scripts/startup_script.sh → startup_script.sh
Normal file → Executable file
@@ -14,9 +14,5 @@ echo ""
|
|||||||
echo "Tachidesk data location inside the container -> /home/suwayomi/.local/share/Tachidesk"
|
echo "Tachidesk data location inside the container -> /home/suwayomi/.local/share/Tachidesk"
|
||||||
echo ""
|
echo ""
|
||||||
echo "The server is running by default configuration on http://localhost:4567"
|
echo "The server is running by default configuration on http://localhost:4567"
|
||||||
if [ "${LOGGING:-file}" != "file" ]; then
|
|
||||||
exec java -jar "/home/suwayomi/startup/tachidesk_latest.jar";
|
exec java -jar "/home/suwayomi/startup/tachidesk_latest.jar";
|
||||||
else
|
|
||||||
echo "log file location inside the container -> /home/suwayomi/.local/share/Tachidesk/logfile.log"
|
|
||||||
exec java -jar "/home/suwayomi/startup/tachidesk_latest.jar" > /home/suwayomi/.local/share/Tachidesk/logfile.log 2>&1;
|
|
||||||
fi
|
|
||||||
Reference in New Issue
Block a user