LoginSignup
12
3

More than 1 year has passed since last update.

GitHub Actionsを使ってGithub PagesにOpen APIのRedocドキュメントを出力したメモ

Last updated at Posted at 2021-10-15

概要

Github Pagesがorganizationでprivateに対応していたので
業務で使ってるOpen APIの定義をpushされた時に自動デプロイするようにしてみました

swagger-viewerとかで見るのがめんどかったので

ソースコード

構成

├── .github
│   └── workflows
│       └── gh-pages.yml
├── docs
│   └── index.html
├── package-lock.json
├── package.json
└── petstore.yaml : from https://github.com/OAI/OpenAPI-Specification/blob/main/examples/v3.0/petstore.yaml

workflows

gh-pages.yml
name: github pages

on:
branch
  push:
    branches: [ main ]

  # 手動実行できるようにするため
  workflow_dispatch:

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
        with:
          ref: main # 手動実行時のブランチを指定しておく

      - uses: actions/setup-node@v2
        with:
          node-version: '16'
          cache: 'npm'

      - run: npm ci

      - name: bundle
        run: npm run bundle

      - name: pages deploy
        uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./docs

workflowが実行されるとgh-pagesブランチが作られるので
first-deployment-with-github_token@actions-gh-pagesを参考に

Settings > Pagesを開いて
スクリーンショット 2021-10-15 16.56.09.png

Sourceにgh-pagesを設定する
スクリーンショット 2021-10-15 16.57.18.png

再度workflowを実行する
スクリーンショット 2021-10-15 17.00.25.png

デプロイを確認する

つまった所

npm install

      - uses: actions/setup-node@v2
        with:
          node-version: '14'
          cache: 'npm'

      - run: npm install -g redoc-cli

      - name: bundle
        run: redoc-cli bundle petstore.yaml

npm install -gしたらいけるだと思ったらエラー

Error: Dependencies lock file is not found

nodeのバージョン

参考にしてnode-version: '14'にしたらエラー

internal/modules/cjs/loader.js:905
  throw err;
  ^

Error: Cannot find module 'react-is'
Require stack:
...

node-version: '16'にしました。

12
3
0

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
12
3