事象
CircleCIを導入しようと、プロジェクトに「.circleci」ディレクトリと「config.yaml」を追加して、連携済みのGitHubリポジトリにpushしましたが下記のエラーが発生してしまいました。
# !/bin/sh -eo pipefail
# No configuration was found in your project. Please refer to https://circleci.com/docs/2.0/ to get started with your configuration.
#
# -------
# Warning: This configuration was auto-generated to show you the message above.
# Don't rerun this job. Rerunning will have no effect.
false
Exited with code 1
エラーメッセージを読むに、「プロジェクトに設定ファイルが存在していない」とのこと。
上述のとおり、プロジェクトには追記しているはずなのに、いったいなぜなのか...
原因
「CircleCI No configuration was found in your project.」でググったところこのページを発見。
それによると、config.yamlの拡張子が「.yaml」ではなく、「.yml」にせよとのこと。
というわけで、拡張子を「.yml」に修正したところ、無事に上述のエラーは解消されました。
改めてCircleCIの初期設定時の画面を見返してみると...


思いっきり「add a config.yml」って書いてありますやん...
そもそもなぜ拡張子が2種類なのか
調べてみるとこちらのページを発見。
回答によると、
.yml が使われる理由は、拡張子は3文字までにしておくとWindowsのshort filenames形式(SFN、いわゆる8.3形式)でも問題ないから
だそうで、
公式サイトは過去には.yamlを推奨していました。
「過去」としたのは、現在のトップページからはこのFAQに飛べない?からです。
とのこと。
また、この拡張子問題については
SPECにも記述がありませんが、この点については一応issueがありました。議論は進んでいません。
とも回答されていました。
というわけで、現時点での考え方としては「.yml」にしておいたほうが色々とトラブルが避けられるのかもしれませんね。
まとめ
CircleCIにて「No configuration was found in your project.」とエラーメッセージが表示されたら、configファイルの拡張子が「.yml」ではなく、「.yaml」になっていないかを疑ってみてください。
また、簡単に調べてみた結果としては現時点では「.yml」としておいたほうが、色々とトラブルが避けられると思います。
早くどちらかに統一される、またはどちらの拡張子でも問題なく動作するようになると良いですね。
最後までお読みいただきありがとうございました。
参考文献
問題解決のきっかけ
https://qiita.com/oke-py/items/ce90abe37e3e49cf0915
yamlの拡張子が2種類ある理由
https://jp.quora.com/yaml-ni-ha-naze-yaml-to-yml-no-2-shurui-ga-aru-node-shou-ka