Search Results for ""

言語ガイド: Crystal

チュートリアル & 2.0 サンプル アプリケーション > 言語ガイド: Crystal

このガイドでは、CircleCI で最小限の Crystal アプリケーションをビルドする方法について説明します。

概要

お急ぎの場合は、後述の設定ファイルの例をプロジェクトのルート ディレクトリにある .circleci/config.yml に貼り付け、ビルドを開始してください。

Crystal プロジェクトのサンプルは以下のリンクで確認できます。

このプロジェクトには、コメント付きの CircleCI 設定ファイル .circleci/config.yml が含まれます。

このアプリケーションでは Crystal 0.27 と Kemal 0.25 を使用しています。 Crystal と Kemal は速いペースで開発が進められています。 Docker イメージを :latest バージョンに変更すると、互換性を損なう変更が発生する可能性があります。

設定ファイルの例

version: 2 # CircleCI 2.0 を使用します
jobs: # 一連のジョブ
  build: 
    working_directory: ~/demo_app
    docker: # Docker でビルド ステップを実行します

      - image: crystallang/crystal:0.27.0 # すべての `steps` が実行されるプライマリ Docker コンテナ
    steps: # 一連の実行可能ステップ
      - checkout # ソース コードを作業ディレクトリにチェックアウトします
      - restore_cache: # 依存関係キャッシュを復元します
      # 依存関係キャッシュについては https://circleci.com/ja/docs/2.0/caching/ をお読みください
          key: dependency-cache-{{ checksum "shard.lock" }}
      - run:
          name: 依存関係のインストール
          command: shards install
      - save_cache: # 依存関係キャッシュを保存するステップ
          key: dependency-cache-{{ checksum "shard.lock" }}
          paths:
            - ./lib
      - run:
          name: テスト
          command: crystal spec
# デプロイ例については https://circleci.com/ja/docs/2.0/deployment-integrations/ を参照してください    

設定ファイルの詳細

config.yml は必ず version キーから始めます。 このキーは、互換性を損なう変更に関する警告を表示するために使用します。

version: 2

実行処理は 1 つ以上のジョブで構成されます。 この実行では ワークフローを使用していないため、build ジョブを持つ必要があります。

working_directory キーを使用して、ジョブの steps を実行する場所を指定します。 working_directory のデフォルトの値は ~/project です (project は文字列リテラル)。

ジョブの各ステップは [Executor](/docs/ja/2.0/executor-types/) という名前の仮想環境で実行されます。 この例では、公式 Crystal Docker イメージがプライマリ コンテナとして使用されています。 ジョブのすべてのコマンドがこのコンテナで実行されます。

jobs:
  build: 
    working_directory: ~/demo_app
    docker:
      - image: crystallang/crystal:0.27.0

ジョブのコンテナを選択したら、いくつかのコマンドを実行する steps を作成します。

checkout ステップを使用して、ソース コードをチェックアウトします。 デフォルトでは、working_directory で指定されたパスにソース コードがチェックアウトされます。

実行の間隔を短縮するには、依存関係またはソース コードのキャッシュを検討してください。

save_cache ステップを使用して、いくつかのファイルまたはディレクトリをキャッシュします。 この例では、インストールされたパッケージ (“Shards”) がキャッシュされます。

restore_cache ステップを使用して、キャッシュされたファイルまたはディレクトリを復元します。 この例では、shard.lock ファイルのチェックサムを使用して、依存関係キャッシュが変更されているかどうかを判断します。

    steps: #

      - checkout
      - restore_cache:
          key: dependency-cache-{{ checksum "shard.lock" }}
      - run:
          name: 依存関係のインストール
          command: shards install
      - save_cache:
          key: dependency-cache-{{ checksum "shard.lock" }}
          paths:
            - ./lib

最後に crystal spec を実行して、プロジェクトのテスト スイートを実行します。

      - run:
          name: テスト
          command: crystal spec

完了です。 これで基本的な Crystal アプリケーション用に CircleCI 2.0 をセットアップできました。

デプロイ

デプロイ ターゲットの構成例については、「デプロイの構成」を参照してください。