😊
CircleCIのCLIでローカルでJobを実行してみる
手元でCIを軽く検証したい機会があったので、備忘がてらメモとして残しておきます。
前提
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
公式ドキュメント
Discussion