Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What are the problem?
@UramnOIL

GitHub Actionsを使ってDokkaで出力したドキュメントをGitHub Pagesにデプロイする

目的

タイトル通りです。

Dokkaについて詳しく知りたい方は↓へどうぞ。
http://kotlin.github.io/dokka/1.5.0/

準備

Gradle

build.gradle.kts
plugins {
    id("org.jetbrains.dokka") version dokkaVersion
}

repositories {
    mavenCentral()
}

// ビルド先のディレクトリを指定します。なくても大丈夫です。
tasks.getByName<org.jetbrains.dokka.gradle.DokkaTask>("dokkaHtml") {
  outputDirectory.set(buildDir.resolve("dokkaHtmlOutput"))
}

build.properties
org.gradle.jvmargs=-XX:MaxMetaspaceSize=512m

Dokkaはメタスペースを大量に消費して最悪の場合OutOfMemoryが発生するので、程よく調整してください。

ワークフロー

こちらを用いてデプロイします。

.github/workflows/deploy_gh_pages.yml
name: 'Deploy Document to GitHub Pages'

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: 'ubuntu-20.04'
    steps:
      - uses: actions/checkout@v2
# ドキュメントのビルド
      - name: Build Document
        run: ./gradlew dokkaHtml
# デプロイ
      - name: Deploy
        uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./build/dokkaHtmlOutput

結果

mainブランチにプッシュするとCIが回ります。

サンプルはこちら

まとめ

GitHub Actionsを使ってDokkaで生成したドキュメントをGitHub Pagesにデプロイする方法でした。

ローカルでのDokkaのビルドでOOMが発生してたので、戦々恐々としながらも作ったワークフローをGitHub Actionsで回してみたものの、案の定こけていました。
GitHub Actionsのvmoptionsを変更する方法が見当たらず、Dokka側で最適化されるのを待つしかないのかと半ば絶望してました。

それ以外はよそ様のActionsを使ったりと色々と楽をしていたら拍子抜けするくらいすぐにデプロイできたのでなかなか楽しかったです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
1
Help us understand the problem. What are the problem?