From 720ac2333bff99c460448f38838d579239da339f Mon Sep 17 00:00:00 2001 From: Marcos Date: Mon, 17 Jul 2023 13:33:51 +0100 Subject: [PATCH] Add public API docs --- .github/workflows/docs.yml | 54 ++++++++++++++++++++++++++++++++++++++ build.gradle | 6 +++++ 2 files changed, 60 insertions(+) create mode 100644 .github/workflows/docs.yml diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 000000000000..03e0108a7a89 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,54 @@ +name: Docs + +on: + push: + branches: ["develop"] + + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + # Single deploy job since we're just deploying + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Setup Gradle + uses: gradle/gradle-build-action@v2 + + - name: Execute Gradle build + run: ./gradlew dokkaHtmlMultiModule + + - name: Copy files + run: | + mkdir -p docs + mv build/dokka/htmlMultiModule/* docs + + - name: Setup Pages + uses: actions/configure-pages@v3 + + - name: Upload artifact + uses: actions/upload-pages-artifact@v2 + with: + path: 'docs' + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v2 \ No newline at end of file diff --git a/build.gradle b/build.gradle index 1a1c2897c3da..2adb6596e428 100644 --- a/build.gradle +++ b/build.gradle @@ -13,6 +13,7 @@ buildscript { compile_sdk = 33 fladle_version = "0.17.4" kotlinter_version = "3.12.0" + dokka_version = "1.8.20" } repositories { @@ -32,6 +33,7 @@ buildscript { } plugins { + id 'org.jetbrains.dokka' version "$dokka_version" id 'com.osacky.fulladle' version "$fladle_version" id 'org.jmailen.kotlinter' version "$kotlinter_version" apply false } @@ -48,6 +50,10 @@ allprojects { subprojects { + if (project.name.endsWith("api")) { + apply plugin: 'org.jetbrains.dokka' + } + String[] allowAndroidTestsIn = ["app", "sync-lib"] if (!allowAndroidTestsIn.contains(project.name)) { project.projectDir.eachFile(groovy.io.FileType.DIRECTORIES) { File parent ->