Upgrade to Pro — share decks privately, control downloads, hide ads and more …

オンラインドキュメントへCI・CDを適用している話 / apply CICD methods...

iwashi
November 26, 2022

オンラインドキュメントへCI・CDを適用している話 / apply CICD methods to online documents

2018/1/24の社内勉強会で講演した資料です。

ドキュメントに対して、継続的インテグレーション・継続的デプロイを適用する話をまとめています。

iwashi

November 26, 2022
Tweet

More Decks by iwashi

Other Decks in Technology

Transcript

  1. CI 開発マシン GitHub ③テスト結果 (Pass/Fail)を返却 ②単体/機能 テストを起動 ①機能を追加した 新コードをPush ④レビューReady

    を通知 開発者 ⑤レビューReady を通知 継続的インテグレーションの例 ここまでは 開発+テスト の範囲 デプロイまで含めていく
  2. CI/CDの全体像 開発マシン GitHub ③テスト結果 (Pass/Fail)を返却 ②CircleCI上で、 textlintを使った テスト実行 ①ブランチを切って 文書を追加(mkdocs)

    ④レビューReady を通知 その他 メンバ ⑤文書レビューして OKならマージ ⑥GitHub Pagesに  masterをデプロイ
  3. CI/CDの構成 開発マシン GitHub ③テスト結果 (Pass/Fail)を返却 ②CircleCI上で、 textlintを使った テスト実行 ①ブランチを切って 文書を追加

    (MkDocs) ④レビューReady を通知 その他 メンバ ⑤文書レビュー ⑥GitHub Pagesに  masterをデプロイ
  4. MkDocs とは ・Markdownで書けるPythonベースの  静的Webサイトジェネレータ   (類似のツールは Sphinx など) ・ビルドすると、HTML/JS/CSS を吐き出すので、

     それを任意の方法でデプロイする   e.g. Webサーバへ配置、S3へ置く、GitHub Pagesへ置く ・任意に拡張が可能   e.g. 独自にJSを追加、Themeを適用してデザイン変更
  5. MkDocs - 使い方 // プロジェクト作成 $ mkdocs new my-project $

    cd my-project // 実際にローカルで動かしてみる $ mkdocs serve -> http://127.0.0.1:8000 // GitHub Pages にデプロイする $ mkdocs gh-deploy
  6. textlint - 使い方(あとでまとめてデモ) インストール(今日は説明単純化のため、グローバル設定) $ npm install textlint --global WEB+DB

    PRESS用語統一ルールを設定 (Ref: https://gist.github.com/inao/f55e8232e150aee918b9) $ npm install textlint-rule-web-plus-db –global 実際にテスト(lint)する $ textlint --rule textlint-rule-web-plus-db docs/index.md
  7. Circle CIとは ・CI as a Serviceの1つで、デファクトになりつつある ・YAML形式の定義ファイルで、任意のタスクを実行 ・WebHook / API

    契機 だけでなく、  cronライクなスケジュール機能もある triggers:  - schedule: cron: "0 * * * *" e.g. 毎時実行したい場合
  8. Circle CIとは ・CI as a Serviceの1つで、デファクトになりつつある ・YAML形式の定義ファイルで、任意のタスクを実行 ・WebHook / API

    契機 だけでなく、  cronライクなスケジュール機能もある ・おまけ  ・(完全に主観) やると分かるが爆速   e.g. オンプレDroneで10分 -> Circle CIで1分
  9. CI/CDの構成 開発マシン GitHub ③テスト結果 (Pass/Fail)を返却 ②CircleCI上で、 textlintを使った テスト実行 ①ブランチを切って 文書を追加(mkdocs)

    ④レビューReady を通知 その他 メンバ ⑤文書レビュー ⑥GitHub Pagesに  masterをデプロイ GitHub Pagesは CI/CDの本質じゃないので略