LoginSignup
4
1

More than 3 years have passed since last update.

AsciidocのドキュメントをGitHub Actionsを用いてGitHub Pagesで公開する。

Last updated at Posted at 2020-04-22

これを流し読みしてやってみた。

サンプルコード

完成ドキュメント

GitHub Pagesのポイント

GitHub Pagesの公開手法には以下の3パターンある。
- gh-pagesブランチで公開
- masterブランチで公開
- masterブランチの/docフォルダで公開
https://help.github.com/ja/enterprise/2.14/user/articles/configuring-a-publishing-source-for-github-pages
単なる静的コンテンツの場合は、masterブランチでの公開でいい気がするのだが、asciidocなど他を利用する場合は、gh-pagesブランチでの公開で良いと思う。理由は後述する。

だいたいymlはこんな感じ。

ドキュメントを読めばいいといえばそれまでだが。
https://github.com/peaceiris/actions-gh-pages

asciidocの場合はこうかな。

main.yml
name: Asciidoc Build&Deploy

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Set up JDK 1.11
      uses: actions/setup-java@v1
      with:
        java-version: 1.11
    - name: Change wrapper permissions
      run: chmod +x ./gradlew
    - name: Build with Gradle
      run: ./gradlew docs
    - name: Deploy
      # PR時にはDeployさせたくないので、merge時のみに実施する。
      if: github.ref == 'refs/heads/master'
      uses: peaceiris/actions-gh-pages@v3
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }}
        publish_dir: ./docs

※ コメント頂いた箇所を訂正

GitHub Actions作成の基本は以下からそれっぽいものを探すのがまず第一である。
https://github.com/actions/starter-workflows/tree/master/ci

凝ったことをやろうとするなら、気合を入れてリファレンス読むのもいいのだが、結構色々できそうで、逆に訳わからない。
https://help.github.com/ja/actions/reference/workflow-syntax-for-github-actions#

各Stepの中でifが使えるので、どうしてもというときに使うのがポイントである。でも、if文駆使しすぎると普通に他の人が読めなくなる。

GitHub Actionsの結果

Actionsタブから見れば良い。
image.png

TOKEN利用時について補足

GITHUB_TOKENを利用する場合は、リポジトリのSettingsから下記手順を実施のこと。
https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-first-deployment-with-github_token

デフォルトの設定はgh-pages branchなので、上記のfirst deploymentの手順を実施しておけばそのようになる。

…と思ったが、どうやらgh-pagesブランチに入って、environmentをクリックし、一度以下の画面から参照する必要がありそうだ。
image.png

注意事項

なお、GitHub Actionsを利用してのドキュメントの公開をしたい場合、masterブランチでのGitHubPagesの公開はやめた方がいい。actions-gh-pagesをGitHub Actionsで動作させてみればわかるが、deploy時にmasterブランチ直下にpublish用のドキュメントが再構築され、元々あったはずのドキュメントが消える。そんなことは恐らく望む人はいないと思われる。

そんなことやってもいいという人は、下のようにすれば良い。

main.yml
    - name: Deploy
      uses: peaceiris/actions-gh-pages@v3
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }}
        publish_branch: master
        publish_dir: ./docs

追記(20200423)

コメント頂きましたが、これは想定動作ではなく修正中とのことでした。
https://github.com/peaceiris/actions-gh-pages/issues/245

完成!

これでmasterブランチでmergeが完了すれば、自動的にドキュメントが公開される。

4
1
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1