GitLab CI 変数
GitLab は便利なリポジトリ ホスティング コントロール ツールを提供してくれました。これにより、ソフトウェア開発プロセスが迅速に機能するように、よく整理されたソフトウェア ワークフローを確立できます。
ソフトウェア開発サイクルをスムーズに終わらせることができる最新のコラボレーション プロセスに取り組むことを可能にする多数のツールがあります。 また、Bitbucket、Google Code などの他のプラットフォームからリポジトリをインポートするのにも役立ちます。
また、アプリケーションのデプロイに使用されるスクリプトを作成して実行し、興味のない退屈なタスクを巧みに自動操作し、変更とアクションを追跡します。 この記事では、gitlab-ci.yml
ファイルでの継続的インテグレーション変数の使用について説明します。
GitLab CI 変数
GitLab CI は継続的インテグレーション
の略です。 これらの変数は、プロジェクト全体をグローバルに終了し、プロジェクトを展開する準備を整えるために使用される環境変数として知られています。
これらの変数を使用して、パイプラインでジョブを管理および実行できます。 また、後でスクリプトによって使用される値も格納します。
これは、すべての分岐で同じ値の反復を停止するのに役立ちます。 また、毎回 gitlab-ci.yml
ファイルをハードコーディングする必要もありません。
.gitlab-ci.yml
ファイルに CI 変数を作成する
variables
キーワードを使用して変数とその値を指定し、.gitlab-ci.yml
ファイルの先頭または どんな仕事でもステージレベルでも。
場合によっては、トップレベルで変数を説明できます。この変数のスコープはグローバルに見つけることができ、どのジョブでも簡単に適用できます。 ただし、これは、それを定義したジョブのみが使用できることに注意してください。
その例は次のとおりです。
variables:
GLOBAL_VAR: "This will be accessable to all current jobs"
job1:
variables:
JOB_LOCAL_VAR: "This will be accessable to only this job."
script:
- echo "$GLOBAL_VAR" and "$JOB_LOCAL_VAR."
.gitlab-ci.yml
ファイルに配置された変数は、JAVA_HOME
または JDBC_URL
変数と同様に、実用的でないプロジェクト構成を維持する必要があります。
使用されるこれらの変数は、リポジトリで区別できる必要があります。 これらの保存されたデリケートな変数には、すべてのプロジェクトの CI 変数にいくつかの秘密と鍵があります。
プロジェクト CI 変数
要件に応じて、一部のプロジェクト設定用の CI 変数を開発することもできます。 セキュリティ上の目的を考慮して、完全な権限を持つプロジェクト メイトのみがプロジェクトの CI 変数を作成または編集できます。
CI 変数の設計は、プロジェクトの要件とニーズに応じて、.gitlab-ci.yml
ファイルではなく、プロジェクト設定で設定する必要があります。
プロジェクトで CI 変数を作成または編集するには、次のようにそのプロジェクトの設定に移動します。
- プロジェクトの
Settings > CI
に移動し、Variable's
セクションを拡大します。 - 開いたら、プロジェクトのニーズと要件に従って変数値を作成または編集できます。
グループ CI 変数
グループ CD 変数を設定する場合は、CI 変数を作成し、それをグループ内のすべてのプロジェクトに適用する必要があります。 グループ変数は、セキュリティ上の理由から、パスワード、資格情報、および SSH 公開/秘密キーを配置するために使用されます。
以下の手順に従って、グループ CI 変数を作成および編集します。
- グループに移動し、
Settings > CI/CD
に移動します。 - 開いたら、プロジェクトのニーズと要件に従って変数値を作成または編集できます。
インスタンス CI 変数
インスタンス CI 変数を挿入するには、GitLab インスタンス内のすべてのプロジェクトとグループに対して監視可能でなければならない CI 変数を作成する必要があります。この目的のためには、1 人が管理者である必要があります。
これは、このアドレス https://<your-gitlab>/admin/application_settings/ci_cd
に直接移動することで実行できます。
Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.
LinkedIn