言語ガイド: 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 # use CircleCI 2.0
jobs: # a collection of jobs
  build:
    working_directory: ~/demo_app
    docker: # run build steps with docker
      - image: crystallang/crystal:0.27.0 # primary docker container; all `steps` will run here.
        auth:
          username: mydockerhub-user
          password: $DOCKERHUB_PASSWORD  # context / project UI env-var reference
    steps: # a collection of executable steps
      - checkout # checks out source code to working directory
      - restore_cache: # Restore dependency cache
      # Read about caching dependencies: https://circleci.com/docs/2.0/caching/
          key: dependency-cache-{{ checksum "shard.lock" }}
      - run:
          name: Install dependencies.
          command: shards install
      - save_cache: # Step to save dependency cache
          key: dependency-cache-{{ checksum "shard.lock" }}
          paths:
            - ./lib
      - run:
          name: test
          command: crystal spec
# See https://circleci.com/docs/2.0/deployment-integrations/ for deploy examples

設定ファイルの詳細

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: Install dependencies.
          command: shards install
      - save_cache:
          key: dependency-cache-{{ checksum "shard.lock" }}
          paths:
            - ./lib

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

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

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

デプロイ

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



ドキュメントの改善にご協力ください

このガイドは、CircleCI の他のドキュメントと同様にオープンソースで、GitHub で使用できます。 ご協力いただき、ありがとうございます。


クリエイティブ・コモンズ・ライセンス
CircleCICircleCI ドキュメントは、クリエイティブ・コモンズの表示--非営利-継承 4.0 国際ライセンス に基づいてライセンス供与されています。