ドキュメント
circleci.com
Start Building for Free

Orb オーサリングに関するよくあるご質問

4 weeks ago1 min read
Cloud
Server v3.x
On This Page

よく寄せられるご質問や技術的な問題など、Orb のオーサリングに役立つ情報をまとめました。

名前空間を要求または Orb をパブリッシュする際にエラー

  • 質問: 名前空間を要求または安定版 Orb をパブリッシュしようとするとエラーが発生します。

  • 回答: お客様は組織オーナーまたは管理者でない可能性があります。

組織が要求できる名前空間は 1 つだけです。 組織の名前空間を要求するには、認証を行うユーザーがその組織内でオーナーまたは管理者の権限を持っている必要があります。

必要な権限レベルがない場合、下記のようなエラーが表示されることがあります。

Error: Unable to find organization YOUR_ORG_NAME of vcs-type GITHUB: Must have member permission.: the organization 'YOUR_ORG_NAME' under 'GITHUB' VCS-type does not exist. Did you misspell the organization or VCS?

詳細については、 Orb CLI の権限リストを参照してください。

Orb の削除

  • 作成した Orb を削除できますか?

  • 回答: 削除できません。 Orb はデフォルトで公開されており、1つのバージョンの Orb をパブリッシュした後、変更することはできません。 これにより、ユーザーは既知のバージョンの Orb がすべての実行において同じ動作をすると想定することができます。 Orb を削除すると、ユーザーのプロジェクトにおけるパイプラインの失敗につながる恐れがあります。

ただし、Orb を Orb レジストリから除外することは可能です。 除外した Orb は、API または CLI からは見つけられますが、Orb レジストリの検索結果には表示されません。 これは、例えば現在はメンテナンスを行っていない Orb などに適しています。

circleci orb unlist <namespace>/<orb> <true|false> [flags]

API トークンの保護

  • 質問: ユーザーの API トークンなどの機密情報を保護するにはどうしたらよいですか。

  • 回答: API キーのパラメーターとして env_var_name パラメーター型を使用してください。 このパラメーター型は、有効な POSIX 環境変数名の文字列のみを入力値として受け入れます。 パラメーターの説明で、この環境変数を追加するようにユーザーに指示してください。

詳細はこちら:

環境変数

  • 質問: ユーザーに環境変数の追加を求めるにはどうしたらよいですか。

  • 回答: 環境変数名のパラメーターを作成してください。 _変更できない_静的な名前を持つ環境変数でも同じように対応します。 そして、そのパラメーターに正しいデフォルト値を割り当てます。 変更できない環境変数の場合は、その旨をパラメーターの説明に記載します。 また、変更できる環境変数かどうかを問わず、API キーの取得方法をユーザーに示してください。

必須の環境変数はバリデーションすることをお勧めします。 詳細については、 Orb のオーサリングのベストプラクティス」を参照してください。

詳細はこちら:

サポートされているプログラミング言語

CircleCI Orb では、 再利用可能な CircleCI 設定ファイルをパッケージ化しています。 例えば、 コマンド は特定の Executor 内で実行できますが、その Executor は、カスタムジョブで_コマンド_を使用する場合はユーザーによって、 再利用可能なジョブを使用する場合は Orb オーサーによって定義されます。 ロジックが実行される環境に応じて、使用する言語を決定してください。

  • 質問: コマンド ロジックの記述にはどのプログラミング言語を使用できますか。

  • 回答: 移植性と汎用性に最も優れているのは、POSIX 準拠の Bash です。 Orb を共有する予定であれば、この言語を使用することをお勧めします。 ただし、Orb は高い柔軟性を誇り、他のプログラミング言語やツールも自由に実行できます。

Bash

Bash は、すべての Executor において最もよく使用されており、お勧めの言語です。 Bash は、ネイティブの run コマンドを使用して直接、簡単に記述できます。 MacOS と Linux のデフォルトのシェルは Bash になります。

対話型インタープリター (Python など)

ユースケースによっては、Orb が特定の環境にしか存在しないことがあります。 たとえば、Orb が一般的な Python ユーティリティとして使用される場合は、Python を Orb の依存関係として要求した方が合理的です。 run コマンドの シェルパラメーターを、次のように変更して使用してください。

steps:
  - run:
    shell: /usr/bin/python3
    command: |
      place = "World"
      print("Hello " + place + "!")

バイナリ

このオプションは、可能な限り使用しないことを強くお勧めします。 時に、CLI ツールなどのリモート バイナリ ファイルをフェッチしなければならない場合があります。 これらのバイナリは、パッケージ マネージャーからフェッチするか、可能な場合は GitHub リリースなどの VCS でホスティングする必要があります。 Homebrew を AWS Serverless Orb の一部としてインストールする例を以下に示します。

steps:
  - run:
    command: >
      curl -fsSL
      "https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh" | bash
      /home/linuxbrew/.linuxbrew/bin/brew shellenv >> $BASH_ENV
    name: Homebrew のインストール (Linux 向け)

コマンド/ジョブ

  • 質問: コマンドとジョブのどちらを作成するべきですか。

  • 回答: どちらでもかまいませんが、実行したいタスクによリます。

Orb の コマンドは、ユーザーか Orb 開発者がジョブ内で何らかのアクションを実行するために使用します。 コマンド自体は、自身が含まれているジョブを認識しませんが、ユーザーは自由自在にコマンドを使用できます。 コマンドは、CLI アプリケーションを自動的にインストールしたり、インストールと認証を実行したりする場合などに便利です。

ジョブは、特定の実行環境内のステップやジョブの集まりを定義したものです。 ジョブでは通常、実行環境と実行対象のステップを指定するので、自由度はあまりありません。 ジョブは、デプロイなどのタスクを自動化する場合に便利です。 デプロイ ジョブでは、Python などの一般的な実行プラットフォームを選択するだけで、ユーザー コードのチェックアウト、CLI のインストール、デプロイ コマンドの実行を自動的に完了できます。ユーザーが追加の設定を行う必要はほとんど、あるいはまったくありません。

詳細はこちら:

関連項目


ドキュメントの改善にご協力ください

このガイドは、CircleCI の他のドキュメントと同様にオープンソースであり、 GitHub でご利用いただけます。 ご協力いただき、ありがとうございます。

サポートが必要ですか

CircleCI のサポートエンジニアによる、サービスに関する問題、請求およびアカウントについての質問への対応、設定の構築に関する問題解決のサポートを行っています。 サポートチケットを送信して、CircleCI のサポートエンジニアにお問い合わせください。日本語でお問い合わせいただけます。

または、 サポートサイト から、サポート記事やコミュニティフォーラム、トレーニングリソースをご覧いただけます。