0
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?

CircleCIのジョブを定義する

Posted at

ジョブとは、ステップを集めたもの。

ジョブをいくつか集めてワークフローになる。

ジョブは主に「(1)実行環境」と「(2)ステップ」でできている!

ジョブの構成要素は以下の通りです。

1. 「実行環境」とは、「パソコンの種類」のこと!

実行環境」とは、「パソコンの種類」のことだと思ってください。
実行環境」の具体的には、以下のようなものがります。

  • Docker (docker)
  • Mac (macos)
  • Linux (machine)

Docker

Dockerをジョブの実行環境として使用する場合、以下の情報を登録できます。

必須

キー データ型 選択肢 記述
image 文字列 実行環境として使用したいDockerイメージ

オプション

キー データ型 選択肢 記述
name 文字列 他のコンテナからアクセスする際のDockerの名前(ホスト名)。
user 文字列 コンテナ内でコマンドを実行するユーザを指定
entrypoint 文字列, リスト コンテナの起動時に実行されるコマンド
command 文字列, リスト エントリーポイントの引数を指定する。エントリーポイントが定義されていなければコンテナ起動時にPID1となるコマンドになる
environment マップ 環境変数
auth マップ
aws_auth マップ ECRにホストされているイメージを使用するための認証情報に指定する
jobs:
  my-job:
    docker:
      image: # 必須
      name:
      entrypoint:
      command:
      user:
      environment:
      auth:
      aws_auth:

Dockerの例

jobs:
  my-example-job:
    docker:
      image: node:14
      name: my-docker-container # 初期値はlocalhost経由でアクセス可能
      entrypoint: ["/bin/sh", "-c"] # 文字列/リスト。Dockerコンテナの起動時に実行されるコマンドで指定。Dockerfileのエントリーポイントを上書き。
      command: ["echo", "Hello World"] # 文字列/リスト。エントリーポイントの引数を指定。エントリーポイントがない場合はコンテナ起動時にPID1となるコマンドになる。
      user: "1001:1001" # 文字列。コンテナ内でコマンドを実行するユーザを指定。
      environment: # マップ。環境変数。
        NODE_ENV: production
        API_KEY: abcdef12345
      auth: # マップ。`docker login`で使用する認証情報を指定する。
        username: my-username
        password: my-password
        aws_auth: # ECRにホストされているイメージを使用するための認証情報を指定する。
          access_key_id: YOUR_AWS_ACESS_KEY
          secret_access_key: YOUR_AWS_SECRET_KEY
          region: us-west-1

Mac

jobs:
  my-job:
    macos:
      xcode: # 文字列、必須。VMにインストールするバージョンを指定する。

MacOSの例


Machine

Machine Key Settings

必須

キー データ型 記述
image 文字列 Specifies the image to use. For available images, refer to "Available machine images".

オプション

キー データ型 記述
docker_layer_caching ブーリアン 使うイメージを指定するSpecify true to enable Docker layer caching. A paid account is required to use this feature.
jobs:
  my-job:
    image: # 文字列 使用するイメージをAvailable machine imagesから指定する。
    docker_layer_caching: # ブーリアン Dockerレイヤキャッシングを有効にする。有償アカウントが必要。

Machineの例

jobs:
  my-job:
    あああ

2. 「ステップ」とは

ジョブより小さい単位の処理。


ワークフローは、ファイルを処理することができる

persist_to_workspace

3. その他のキー

(1)「実行環境
(2)「ステップj」を定義したら、ジョブは完成も同然です。
shell
environment
parallelism
working_directory
resource_class

jobs:
  my-job:
    # ↓↓↓必須
    docker:
      - image: circleci/node:14.17-browsers
    # ↑↑↑必須
    
    # ↓↓↓ここから任意
    shell: /bin/bash --login
    environment:
      NODE_ENV: production
      APP_VERSION: 1.0.0
    parallelism: 3
    working_directory: ~/my-app
    resource_class: medium
    # ↑↑↑ここまで任意

    # ↓↓↓必須
    steps:
      - checkout
      - run:
          name: Print Environment and Working Directory
          command: |
            echo "Running in environment $NODE_ENV"
            echo "Working directory is $(pwd)"
            echo "Parallel instance: $CIRCLE_NODE_INDEX"
    # ↑↑↑必須
0
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
0
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?