何番煎じだという話ですが、ちょっと前に念願かなってCircleCI導入出来たので、ビルド時のキャッシュと自動テストを導入してみました。
今回はメモ程度の投稿ですが残しておきます。
# キャッシュ作成 generate_cache: machine: true steps: - checkout - restore_cache: key: docker--{{ checksum ".circleci/config.yml" }}-{{ checksum "docker-compose.ci.yml" }}-{{ checksum "docker_files/web/Dockerfile" }} paths: ~/caches/images.tar - run: name: Setup Docker command: | if [ ! -f ~/caches/images.tar ]; then docker-compose -f docker-compose.ci.yml build mkdir -p ~/caches docker save $(docker images | awk 'NR>=2 && ! /^<none>/{print $1}') -o ~/caches/images.tar fi - save_cache: key: docker--{{ checksum ".circleci/config.yml" }}-{{ checksum "docker-compose.ci.yml" }}-{{ checksum "docker_files/web/Dockerfile" }} paths: ~/caches/images.tar # テスト実行 test: machine: true steps: - checkout - restore_cache: key: docker--{{ checksum ".circleci/config.yml" }}-{{ checksum "docker-compose.ci.yml" }}-{{ checksum "docker_files/web/Dockerfile" }} paths: ~/caches/images.tar - run: name: Docker Cache Load command: | docker load -i ~/caches/images.tar - run: name: Run Test command: | docker-compose -f docker-compose.ci.yml run www_web /bin/bash -c '\ cd /var/www/project && composer update && \ ENVIRONMENT=ci composer unittest' workflows: version: 2 build: jobs: - generate_cache - test: requires: - generate_cache
generate_cacheに関しては、1回目の実行時は4分ほどかかるのですが、それいこうは1分未満で終わるようになりました。
ただ現状、デプロイはJenkinsで自動テストはCircleCIというよくわからない構成になっちゃってるので、CircleCIに合わせていきたいと思います。
この辺も、レガシー感謝の日で色んな人のお話をききたいなー。
メモメモ。