4D で GitHub Actions を活用する方法

プロジェクトが ソースコントロールシステム上にあるということは、ソフトウェアの複数バージョンの管理、変更の監視、修正や新機能の統合が、ずっとシンプルになったということです。

せっかくなので、継続的インテグレーションも活用してみてはいかがでしょうか?

4D v19 から、コマンドでプロジェクトのコンパイルを開始できるようになりました。その結果、統合プロセスを自動化するために必要なすべての要素が揃いました。

このブログ記事では、GitHubマネージャーと GitHub Actions を使った自動化の例を紹介します。

GitHub actionsとは?

GitHub Actions は、タスクの自動化を可能にします。コードの送信などのイベントがトリガーとなります。

なぜ GitHub actionsなのか?

今日のソフトウェア開発の世界では、ワークフローの自動化は必須の要件です。開発チームは、ソフトウェアのライフサイクルにおける継続的インテグレーションとデプロイメント (CI/CD) プロセスを自動化するために CI/CDサーバーを使用しています。

GitHub Actions は、Jenkins や TeamCity のような外部サーバーを使わずに、GitHub から直接コードをビルド、テスト、配布できるようにするものです。GitHub は Linux、Windows、macOS のオペレーティングシステム上で仮想マシンをホストしています。

GitHub Actions を使うには?

ワークフローを作成する必要があります。ワークフローは、リポジトリに追加する自動化された手順です。Actionsタブでは、ワークフローのカタログから選ぶか、独自のものを作成します。

ここでは、Github が提案する “simple workflow” を使用します。

リポジトリ内の “.github/workflows” フォルダーにスクリプトが作成されます。このスクリプトでは、以下のような項目を設定できます:

  • トリガーイベント:on push / pull / schedule
  • 仮想マシンのOS:runs-on

シンタックスの詳細や可能性については、GitHubのドキュメントを参照ください。

blank

次に、リポジトリ内の README.md ファイルを変更し、ワークフローのトリガーします。Actionsタブでは、変更が表示され、ワークフローがキューに入っています:

blank

スクリプトが実行されました!

これで、OS の情報と使用された仮想マシンにアクセスでき、要求した構成に対応しているかどうかが確認できます。

スクリプトのログはすべて表示されます:

blank

具体的な例題

GitHub Actions を作成・設定する方法を説明しましたが、次は Eric Marchand が作成したワークフローを紹介します。

Eric は、4D for iOSチームの開発者の一人です。彼は、自分用にいくつかの git アクションを開発し、それを GitLabサーバーのプライベートリポジトリ、そして GitHub の公開リポジトリで使用しています。

ここでは、プロジェクトをコンパイルして GitHub でリリースを公開する方法の例を示します。

まず、共有コードを持つ 4Dプロジェクトがあります。このプロジェクトは、起動時にパラメーターで渡された他のプロジェクトをコンパイルします (macOS ランナー上の bashスクリプトを使用)。このプロジェクトは、コンパイルエラーを GitHubのログ形式に変換します。このプロジェクトは、コンパイル、リリースの生成などの Actions を含む Githubリポジトリ に保存されます。これらのアクションは、その後、他のプロジェクトで使用することができます。

次に、プロジェクトを実行し、それによってコンパイルなどのアクションを呼び出すには、4Dアプリケーションを実行する必要があります。4Dアプリケーションはサーバーにダウンロードできます。GitHub のサーバーにインストールし、実行する必要があります。各プロジェクトのリポジトリの“Action Secret” パラメーターに、SERVER_URLキーを追加する必要があります。

最後に、その他のプロジェクトでは、プルリクエストをトリガーとするワークフローを作成し、上の自動化用リポジトリの “build” ワークフローを呼び出します。

ベースとなる複数のワークフローを持つリポジトリと、プロジェクトへの統合の サンプルをご覧ください。

4Dフォーラムでご意見をお聞かせください。

Vanessa Talbot
- プロダクトオーナー - Vanessa Talbotは、2014年6月に4Dプログラムチームに参加しました。プロダクトオーナーとして、彼女はユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換する役割を担っています。また彼女の役割は、実装された機能が顧客のニーズを満たしているかどうかを確認することでもあります。入社以来、4Dにおける主要機能の定義に関わってきました。プリエンプティブ/マルチスレッドの新機能の大部分と、非常に複雑なテーマである組み込みアプリケーションの新アーキテクチャに取り組んできました。VanessaはTelecom Saint-Etienneで学位を取得後、Criminal Research Institute でオーディオビジュアル部門の開発者としてキャリアをスタートさせました。また、メディアや医療の分野でも、技術サポートやプロダクションの分野で働いてきました。