51394
以下は、 `.circleci/config.yml` の一部分で、`/go/pkg/dep` 以下をキャッシュしながら、今ビルドしているブランチと
Gopkg.lock のチェックサム情報でもって、そのキャッシュの名前としています。

```

      - restore_cache:
          name: Restore Dependencies cache
          keys:
            - pkg-dep-v1-{{ .Branch }}-{{ checksum "Gopkg.lock" }}
            - pkg-dep-v1-{{ .Branch }}
            - pkg-dep-v1-
          paths:
            - /go/pkg/dep
    
```

### 質問

  * ここで用いられているテンプレートエンジンの文法は何ですか？ もしくは、このエンジンについて名称があったりしますか？ 
    * さらには、このテンプレートエンジンで例えば四則演算など、置換以上の機能を持っていたりしますか？
CC BY-SA 4.0
2018-12-20T11:51:55.897
51393
2018-12-20T12:36:03.303
754
question
circleci
circleci のテンプレート( `{{ expr }}` )の文法は？
それはCircleCIの設定の中でも`restore_cache`及び`save_cache`の設定内の`key`でのみ使用可能なテンプレートであると思われます。[公式ドキュメントのCaching
Dependenciesのページ](https://circleci.com/docs/2.0/caching/#using-keys-and-
templates)に説明があります。文法は`{{
}}`で特定のキーワード（または構文）を囲むだけという単純なもので、利用可能なキーワードや構文はリンク先のページで全部列挙されています。このテンプレートエンジンに特に名前は無いようです。

機能については、いくつかの実行時情報を参照したり、環境変数を取得したりファイルのハッシュ値を計算したりすることに限られ、四則演算などの柔軟な機能は無いようです。

* * *

なお、`{{
}}`を使うこと自体は比較的多くのテンプレートエンジンで行われており、例えば[Jinja2](http://jinja.pocoo.org/)などがあります。
CC BY-SA 4.0
2018-12-20T12:16:55.160
51394
2018-12-20T12:36:03.303
2018-12-20T12:36:03.303
30079
30079
51393
answer