WindowsにCircleCI コマンドをインストール

Python実践入門の内容にしたがって、初めてCircleCIなるものを試してみました。誰もが通る道だとは思いますが、とりあえず安定のビルドエラーに遭遇。

エラーだということはわかりますが、どこ(何行目)がエラーなのかは出してくれないようです。このままだと試行錯誤するたびに git push しないといけないのかと思っていましたが、ローカル側でテストしてくれる circleci というコマンドがあるようです。とりあえず config.yml ファイルの文法チェックのためだけに入れてみました。

本家の推奨手順通り、Chocolatey経由でインストールします。PowerShell を管理者権限で開いてchocolateyをインストールし、その後 choco コマンドで circleci をインストールします。

PS C:\Windows\system32> Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
PS C:\Windows\system32> choco install circleci-cli -y

この手順の場合、circleci コマンドは C:\ProgramData\chocolatey\bin 配下にインストールされます。このパスはシステム環境変数のパスに自動的に追加されます。
この後、PowerShell のセッション( or Windows Terminal / VSCode のターミナル)等を終了/再起動するとパスが通って起動できるようになります。

PS C:\Users\hotta> circleci
Use CircleCI from the command line.

This project is the seed for CircleCI's new command-line application.

For more help, see the documentation here: https://circleci.com/docs/2.0/local-cli/


Usage:
  circleci [command]

Available Commands:
  config      Operate on build config files
  context     Contexts provide a mechanism for securing and sharing environment variables across projects. The environment variables are defined as name/value pairs and are injected at runtime.
  diagnostic  Check the status of your CircleCI CLI.
  help        Help about any command
  local       Debug jobs on the local machine
  namespace   Operate on namespaces
  open        Open the current project in the browser.
  orb         Operate on orbs
  setup       Setup the CLI with your credentials
  update      Update the tool to the latest version
  version     Display version information

Flags:
  -h, --help                help for circleci
      --host string         URL to your CircleCI host, also CIRCLECI_CLI_HOST (default "https://circleci.com")
      --skip-update-check   Skip the check for updates check run before every command.
      --token string        your token for using CircleCI, also CIRCLECI_CLI_TOKEN
Use "circleci [command] --help" for more information about a command.

試しに VSCode を再起動した後、プロジェクトのディレクトリでターミナルを開き、バリデーションを実行してみました。

PS C:\Users\hotta\Projects\lgtm> circleci config validate
Error: Config does not conform to schema: {:workflows {:all {:jobs [nil {:test (not (map? nil)), :requires (not (map? a-clojure.lang.LazySeq))}]}}}

これで git push する前でも自分で文法チェックすることができるようにはなりました。しかしエラーメッセージは当然のごとく CircleCI が出すものと同じなので、どこが間違ってるのかがいまひとつわかりません(汗)。ansible といっしょで、慣れるしかなさそうです。ちなみに上記の場合、requires: の子供をインデントで字下げしていないのが敗因でした。その後数回の試行錯誤を経て、無事最初のビルドが通りました。これが CircleCI における Hello World というところです。

タイトルとURLをコピーしました