問題タブ [github-actions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
3006 参照

github - GitHub アクション ***NO_CI*** 代替

GitHub Actions Beta (YAML のもの) で実行されたワークフローから GitHub リポジトリにコードをプッシュしようとしています。これは、Git が GitHub で認証する方法を認識できるように、資格情報を含む URL にリモート URL をgit push設定した後に実行するだけで簡単に実行できます。origin

GitHub Actions は、すぐに使用できる PAT: を取得することもGITHUB_TOKENできます。これを使用すると、以前のワークフロー実行に関連付けられていることがわかっている PAT を使用してコミットがリポジトリにプッシュされたときに、別のアクションをスケジュールしないことをシステム全体が十分に認識できます。

これは素晴らしいことですが、カスタム PAT を使用するユースケースがあり (私の場合は GitHub ページをトリガーしてビルドしますが、すぐに使用できる PAT では実行できません)、カスタム PAT を使用すると、GitHub に認識させるという利点が失われます。現在のワークフローからコミットをプッシュした後、別のワークフローを実行しないでください。

その結果、カスタム PAT を使用すると、ワークフローの無限ループに陥ることになります。多くの CI ソリューションはコミット メッセージを尊重***NO_CI***し、この文字列がコミット メッセージに存在する場合、チェック/ビルドなどを実行しません。GitHub Actions Beta は気にしません。

私が思いついた唯一のことは、GitHub Action ワークフローのジョブ/ステップを条件付きにし、次のような条件を構築することです。

ただし、githubコンテキスト オブジェクトにはコミット メッセージを含むフィールドがなく、コンテキストは、Git を使用して SHA からコミット メッセージを取得するコマンドを実行し、その上で を実行できるほど表現力がないようですcontains

これを達成するためのオプションはありますか?

0 投票する
1 に答える
3046 参照

java - 他のプライベート リポジトリに依存する Maven でコンパイルするように github アクションを構成するにはどうすればよいですか?

Java Maven プロジェクトを含む 2 つのリポジトリがあります。

  • コア機能を備えたプロジェクト、その中の他のプロジェクトへの依存関係のみ、またはパブリック ライブラリへの依存関係を含むもの
  • 最初のリポジトリのいくつかのプロジェクトに依存するプロジェクトを含むもの

各リポジトリを maven on pull でコンパイルする Github アクションを設定しました。最初はこれで問題なく動作します。2 番目のリポジトリでは、2 番目のリポジトリをビルドするときに最初のリポジトリのプロジェクトが環境内の maven で使用できないため、これは機能しません。

この問題を解決するために2つのアイデアがありました

  • 最初のリポジトリを含めるために、2 番目のリポジトリにサブモジュールを作成します。
  • さらに、最初のリポジトリのビルドで最初のリポジトリをチェックアウトします

どちらのソリューションもおそらく機能しますが、最初のリポジトリを追加でビルドするためにすべてのビルド時間が必要になります。

これは Github アクションです (現在、両方のリポジトリで同じです):

再ビルドせずに、2 番目のリポジトリで最初のリポジトリのビルドを使用する方法はありますか?

これは固有の問題ではなく、ベスト プラクティスの解決策が必要だと思います。