6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GitLab + reveal-ck でスライドの CI/CD

Posted at

はじめに

スライドを Markdown で書いてバージョン管理したり、CI/CD っぽいことをしてみました。

やったこと

  • Markdown で記述
  • reveal-ck でスライドに変換
  • GitLab でバージョン管理
  • GitLab Pages にホスティング
  • GitLab CI で CI/CD (push するたびに Pages にホストしたスライドも更新)

サンプル

reveal-ck のインストール

reveal-ck の説明はここでは割愛します。

$ gem install reveal-ck

でインストール。

あとは

  • slides.md にスライドの中身を書く
  • config.yml に設定内容を書く

ローカルでスライドの確認

$ reveal-ck generate

slides ディレクトリが作成され、その中にコンテンツが自動生成されます。

$ reveal-ck serve

でサーバを立ち上げてプレビュー。

http://localhost:10000 で確認できます。

  • slides.md を更新すると自動で更新される。すごく便利。
  • slides/ 以下はバージョン管理する必要ないので .gitignore にいれておいていいかも。

.gitlab-ci.yml の作成

作成したジョブは以下2つ。

  • reveal-ck generate で Markdown から スライドを生成するジョブ
  • 生成したスライドを GitLab Pages にホスティングするジョブ
.gitlab-ci.yml
stages:
  - build
  - deploy

build:
  # デフォルトの Ruby Image だと上手くいかない。詳しくは後述。
  image: registry.gitlab.com/xxx/yyy
  stage: build
  script:
    - reveal-ck generate
  # 次のジョブに成果物を受け渡すために artifacts 定義
  artifacts:
    paths:
      - slides/ # reveal-ck generate で slides/ 以下にコンテンツが生成されるのでコレを指定

# ここは GitLab Pages のお作法のとおり
pages:
  stage: deploy
  dependencies:
    - build
  script:
    - mv slides/ public/ # 上で生成された slides/ をそのまま public/ に
  artifacts:
    paths:
      - public

Docker Image の作成

デフォルトの Ruby Image だと文字コードが US-ASCII なので、slides.md に日本語が入っているとエラーになってしまいます。

$ reveal-ck generate
error: slides.md is not valid US-ASCII
Generating slides for 'slides.md'..
ERROR: Job failed: exit code 1

というわけで、Docker Image 作って GitLab の Container Registry に push して使うことに。

  • ベースは ruby:2.5
  • 文字コードを UTF-8
  • reveal-ck もインストールしておく
Dockerfile
FROM ruby:2.5
ENV LANG C.UTF-8
RUN gem install reveal-ck

Conteiner Registry に push

手順は GitLab のプロジェクトページ > Registry に記載されているとおり。

GitLab の Container Registry にログイン

$ docker login registry.gitlab.com

Image の build と push

$ docker build -t registry.gitlab.com/xxx/yyy .
$ docker push registry.gitlab.com/xxx/yyy

おわりに

かなり雑な説明になってしまったけど、結構いい感じな環境を作れた気がしています。
後輩ができたら薦めてみよう。。。

6
4
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
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?