본문 바로가기
Android

[Android] Github Pages로 프로젝트 문서 호스팅

by 역삼동개발자D 2024. 2. 18.
반응형

지난번 포스트에서 Dokka를 활용하여 안드로이드 프로젝트를 문서화하였다. KDoc, Dokka에 대해 잘모르겠다면 이전 포스트를 보고 올 것을 추천한다.

 

https://yeoksamdev.tistory.com/3

 

[Android] Dokka를 활용하여 프로젝트 문서화하기 - (1)

Kotlin 코드를 Dokka로 문서화하기 Dokka를 활용하면 HTML, Markdown 등의 형태로 kolin 코드를 문서화할 수 있다. 1. Build gradle에 Dokka plugin 추가 Kotlin DSL, Multi-Module을 사용한 안드로이드 프로젝트를 기준으

yeoksamdev.tistory.com

 

 

이번 포스트에는 github의 기능을 활용하여 문서를 자동 생성하고 호스팅하는 방법을 설명하려고 한다.

 

Github pages의 호스팅 방법은 보통 action과 branch를 통한 배포 2가지로 구분되는데, 기존에 작업하고 있던 프로젝트의 문서의 경우 private submodule들을 사용하고 있었고, 프로젝트의 signing key 등의 작업 또한 github action을 사용하여 설정하고 있었던 탓에 github page 또한 부득이하게 action파일을 custom하여 사용해야했다.

 

그럼 이제 아래의 과정을 따라가면서 프로젝트에 문서를 자동으로 배포하는 기능을 추가해보자

 

Github action 파일 작성하기

.github/workflows/gh_pages.xml

name: Build Jekyll site
on:
  push:
    branches: [ "develop", "master" ]

permissions:
  contents: read
  pages: write
  id-token: write

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
        // private submodule이 포함되어있다면 token에 auth_key를 설정해주어야한다
        with:
          token: ${{ secrets.REPO_AUTH_KEY }}
          submodules: true

	  // 프로젝트의 jdk 버전과 동일하게 설정해주면된다
      - name: set up JDK 17
        uses: actions/setup-java@v3
        with:
          java-version: '17'
          distribution: 'temurin'
          cache: gradle

      - name: Build documentation
        run: ./gradlew dokkaHtmlMultiModule --no-configuration-cache

      - name: Publish documentation
        uses: JamesIves/github-pages-deploy-action@releases/v4
        with:
          BRANCH: gh-pages
          FOLDER: build/dokka/htmlMultiModule
          TOKEN: ${{ secrets.REPO_AUTH_KEY }}

 

 

Github pages 설정하기

Github의 Setting 페이지로 이동하면 왼쪽 사이드바에 Pages항목이 있다. 이를 클릭하면 아래와 같은 화면을 볼 수 있다.

 

 

Build and deployment

아래의 이미지를 참고하여 설정한다.

  • Source: Deploy from a branch로 설정한다
  • Branch: gh-pages 브랜치의 root로 설정한다

※ 만약 브랜치가 보이지 않는다면 위의 gh_pages.xml 파일이 develop 혹은 master 브랜치에 업로드되었는지 확인하고 actions 탭에서 정상적으로 동작 완료되었는지 확인한다

 

 

호스팅이 완료되면 아래의 주소에 접속하여 확인할 수 있다

 

 

반응형