diff --git a/.travis.yml b/.travis.yml index 708c173fa..e04a97775 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,4 @@ +os: linux language: java before_install: diff --git a/.travis/deploy-dockerhub-prod.sh b/.travis/deploy-dockerhub-prod.sh deleted file mode 100755 index 16b880813..000000000 --- a/.travis/deploy-dockerhub-prod.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash - -echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin -./gradlew dockerPushLatest dockerPushSemVer diff --git a/.travis/docker-common.sh b/.travis/docker-common.sh new file mode 100644 index 000000000..d3df4ddd4 --- /dev/null +++ b/.travis/docker-common.sh @@ -0,0 +1,2 @@ +export DOCKER_CLI_EXPERIMENTAL=enabled +PLATFORMS=linux/amd64,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x diff --git a/.travis/prepare-dockerhub.sh b/.travis/prepare-dockerhub.sh new file mode 100755 index 000000000..7d255ce1c --- /dev/null +++ b/.travis/prepare-dockerhub.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +source "$(dirname "$0")/docker-common.sh" + +# Update Docker CE +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - +sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" +sudo apt-get update +sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce + +# Enable buildx +docker run --rm --privileged multiarch/qemu-user-static --reset -p yes +docker buildx create --name mybuilder --driver docker-container --use +docker buildx inspect --bootstrap + +# Unpack fat jar +./gradlew unpack + +# Build docker images (no push) +cd komga +docker buildx build \ +--platform $PLATFORMS \ +--cache-from gotson/komga:latest \ +--tag gotson/komga:latest \ +--tag gotson/komga:$1 \ +--file ./Dockerfile . diff --git a/.travis/prepare-release.sh b/.travis/prepare-release.sh new file mode 100755 index 000000000..b02e943c4 --- /dev/null +++ b/.travis/prepare-release.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +# Update version for Gradle +echo version=$1 >gradle.properties + +# Build jar +./gradlew copyWebDist +./gradlew assemble + +# Prepare Dockerhub release +source "$(dirname "$0")/prepare-dockerhub.sh" $1 diff --git a/.travis/publish-dockerhub.sh b/.travis/publish-dockerhub.sh new file mode 100755 index 000000000..1d8631b8c --- /dev/null +++ b/.travis/publish-dockerhub.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +source "$(dirname "$0")/docker-common.sh" + +echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin + +# Push docker images (built previously) +cd komga +docker buildx build \ +--platform $PLATFORMS \ +--cache-from gotson/komga:latest \ +--tag gotson/komga:latest \ +--tag gotson/komga:$1 \ +--file ./Dockerfile . \ +--push diff --git a/komga/Dockerfile b/komga/Dockerfile index 118451ba8..b788a23d9 100644 --- a/komga/Dockerfile +++ b/komga/Dockerfile @@ -1,6 +1,6 @@ -FROM adoptopenjdk:11-jre-hotspot +FROM adoptopenjdk:11-jdk-hotspot VOLUME /tmp -ARG DEPENDENCY=target/dependency +ARG DEPENDENCY=build/dependency COPY ${DEPENDENCY}/BOOT-INF/lib /app/lib COPY ${DEPENDENCY}/META-INF /app/META-INF COPY ${DEPENDENCY}/BOOT-INF/classes /app diff --git a/komga/build.gradle.kts b/komga/build.gradle.kts index cdd29347d..e355d4379 100644 --- a/komga/build.gradle.kts +++ b/komga/build.gradle.kts @@ -1,4 +1,3 @@ -import com.palantir.gradle.docker.DockerExtension import org.apache.tools.ant.taskdefs.condition.Os import org.jetbrains.kotlin.gradle.tasks.KotlinCompile @@ -14,7 +13,6 @@ plugins { id("org.springframework.boot") version "2.2.5.RELEASE" id("io.spring.dependency-management") version "1.0.9.RELEASE" id("com.github.ben-manes.versions") version "0.28.0" - id("com.palantir.docker") version "0.25.0" id("com.gorylenko.gradle-git-properties") version "2.2.2" jacoco } @@ -163,14 +161,6 @@ tasks { } } -configure { - name = "gotson/komga" - tag("latest", "$name:latest") - tag("semVer", "$name:$version") - copySpec.from(tasks.getByName("unpack").outputs).into("dependency") - buildArgs(mapOf("DEPENDENCY" to "dependency")) -} - springBoot { buildInfo() } diff --git a/package.json b/package.json index 62ab801c6..82b7b89ae 100644 --- a/package.json +++ b/package.json @@ -29,8 +29,8 @@ [ "@semantic-release/exec", { - "prepareCmd": "echo version=${nextRelease.version}> gradle.properties && ./gradlew copyWebDist && ./gradlew assemble", - "publishCmd": ".travis/deploy-dockerhub-prod.sh" + "prepareCmd": ".travis/prepare-release.sh ${nextRelease.version}", + "publishCmd": ".travis/publish-dockerhub.sh ${nextRelease.version}" } ], [