From deab79556ed503491c3cdc773f48009fe010fb67 Mon Sep 17 00:00:00 2001 From: Janne Mareike Koschinski <janne@kuschku.de> Date: Mon, 15 Feb 2021 14:09:15 +0100 Subject: [PATCH] Export documentation as docker container and improve CI --- .dockerignore | 4 ++++ .gitignore | 3 --- .gitlab-ci.yml | 17 +++++++++++++++-- Dockerfile | 11 +++++++++++ build.gradle.kts | 16 +++++++++------- .../protocol/types/HandshakeMessage.kt | 16 +++++++++++++++- 6 files changed, 54 insertions(+), 13 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..53c4ab3 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +/*.yml +/*.md +/Dockerfile* +build/ diff --git a/.gitignore b/.gitignore index 49ca4c2..1c376df 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,4 @@ /.idea/* !/.idea/copyright/ .DS_Store -/captures build/ -/reports/ -/persistence/schemas/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c3aab52..b9395ae 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -image: "k8r.eu/justjanne/quasseldroid-build-env:5d24a78" +image: "k8r.eu/justjanne/quasseldroid-build-env:latest" cache: key: "$CI_PROJECT_NAME" @@ -43,7 +43,7 @@ test: - if: "$CI_COMMIT_BRANCH == 'master'" when: on_success -release: +release-artifacts: stage: "release" cache: { } script: @@ -54,3 +54,16 @@ release: rules: - if: "$CI_COMMIT_TAG != '' && $CI_COMMIT_BRANCH == 'master'" when: on_success +release-docs: + stage: "release" + cache: { } + image: + name: gcr.io/kaniko-project/executor:debug + entrypoint: [""] + script: + - mkdir -p /kaniko/.docker + - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json + - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:${CI_COMMIT_TAG:-$CI_COMMIT_SHORT_SHA}-docs --destination $CI_REGISTRY_IMAGE:docs + rules: + - if: "$CI_COMMIT_BRANCH == 'master'" + when: on_success diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..9d08654 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +FROM k8r.eu/justjanne/quasseldroid-build-env:5d24a78 as builder +RUN mkdir /build && \ + mkdir /build/.gradle +COPY . /build/src +WORKDIR /build/src/ +ENV GRADLE_USER_HOME=/build/.gradle +RUN /build/src/gradlew dokkaHtmlMultiModule + +FROM nginx:stable-alpine +COPY --from=builder /build/src/build/dokka/htmlMultiModule/ /usr/share/nginx/html/javadoc +EXPOSE 80 diff --git a/build.gradle.kts b/build.gradle.kts index 8ab34c8..f468b55 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,7 +2,6 @@ import de.justjanne.coverageconverter.CoverageConverterExtension plugins { id("org.jlleitschuh.gradle.ktlint") version "10.0.0" apply false - id("org.jetbrains.dokka") version "1.4.20" apply false id("com.vanniktech.maven.publish") version "0.13.0" apply false id("de.justjanne.jacoco-cobertura-converter") apply false } @@ -12,17 +11,13 @@ buildscript { mavenCentral() } dependencies { + classpath("org.jetbrains.dokka:dokka-gradle-plugin:1.4.20") classpath("org.jetbrains.kotlin", "kotlin-gradle-plugin", "1.4.30") } } -subprojects { - apply(plugin = "org.jetbrains.kotlin.jvm") +allprojects { apply(plugin = "org.jetbrains.dokka") - apply(plugin = "org.jlleitschuh.gradle.ktlint") - apply(plugin = "jacoco") - apply(plugin = "de.justjanne.jacoco-cobertura-converter") - repositories { mavenCentral() exclusiveContent { @@ -41,6 +36,13 @@ subprojects { } } } +} + +subprojects { + apply(plugin = "org.jetbrains.kotlin.jvm") + apply(plugin = "org.jlleitschuh.gradle.ktlint") + apply(plugin = "jacoco") + apply(plugin = "de.justjanne.jacoco-cobertura-converter") dependencies { val implementation by configurations diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/types/HandshakeMessage.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/types/HandshakeMessage.kt index 447e6a2..442f535 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/types/HandshakeMessage.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/types/HandshakeMessage.kt @@ -30,6 +30,7 @@ import de.justjanne.libquassel.protocol.variant.QVariantMap sealed class HandshakeMessage { /** * Client registration message containing metadata about the connecting client + * * Core should respond with either [ClientInitAck] or [ClientInitReject] */ data class ClientInit( @@ -54,7 +55,9 @@ sealed class HandshakeMessage { /** * Message representing a successful client registration attempt + * * Contains metadata about the core + * * Client should proceed with either [ClientLogin] or [CoreSetupData] */ data class ClientInitAck( @@ -85,10 +88,11 @@ sealed class HandshakeMessage { /** * Message representing a failed client registration attempt + * * Client should abort the connection */ data class ClientInitReject( - /**Username + /** * HTML-formatted error message */ val errorString: String? @@ -96,6 +100,7 @@ sealed class HandshakeMessage { /** * Client login message containing authentication data + * * Core should respond with either [ClientLoginAck] or [ClientLoginReject] */ data class ClientLogin( @@ -111,6 +116,7 @@ sealed class HandshakeMessage { /** * Message representing a successful client login attempt + * * Client will receive [SessionInit] immediately afterwards */ object ClientLoginAck : HandshakeMessage() { @@ -121,6 +127,7 @@ sealed class HandshakeMessage { /** * Message representing a failed client login attempt + * * Client should retry with different [ClientLogin] or abort the connection */ data class ClientLoginReject( @@ -132,6 +139,7 @@ sealed class HandshakeMessage { /** * Message representing a successful core configuration attempt + * * Client should proceed with [ClientLogin] */ object CoreSetupAck : HandshakeMessage() { @@ -142,7 +150,9 @@ sealed class HandshakeMessage { /** * Core configuration message containing initial configuration properties + * * Configuration has to happen before login + * * Core should respond with either [CoreSetupAck] or [CoreSetupReject] */ data class CoreSetupData( @@ -174,6 +184,7 @@ sealed class HandshakeMessage { /** * Message representing a failed core configuration attempt + * * Client should retry with different [CoreSetupData] or abort the connection */ data class CoreSetupReject( @@ -189,18 +200,21 @@ sealed class HandshakeMessage { data class SessionInit( /** * List of Identity sync objects existing at the current time + * * Identity objects created or modified after [SessionInit] will be defined * via sync updates and RPC identity creation messages */ val identities: QVariantList?, /** * List of existing buffers at the current time + * * Buffers created or deleted after [SessionInit] will be defined via RPC * messages */ val bufferInfos: QVariantList?, /** * List of Ids of Network sync objects existing at the current time + * * Network objects created or modified after [SessionInit] will be defined * via sync updates and RPC identity creation messages */ -- GitLab