3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【CircleCI】サブディレクトリのプロジェクトをビルド対象にする書き方

Posted at

タイトルの通りですが、調べてもなかなか方法にたどり着けなかったので記録しておきます。
今回は私がよく使っている Rails をサンプルにします。

ルートディレクトリにプロジェクトがある

フォルダ階層

root
├── .circleci
│   └── config.yml
├── app
├── bin
├── config
├── db
├── lib
:

設定ファイル

下記の例は公式から持ってきたものです。
本当はjobsの中に test も合ったのですが、今回の説明では不要だったので削除しています。

.circleci/config.yml
version: 2.1

orbs:
  ruby: circleci/ruby@1.0
  node: circleci/node@2

jobs:
  build:
    docker:
      - image: cimg/ruby:2.7-node
        auth:
          username: mydockerhub-user
          password: $DOCKERHUB_PASSWORD
    steps:
      - checkout
      - ruby/install-deps
      - node/install-packages:
          pkg-manager: yarn
          cache-key: "yarn.lock"

workflows:
  version: 2
  build_and_test:
    jobs:
      - build

サブディレクトリにプロジェクトがある

フォルダ階層

下記のようにルート直下にプロジェクトがない場合は上記の書き方では失敗します。

root
├── .circleci
│   └── config.yml
└── project
    ├── config.yml
    ├── config
    ├── db
    ├── lib
    :

設定ファイル

working_directorycheckout - pathを明示的に記述することで実現できます。

.circleci/config.yml
version: 2.1

orbs:
  ruby: circleci/ruby@1.0
  node: circleci/node@2

jobs:
  build:
    working_directory: ~/root/project    <---
    docker:
      - image: cimg/ruby:2.7-node
        auth:
          username: mydockerhub-user
          password: $DOCKERHUB_PASSWORD
    steps:
      - checkout:
          path: ~/root    <---
      - ruby/install-deps
      - node/install-packages:
          pkg-manager: yarn
          cache-key: "yarn.lock"

workflows:
  version: 2
  build_and_test:
    jobs:
      - build

参考

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?