😊

CircleCIのCLIでローカルでJobを実行してみる

2023/07/30に公開

手元でCIを軽く検証したい機会があったので、備忘がてらメモとして残しておきます。

前提

CLIはインストールしておく
https://circleci.com/docs/ja/local-cli/

macだったらこれでおっけー

$ brew install circleci

やってみる

ディレクトリは適当に

$ tree -a
.
└── .circleci
    └── config.yml

2 directories, 1 file

job定義サンプル(config.yml)

version: 2.1
jobs:
  build:
    docker:
    - image: cimg/go:1.20.6
    steps:
      - run:
          name: Go version
          command: go version
      - run:
          name: GOPATH
          command: |
            go env GOPATH
            go env GOROOT

以下で、定義ファイルの文法チェックなどができる

$ circleci config validate

Config file at .circleci/config.yml is valid.

いざ、Jobを実行する

$ circleci local execute build

Fetching latest build environment...

(...省略)

Status: Downloaded newer image for cimg/go:1.20.6
Time to upload agent and config: 1.269908417s
Time to start containers: 221.365334ms
====>> Preparing environment variables
Using build environment variables:
  BASH_ENV=/tmp/.bash_env-localbuild-1690690334
  CI=true
  CIRCLECI=true
  CIRCLE_BRANCH=
  CIRCLE_BUILD_NUM=
  CIRCLE_JOB=build
  CIRCLE_NODE_INDEX=0
  CIRCLE_NODE_TOTAL=1
  CIRCLE_REPOSITORY_URL=
  CIRCLE_SHA1=
  CIRCLE_SHELL_ENV=/tmp/.bash_env-localbuild-1690690334
  CIRCLE_WORKING_DIRECTORY=~/project


The redacted variables listed above will be masked in run step output.====>> Go version
  #!/bin/bash -eo pipefail
go version
go version go1.20.6 linux/amd64
====>> GOPATH
  #!/bin/bash -eo pipefail
go env GOPATH
go env GOROOT

/home/circleci/go
/usr/local/go
Success!

つまづいたこと

最近IntelからM2に移行した関係で、job実行時に以下のように怒られていた。

Unexpected environment preparation error: error looking up cgroup: not implemented for cgroup v2 unified hierarchy

既存の設定ファイルが邪魔していたようだったので削除することで解決

rm ~/.circleci/build_agent_settings.json

公式ドキュメント

https://circleci.com/docs/ja/how-to-use-the-circleci-local-cli/

Voicyテックブログ

Discussion