Hnoss

Hnoss

GitLabのドキュメントが、CC BY-SA 4.0.になったー!やったー!
カレンダー

文書タグ

フノス(訳者)(215) IT(191) 解説記事(147) マニュアル(82) GitLab CI(60) オープンソース(50) GitLab(40) Linux(38) メディア(34) コンテナ(29) ウェブ制作(27) DTM(19) HTML5(19) Libre Music(18) おすすめ オープンソース・ソフトウェア(18) プラグイン(14) 百科事典(14) 文化(12) ソフトウェア(11) セキュリティ(11) 録音(11) ミキシング(11) MIDI(10) 西アジア/中東(10) グルジア(9) 東ヨーロッパ(9) 料理(9) ジョージア(9) シーケンス(8) 芸能(8) 業務効率化(8) 音楽編集(8) コマンド(8) 音楽(7) 経済(7) ハンドブック(7) マスタリング(7) アプリ(6) Raspberry Pi(6) Google(5) ワークフロー(5) WordPress(5) JACK(5) マイクロサービス(5) Windows(4) Android(4) 映像制作(4) GNU(4) 法律(4) 欧州(4) 音楽プレーヤー(4) Ubuntu(4) 北米(4) アニメ(3) ホームオートメーション(3) アニメーション(3) IoT(3) Ardour(3) 社会(3) Java(3) ソーシャルメディア(3) DAW(3) Python(3) 歴史(2) ニュース(2) GNOME3(2) iOS(2) PlayStation(2) 仮想通貨(2) 古代エジプト(2) マーケティング(2) 有角神(2) エジプト(2) ALSA(2) OS X(2) ERPシステム(2) 電子ブック(2) トヨタ(2) バト(2) Krita(2) 電子書籍(2) ウィッカ(2) GPL(2) ERP(2) オカルト(2) Twitter(2) ロスレス音源(2) BountySource(2) スマホ(2) 牛(2) 由来(1) グンデストルップの大釜(1) カナン(1) カナダ(1) サウンドフォント(1) 詩篇(1) チップチューン(1) バ・ネブ・デデト(1) コットン・マザー(1) クラウドキャスティング(1) VST(1) ポータブルソフトウェア(1) エリファス・レヴィ(1) マサチューセッツ(1) 考古学(1) 申命記(1) クヌム(1) 魔女裁判(1) オンデマンド(1) リーナス・トーバルズ(1) バフォメット(1) UNIX(1) 黙示録(1) スタジオジブリ(1) アモン(1) セイラム魔女裁判(1) ねじ巻きラジオ(1) 3D(1) 政治(1) イボ人(1) 国際(1) クリエイティブ・コモンズ(1) amazon(1) キリスト教(1) レビ記(1) Synfig(1) 独占(1) アマナイ(1) 広告(1) KXStudio(1) EU(1) イケンガ(1) 国際公文書館会議(1) マイナビ(1) 募金(1) ユダヤ教(1) ウルガタ聖書(1) 科学技術(1) 出エジプト記(1) 観光案内(1) 絵文字(1) サンフランシスコ(1) パキスタン(1) リクルート(1) ハトホル(1) パン(1) 地方(1) Blender(1) 羊神(1) ギリシャ(1) 高速道路情報無線(1) ツイッター(1) Youtube(1) 中南米(1) モヘンジョ=ダロ(1) CC(1) 声明(1) 悪魔(1) ラジオ(1) アレクサンドロス大王(1) ローマ(1) ポッドキャスト(1) ゲーム(1) パシュパティ(1) 1Password(1) アピス(1) 宗教(1) テレビ(1) OpenToonz(1) 電子教材(1) 船乗りの柱(1) シリア(1) GPS(1) アフリカ(1) リグ・ヴェーダ(1) F-Droid(1) デザイン(1) ムネヴィス(1) ネオペイガニズム(1) コミュニティ放送(1) アンビソニック(1) 元ネタ(1) ケルヌンノス(1) ナイジェリア(1) 日記(1) 聖書(1) 任天堂 DS(1) 教育(1) bi-modal IT(1) 魔女宗(1) アクティブSETI(1) バイノーラル(1) Papagayo(1) 写真(1) 意味(1) コシディウス(1) インド(1) ユーコン(1) ヤーウェ(1) CD(1) タブレット(1) 学校(1) 日本(1) 羊(1) ベルゼブブ(1) デジタルサイネージ(1) VR(1) アップストリーム・パッケージング(1) 画像(1)
リファレンス

first-time visitors
user guide
謝辞

「みんなの翻訳」は情報通信研究機構言語翻訳グループ東京大学図書館情報学研究室による共同プロジェクトであり、三省堂国立情報学研究所連想情報学研究開発センターが開発に協力しています。三省堂には「グランドコンサイス英和辞典(36万項目収録)」の使用を許可していただきました。

連携研究グループはこちらをご覧ください。

「みんなの翻訳」を使っている翻訳グループについてはこちらをご覧ください。

バナー

logo

ポスター

poster

フライヤー

poster poster
Mozilla Firefox ブラウザ無料ダウンロード
本サイトはブラウザ「Mozilla Firefox」推奨です。
Firefox3で動作確認しています。

Valid XHTML 1.0 Transitional


GitLab Documentation>GitLab Continuous Integration (GitLab CI)>API設定でパイプラインにトリガーを設ける

注:


 TriggersはAPIを呼び出して、特定のブランチ、タグ、コミットをリビルドさせる働きがあります。
 特定のブランチから生成されたものを、”素材”としてjobに挿入したいときなどに便利です。

 認証トークン

この機能では、以下の認証方法に対応しています。

 トリガー・トークン

 独自トリガー・トークンの取得方法については、『新しいトリガーを追加する』で説明します。

 CI job トークン

次のような場合だと、「CI_JOB_TOKEN変数(本来 GitLab Container Registryの認証に使われる)が、トークンの設定時に使用可能になります。

  使い道その1  複数のプロジェクトで共用するパイプラインを構築するとき

注:CI_JOB_TOKENを複数プロジェクトのパイプラインに適用する機能は、GitLab Enterprise Edition Premium 9.3導入されました。

 この機能は、「gitlab-ci.yml」で定義したときにのみ扱えるものです。実行可能なパイプラインについては、その状態がパイプライン記号(後述)で表示されます。

 例として:

============================================
build_docs:
 stage: deploy
 script:
 - curl --request POST --form "token=$CI_JOB_TOKEN" --form ref=master https://gitlab.example.com/api/v4/projects/9/trigger/pipeline
 only:
 - tags
============================================

 このようにして定義されたトリガーは、特殊変数「CI_PIPELINE_SOURCE=pipeline」として扱えるようになります。

 詳しくは、pipelines trigger APIをご覧ください。

 使い道その2 現在使用しているパイプラインが、他のパイプラインから生成された何らかのアーティファクトを必要とするものだったとき

注:CI_JOB_TOKENでアーティファクトをAPIにダウンロードして使用する機能は、GitLab Enterprise Edition Premium 9.5で導入されました。


 題名の通り、パイプラインの完成に他プロジェクトから「何か(アーティファクト)」を受け取らなくてはならない場合があります。当然、そのアーティファクトはパイプラインの実行前に完成されていて、あとはそこにアクセスするだけで得られる状態にあることが望ましいでしょう。
 これからその工程を自動化する設定をご紹介します。
 ここでの「CI_JOB_TOKEN」変数は、特定のjobを識別する目的で使われています。
 

============================================
build_submodule:
 stage: test
 script:
 - curl --header "JOB-TOKEN: $CI_JOB_TOKEN" "https://gitlab.example.com/api/v4/projects/1/jobs/artifacts/master/download?job=test"
 - unzip artifacts.zip
 only:
 - tags
============================================

 この設定は複数のプロジェクトのパイプラインを対象に使うことができます。
 これをひな型に、様々なプロジェクトのURLからアーティファクトをダウンロードしてください。(もちろん、指定できるURLは、皆さんの特権モデルに従ったアクセス範囲内に限られます。)

 詳しくはjobs APIをご覧ください。

 新しいトリガーを追加する

 皆さんのプロジェクトのTriggers配下にある「Settings > CI/CD」から、新しいトリガーを追加することができます。
 「Add trigger」ボタンを押すと、同時に新しいトークンが作成されます。トリガーとトークンは1対1の関係です。つまり、新しいトリガーを追加するごとに、それ専用のトークンが作成されることになります。

 プロジェクトのパイプラインとして、1つトリガーが使われる際に、それに対応したトークン1つが呼び戻されます。
 トークンは全てオリジナルですから、任意で決定するスクリプトの中にしのばせても、「.gitlab-ci.yml」でどのトークンを使うかを指定しても、ランナーによって識別されます。
 また、それぞれのトリガーが、最後にいつ使用されたかについても把握がしやすくなっています。
 (写真1)Triggersページの外観


 トリガーに所有権をつける

注:トリガーに所有権を設けて、使用の際に権限認証を求める機能は、GitLab 9.0にて導入されました。

 プロジェクトへのアクセスや許可を得たりと、作成されたトリガーは何かしらユーザーと似たように振る舞うことがあります。

 各トリガーの所有権は、「Take ownership」をクリックすることで得られます。所有権が確定したトリガーは、次回から権利を持つユーザー名義で動作します。

 トリガーを取り消す

 新しいトリガーを削除するには、プロジェクトのTriggers配下にある「Settings > CI/CD」から、「Revoke」ボタンを押してください。
 ただし、トリガーは一度消去してしまうと、修復できません。

 パイプラインにトリガーを取り付ける

注:

  • refsとして扱えるのは「branches」と「tags」のみです。refにSHAを使った場合は、トリガーがjobに適用されません。
  • プロジェクトがパブリックだった場合、平文テキストのトークンを通してjobを実行することは、現在では得策ではありません。秘密変数で対応してください。


 トリガーをjobに関連付けるためには、GitLab APIのエンドポイントに対して POST リクエストを送る必要があります。

======================
POST /projects/:id/trigger/pipeline
======================

 このパラメータで指定するものは、トリガーのトークンと、そしてトリガーをどこに作動させるかをGitのrefで表記します。refsに当てはまるものは「branches」と「tags」です。
 上の例だと、プロジェクトの次に表記されている「:id」が、クエリによってAPIに報告されるようになっている状態か、CI/CD設定ページで自己説明(self-explanatory examples)が登録されている状態だと、ランナーに検知してもらえるようになります。

 トリガーをきっかけにパイプラインがもう一度動き出すと、その情報がGitLabのUIのJobsページに表示され、「by API」という表記がされます。
 (写真2)jobsページでリビルドの表示がされていく様子

 それぞれのトリガーで今何が起こっているかは、jobページに全て集約されています。
 トリガーのトークンは以下の写真のように、UIに表示されます。
 (写真3)jobページに表示されたリビルド情報

 それから、これは裏技のようなものですが、「cURL」をパイプラインのトリガー取り付けに利用すると、設定の手間が最小限に抑えられます。

======================
curl --request POST \
  --form token=TOKEN \
  --form ref=master \
  https://gitlab.example.com/api/v4/projects/9/trigger/pipeline
======================
 (¥はバックスラッシュの誤変換)

この場合、プロジェクトはID 9番のトリガーによって、masterブランチにリビルドされます。

 他の方法としては、クエリ・ストリングにtokenrefの指定を送るやり方があります。

======================
curl --request POST \
  "https://gitlab.example.com/api/v4/projects/9/trigger/pipeline?token=TOKEN&ref=master"
======================

 「.gitlab-ci.yml」からトリガーを使用する方法もあります。
 たとえば、AとBの2つのプロジェクトあったとしましょう。どちらのプロジェクトも、何らかのトリガーでリビルドを開始することについては一致しています。そして、Aプロジェクトではタグへのプッシュを条件として、Bプロジェクトではmasterブランチへのプッシュを条件としてビルドするとします。

 まずはAプロジェクトに関する「.gitlab-ci.yml」ファイル設定を見てみましょう。

============================================
build_docs:
 stage: deploy
 script:
 - "curl --request POST --form token=TOKEN --form ref=master https://gitlab.example.com/api/v4/projects/9/trigger/pipeline"
 only:
 - tags
============================================

 この設定で、タグ(=プロジェクトA)へのプッシュが新しく起こった場合、ランナーは「build_docs」jobを実行するでしょう。さらにこのjobはプロジェクトB(マスターブランチ)へのリビルドのトリガーになります。
 「stage: deploy」は「stage: test」が問題なく終了したときにのみ発動させることを意味していますので、このjobの実行はやや慎重なものになっています。

 webhookからパイプラインにトリガーを設ける

注:

  • GitLab 8.14にて導入。
  • ref」はwebhook bodyからの応答に対応するために、自身を一度、URLの一部として処理させます。「ref」をソースレポジトリから引き出したトリガーとして扱わせるためです。
  • ref」のURLエンコードは、可能な限りスラッシュで分割すべきです。


 他のプロジェクトのwebhookからjobにトリガーを設けることを要求された場合、プッシュ時に使われるwebhook URLを次のように設定して、関連するTagイベント(主に、プロジェクトID、ref、トークンの変更)をそれに合わせて構築してください。

======================
https://gitlab.example.com/api/v4/projects/9/ref/master/trigger/pipeline?token=TOKEN
======================

 トリガーで変数を使えるようにする

 トリガーはAPIを通じて変数を扱うことができます。個数に制限はなく、通常のパイプラインと同じように「.gitlab-ci.yml」ファイルで指定されたものをお使いいただけます。次のようなパラメータでご指定ください。

======================
variables[key]=value
======================

 ここで設定した内容は、UIからもご確認いただけます。
 (写真4)UIでのjob変数表示

 トリガー変数は様々な場面で有効にお使いいただけます。

  • jobの内容を確認しやすくなる。変数はUIに表示されるので、リビルドで何がトリガーとして扱われているかが、変数の内容を見ることでおおよそ察しが付くようになっています。
  • jobの処理に条件を付けやすくなる。変数がきちんと定義されなかったjobは実行されません。裏を返せば、特定の変数のみを設定することで、用意したいくつものjobのなかから、ほんの数個のjobのみを実行させることなどが可能です。


 次の「.gitlab-ci.yml」をご覧ください。
 ここでは3つのステージが用意されています。「test」と「build」の順に実行され、この2つが成功すると、最後の「package」ステージに移行するしかけです。
 つまり、前の2つのステージがうまくいかない限り「upload_package」は実行されないことになります。
 さらに、変数「UPLOAD_TO_S3」の定義がきちんとなされなければ(0であったら)、「make upload」スクリプトが実行されず、アップロードには至りません。

======================
stages:
 - test
 - build
 - package

run_tests:
 script:
 - make test
 
build_package:
 stage: build
 script:
 - make build

upload_package:
 stage: package
 script:
 - if [ -n "${UPLOAD_TO_S3}" ]; then make upload; fi
======================

 以上のように定義されたトリガーが次に利用(リビルド)される際には、「UPLOAD_TO_S3」変数が「upload_package」jobを実行するきっかけとして扱われます。

======================
curl --request POST \
 --form token=TOKEN \
 --form ref=master \
 --form "variables[UPLOAD_TO_S3]=true" \
 https://gitlab.example.com/api/v4/projects/9/trigger/pipeline
======================
 (¥はバックスラッシュの誤変換です)

 trigger nightly pipelinesをクローンして利用する

注:次の機能は、GitLab UIからパイプラインにスケジュールを設けることでも設定できます。

 cURLディレクトリ関連のスクリプトを整備することで、クローンと連携しながらjobにトリガーをつけることができます。

 毎晩「00:30」に、ID「」番プロジェクトのマスターブランチに、トリガーjobを仕掛ける設定は以下のとおりです。

======================
30 0 * * * curl --request POST --form token=TOKEN --form ref=master https://gitlab.example.com/api/v4/projects/9/trigger/pipeline
======================

 旧版トリガーについて

 GitLab 9.0未満に作成されたトリガーは、9.0以降とは異なる仕組みで動作しています。

 旧版トリガーは特定のプロジェクトのみにしかアクセスできません。これらのトリガーは、将来のGitLabアップデートで使用不能になる見込みです。
 旧版トリガーの使用、並びに所有権の確保は、今後あまりお勧めできないことをご確認の上で、十分に考慮してから決定してください。

Edit this page

原文:https://docs.gitlab.com/ee/ci/triggers/README.html
原文ページプロジェクト並びにドキュメントファイルは、MIT Licenseのもと公開されています。(URL:https://gitlab.com/gitlab-com/gitlab-docs/blob/master/LICENSE) この記事の文章は、訳者の判断によりCreative Commons BY (version 3.0) を適用するものとします。
新着文書(Hnoss)

GitLab Plugin system
GitLab Documentation > Administrator documentation >GitLab Plugin system GitLab 10.6より導入。  カスタムプラグインを使えば、GitLa...
UX Department
現在の位置: チームハンドブック 目次 >UX部門   UX ガイド  GitLabの見た目は、 UXガイド を基準に構成されている。このガイドが、わが...
Team Handbook
現在の位置:チームハンドブック 目次  このハンドブックは、GitLabという企業が、どのようにサービスを維持運営していくかを記したものだ。ここに...
Engineering
現在の位置: チームハンドブック 目次 >エンジニアリング   連絡方法 Public Issue Tracker (GitLab CEの場合) ; 不特定多数に公開して...

新着文書

Bristol’s Last Bookshop shares key facts on the remains of publishing
ブリストルの ラスト・ブックショップ (「最後の書店」)はたぶん、真の本好きのための残本店と言っていいだろう。それは、いくつかの出版社の名作...
Bristol’s Last Bookshop shares key facts on the remains of publishing
ビリストルのラスト・ブックスショップ(Last Bookshop)という本屋は熱烈な本愛好家のためのリマインダーストアーであると思う。リマインダーストア...
Second social leader opposed to dam construction murdered in one week
一人の社会指導者は昨日プエルトリコ・バルディビアで虐殺された。これはアンティオキアで一週間以内に連続して起きた二回目の類似の殺人である。5月8...

新着Wikipedia翻訳

Flutter (software)
Flutter -------- 原作者:Google 開発者:Googleとコミュニティ 最初の公開:アルファ(v0.0.6)/2017年5月;1年前(2017-05)[1] 試験版の公...
E (programming language)
E(プログラミング言語) AmigaE や e(検証言語) 、 GNU E と混同しないこと。 E -------- パラダイム マルチパラダイム:オブジ...
Van Eck phreaking
Van Eck phreaking(ファン・エック・フリーク) Van Eck phreakingは盗聴の一形態であり、その中では特殊な装置が使用され、電子機器を探るため、隠...

更新履歴

※文書量によっては処理に数十秒かかる場合があります
バージョン 比較対象 更新日時 更新者
1(最新) 2018-03-23 21:45:32 Hnoss
2 2018-01-22 14:29:42 Hnoss
3 2018-01-22 14:28:48 Hnoss
4 2018-01-22 14:28:33 Hnoss
5 2018-01-22 14:28:28 Hnoss
6 2018-01-22 14:28:22 Hnoss
7 2018-01-22 00:57:08 Hnoss
8 2018-01-22 00:45:03 Hnoss
9 2018-01-22 00:44:51 Hnoss
10 2018-01-22 00:43:45 Hnoss

    
ブックマーク登録

タグを「;(半角セミコロン)」区切りで入力して下さい(例)tag1;tag2;tag3
10タグまで登録可能。各タグ30文字まで

履歴
状態 作業中 作業予定あり 作業予定なし 作業完了
テーマ 社会 政治 法律 経済 文化 芸能 科学技術 IT 健康/医療 スポーツ メディア 植物 動物 菌類 地方 国際
地域 日本 東アジア アフリカ 南アジア 東南アジア 西アジア/中東 太平洋 北米 中南米 欧州
ジャンル ニュース 解説記事 論文 日記 百科事典

コメントを入力して下さい
0 / 250
    
ブックマーク登録

ブックマークに登録しました。


言語選択

    
ファイルプロパティ

使用許諾条件
ファイル情報
あなただけがこのファイルを閲覧・編集できます。
みんながこのファイルを閲覧できますが、
編集ができるのはあなただけです。
あなたに加えて、指定された人やグループが
このファイルを自由に閲覧・編集できます。
公開設定
編集設定
グループ:0組 翻訳者:0人
    
アクセス属性
この文書は「非公開」設定になっています。
一般公開する場合は、編集ページの書誌情報で「公開」設定に変更して下さい。
翻訳者選択

※メニュー「翻訳者管理」で翻訳者、グループを追加することができます。


    
ノート

非公開ノート
0 / 2000 ※「公開・編集」権限を持つ翻訳者のみに公開されます。
公開ノート
0 / 2000 ※文書を「公開」にした場合、一般に公開されます。

言語選択

 →