前の記事
最近、GitLab CI/CDを使用する際に“スムーズではない”使用シナリオが見つかりました。具体的には:
開発者として、複数のフロントエンドプロジェクトを同時にデプロイする必要がある場合があります。
バグ修正後、テスト環境にデプロイする必要があります。
プロジェクトbのバグ修正後、テスト環境にデプロイする必要があります。
。。。。
さまざまな理由により、このシナリオのデプロイは自動的ではなく、担当者が手動でデプロイメントパイプラインを作成する必要があります。たとえば、テスターに信頼性の高い安定したテスト環境を提供するために、手動デプロイメント環境が使用されます。
これは、まずプロジェクトAに入り、パイプラインをクリックしてブランチを選択し、パイプラインを作成する必要がある問題につながります。
次にBに進み、これを繰り返します。
GitLabは個々のOwerプロジェクトのパイプライン管理を提供していないため、プロセスは面倒です。
これは、国内のDevOpsツールと同様です。
個人的な観点からのパイプライン管理がないため、プロジェクトのパイプラインを作成する必要があります。(近い将来、このような機能があるかもしれません。
この問題の解決策は、GitLab Open APIを使用してパイプラインを管理し、プロジェクトごとにパイプラインをクエリしたり、パイプラインを新規作成したり、再実行したりするという簡単な方法です。しかし、いくつかのページを書くには、バックエンドがGitLabのデータをクエリするコードを送信する必要があります。
具体的なアイデアは非常に簡単ですが、残念ながら私の空き時間はあまりないので、ある日私は気まぐれに、Node-REDこの低コードツールを使用して、このグローバルパイプライン管理機能を実現できるかどうかを考えました。
Node-REDは、IBMのオープンソースIoTプロジェクトです。これは、Nodejs上に構築された低コードのイベント駆動型アプリケーションです。
豊富なノードでできることはたくさんあります。
HTTPノードを使用して、HTTPリクエストの送信、プロジェクト情報の照会、パイプラインのリスト、またはプロジェクトのパイプラインのトリガーを行うことができます。
ダッシュボードノードを使用して、ページパネル機能を提供できます。
開発プロセス全体を通じて、必要なパラメータを設定し、JSコードのごく一部を記述するだけで済み、その他のデータパイプラインはNode-REDに処理されます。
Node-REDとGitLab Open APIを使用してDevOpsパイプライン管理を実現しましょう。
ターゲットは
予備分析によると、この機能は主に以下の4つのコア機能を含む。
- 個人所有者アイテムリストの照会
- プロジェクトからプロジェクト下の分岐リストを照会する
- プロジェクトパイプラインの検索と表示
- 新しいパイプラインの建設
- パイプラインの再起動
開始前の準備
Node-REDのインストール
Node-REDのインストールは簡単です。
docker run -it -p 1880:1880 --name mynodered nodered/node-redブラウザのアクセス http://127.0.0.1:1880/ 体験できます。ここではあまり紹介しませんが、興味のある方はNode-REDコラムに移動してください。
Node-REDエディタのアクションページ
他のインストール方法でアドレスを確認できます。 https://nodered.org/docs/getting-started/
トークンの作成
個人的な視点でリソースをクエリしたいので、Personal Access Tokenを作成します。
下の写真は
あなたと彼が一緒にいることを忘れないでください。
使用するAPI。
個人プロジェクトを照会するAPI(携帯が必要)?owned=true。現在のユーザー所有者のアイテムのみをクエリすることを示します。
GET /projectsプロジェクトパイプラインのクエリAPI
GET /projects/:id/pipelines新規パイプライン(プロジェクトIDに加えて、パラメータrefブランチまたはtagを渡す必要があります)
POST /projects/:id/pipelineパイプラインの再起動
POST /projects/:id/pipelines/:pipeline_id/retry実践の実践
インターフェイスのベースアドレスとトークンをストリーム変数として保存し、ストリーム全体からアクセスできます。
ストリームが実行された後、最初にアイテムのリストを要求します。 dropdown新しいページに表示されます。
ユーザーがプロジェクトを選択すると、プロジェクト分岐リストを要求し、別のプロジェクトに渡す dropdownページに表示されます。
ユーザーがブランチを選択したら、そのブランチの下のパイプラインをリクエストして使用します。tableノードがページに表示されます。
ユーザーがパイプラインテーブルの行をクリックすると、そのパイプラインが再実行されます。成功後に通知されます。
最後のクリック。create pipeline ボタンを押すと、現在選択されているプロジェクトとブランチを使用して新しいパイプラインが作成され、成功すると通知されます。
最終的なフローロジック図はこんな感じです
プロセスOperationの完全な動的図
Node-REDは、ストリームデータをJSONデータとしてエクスポートして保存することをサポートしており、プロセスが作成されたら、共有、配布、JSONデータのエクスポート、ドメイン名、トークンの設定が非常に簡単になります。ストリームファイルが必要なChapter 3は、記事にメッセージを残してください。
概要まとめ
創造は仕事を容易にする。役に立つことを願う。
Leave a Reply