クラウドネイティブ時代において、CLI ツールは開発者の日常業務に欠かせないものとなっています。ただし、開発された CLI ツールを誰でも使用できるように共有する場合、手動リリースのみに頼っていると、特にマルチアーキテクチャおよびマルチプラットフォームの互換性を扱う場合には、非効率的であるだけでなく、エラーが発生しやすくなります。 では、CLI ツールのリリースを自動化するにはどうすればよいでしょうか?この論文は、この問題を調査し、一連の実用的な解決策を提案することを目的としています。 以下の共有では、主に Golang を例として使用します。ここで説明する自動ビルドとリリースの原則は普遍的であり、すべてのプログラミング言語に適用されることに注意することが重要です。したがって、ツールの作成にどの言語を使用するかに関係なく、これらのプラクティスは重要な参考価値を持ちます。 ビルドスクリプトの作成自動ビルドの世界では、安定していてクロスプラットフォーム互換性のあるビルド スクリプトを作成することが重要です。 Golang は強力なクロスプラットフォーム ビルド機能を提供しており、 go build コマンドはこの目標を達成するための中核となります。例えば: このコマンド例は、プラットフォームおよびアーキテクチャ固有のバイナリを生成する際の Golang の柔軟性を強調しています。ビルド スクリプトでは、マルチプラットフォームのビルド要件をサポートするために、この柔軟性をさらに拡張する必要があります。
OUTPUT_DIR および BINARY_NAME 設定により、ユーザーは出力ディレクトリとバイナリ ファイル名をカスタマイズでき、スクリプトの汎用性が向上します。 BUILDPATH 変数はビルド パスを指定するために使用されます。これはスクリプトを実行するために必要なパラメータであり、ビルド プロセスの安定性を保証します。
gobuild.sh スクリプト次の gobuild.sh スクリプトは上記の原則を実装し、クロスプラットフォーム ビルドの複雑さを単純なコマンド ライン操作に変換します。 このスクリプトは、マルチプラットフォームおよびマルチアーキテクチャのニーズに適応するだけでなく、さまざまなビルドシナリオに適応するのに十分な柔軟性と構成可能性も提供します。 Makefileと連携して完全自動構築を実現さらに、Makefile を組み合わせることでビルド プロセスを自動化し、効率を向上させることができます。 この Makefile を使用すると、fooctl と barctl CLI ツールの両方を同時にビルドすることが非常に簡単になります。単純なコマンド「 make build-binaries 」でビルド プロセス全体をトリガーできるため、手動による介入が大幅に削減され、ビルド プロセスの一貫性と信頼性が確保されます。 まとめ上記の詳細なビルド スクリプトと Makefile 構成を通じて、現代のソフトウェア開発における自動ビルドの威力と必要性がわかります。このアプローチはビルド効率を向上させるだけでなく、ソフトウェアの品質と安定性も向上させます。クラウドネイティブ時代において、自動ビルドは開発チームの効率性と製品の信頼性を向上させるための重要な戦略となっています。 GitLab CI/CD の CLI ツールをリリースビルド スクリプトが準備できたら、それを CI システムに統合できます。以下では、GitLab CI/CD を例に説明します。 GitLab CI/CD の中核となるのは、コードがコミットされたときに自動的に実行される、明確に定義された一連のジョブです。完全な継続的インテグレーションの場合、これらのジョブには通常、ビルド、テスト、コードレビュー (lint) などのステップが含まれます。しかし、この記事では、自動公開プロセスに焦点を当てます。 自動公開をトリガーする条件自動リリース プロセスは Git タグに基づいて作成されます。開発者がリポジトリに新しいタグをプッシュすると、GitLab CI/CD はこのイベントをキャプチャし、事前定義されたリリース プロセスを開始します。 この条件により、後続のビルド、アップロード、リリース ジョブは新しいタグが作成された場合にのみ開始されます。 リリースジョブステップ 1: バイナリをビルドします。ビルドバイナリフェーズでは、CI はさまざまなプラットフォームとアーキテクチャ用の CLI ツールバイナリをビルドして、ビルドプロセスの一貫性と再現性を確保します。 ステップ 2: ビルド製品をアップロードします。ビルドが完了したら、アップロード ステージでバイナリ ファイルを GitLab のパッケージ マネージャーまたはその他のストレージの場所にアップロードします。これにより、後続のリリースに必要なリソースが提供されます。 ステップ 3: GitLab に公開します。最後に、リリース ステージでは、CI は release-cli ツールを使用してリリースを自動的に作成し、ビルドされたバイナリをリリースされたアセットとして使用します。 .gitlab-ci.yml からリリースを作成する次の .gitlab-ci.yml スクリプトは、上記のリリース プロセスを実装します。 上記の例では、CLI ツールのバイナリをビルドし、Gitlab リリース ページにアップロードします。ユーザーは、Gitlab リリース ページから、自分のプラットフォームに適したバイナリ パッケージを見つけてダウンロードできます。 写真 GitLab CI プロセスの詳細については、プロジェクトを参照してください: https://gitlab.com/lqshow/clireleaseautomator まとめこのプロセスにより、CLI ツールのリリース プロセスが大幅に簡素化され、開発者は後続のビルドおよびリリース手順ではなくコード開発に集中できるようになります。これらの手順を自動化すると、すべてのリリースが高速で、一貫性があり、エラーがなくなり、ソフトウェアの全体的な品質と信頼性が向上します。 リリースCLIツールはGoReleaserを使用する上記のプロセスが比較的面倒であり、スクリプトの準備プロセスも複雑であることに気付くのは難しくありません。ここで、このプロセスを楽にするツール、GoReleaser[1]を紹介します。 これは、特に Golang で書かれたプロジェクトにとって変革的なツールです。従来の手動構成やスクリプト作成と比較して、GoReleaser はより効率的で簡潔な自動リリース方法を提供します。 GoReleaserの利点GoReleaser の設計哲学は、「一度設定すればどこでも実行できる」というものです。単一の構成ファイルを通じてリリース プロセス全体を制御します。この構成ファイルは、バイナリの構築方法、パッケージ化方法、バージョン情報の処理方法、さまざまなプラットフォームへの公開方法を定義します。具体的には、GoReleaser の利点は次のとおりです。
GoReleaserの設定と使用GoReleaser を使用するための最初のステップは、プロジェクトのルート ディレクトリに .goreleaser.yml 構成ファイルを作成することです。 goreleaser init コマンドを使用すると、初期構成をすばやく生成できます。このファイルには、構築、パッケージ化、公開のプロセス全体が網羅されています。 .goreleaser.yml を設定した後、 goreleaser はデフォルトでコンパイルされたファイルを dist ディレクトリに出力するので、 .gitignore を調整して dist を追加する必要があります。 例を見てみましょう: このシンプルで明確な構成ファイルには、実際に先ほど紹介した 2 つのモジュールが含まれています。これにより、シェル スクリプトと Makefile ファイルを記述する必要がなくなり、プロセス全体がより柔軟かつ効率的になります。 GitLab CI での GoReleaser の統合.gitlab-ci.yml ファイルでは、単純なリリース ジョブを定義するだけで済みます。ちなみに、CI/CD で GTILAB_TOKEN 変数を設定することを忘れないでください。 実行ログを確認すると、GoReleaser が自動的に実行された後、ビルド、アップロード、公開のプロセス全体が含まれていることがわかります。
|
>>: マイクロデータセンターはどのようにしてエッジコンピューティングを実現するのでしょうか?
Contabo は本日、東京に新しいデータセンターを開設しました。ウェブマスターはすぐに最低構成の日...
タイのサーバー会社である Datatan は、2004 年に設立され、2009 年に正式に登録された...
天国にも地獄にもスープの入った鍋があり、誰もが自分の腕よりも長いスープスプーンを持っています。しかし...
ウェブサイトを構築する上で最も簡単な部分と最も難しい部分は、コンテンツと外部リンクです。ほとんどの人...
[51CTO.comからのオリジナル記事] KeTian Cloudは2014年に設立され、Cisc...
ほとんどの人は acrosvm を知らないと思います。acrosvm は 2009 年の終わりに設立...
この記事では、イスラエルの VPS の推奨事項に焦点を当てて、いくつかのイスラエルの VPS 販売業...
最近、Amazon Web Services は、Amazon Lookout for Metric...
この記事はWeChatの公開アカウント「Cloud Native Treasure Box」から転載...
[[378668]]最近、友人がバックグラウンドでメッセージを残し、負荷分散に関する記事を書くように...
インターネット上には、さまざまな理由でグレーゾーンのビジネスをしている人々が常に存在します(たとえば...
月給5,000~50,000のこれらのプロジェクトはあなたの将来です最近では、自分でビジネスを始める...
私は2011年2月14日のバレンタインデーに共同購入サイトWoWotuanに参加し、その後24qua...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています最近、面白...
百度がネガティブなニュースに登場するたびに、多くの人がグーグルを懐かしみ、グーグルが来てくれたら最高...