[解決済み] GitHub のアクションでステップをキャッシュするには?
質問
2つのステップからなるGitHubのアクションのワークフローがあるとします。
- アプリケーションの依存関係をダウンロードし、コンパイルします。
- アプリケーションのコンパイルとテスト
私の依存関係はほとんど変化しないので、コンパイルされた依存関係は、次にそのバージョンを指定するロックファイルを変更するまで、安全にキャッシュすることができるのです。
最初のステップの結果を保存して、将来のワークフローでそのステップをスキップできるようにする方法はありますか?
解決方法は?
キャッシュがネイティブにサポートされるようになりました。 キャッシュアクション . リポジトリ内のジョブとワークフローの両方で動作します。こちらもご覧ください。 https://help.github.com/en/actions/automating-your-workflow-with-github-actions/caching-dependencies-to-speed-up-workflows .
を考えてみましょう。 次のような例です。 :
name: GitHub Actions Workflow with NPM cache
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Cache NPM dependencies
uses: actions/cache@v1
with:
path: ~/.npm
key: ${{ runner.OS }}-npm-cache-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-npm-cache-
- name: Install NPM dependencies
run: npm install
ここで
path
と
key
のパラメータは
cache
アクションは、キャッシュを識別するために使用されます。
オプションの
restore-keys
は、部分一致へのフォールバックの可能性のために使用されます (すなわち、もし
package-lock.json
が変更されると、以前のキャッシュが使用されます)。
キーに何らかの ID を付加する (
npm-cache
この例では
restore-keys
フォールバックが使用され、複数の異なるキャッシュが存在する場合 (例: JS パッケージ用とシステムパッケージ用) に使用します。そうでないと、あるキャッシュが他の無関係なキャッシュにフォールバックしてしまう可能性があります。同様に、OS プレフィックスはマトリックスビルドを使用する際に、異なるシステムのキャッシュが混同されないようにするために有用です。
また、再利用可能なキャッシュロジックを構築するために アクション/キャッシュ のようなものです。
<サブ 古い回答です。
<サブ 現在、ネイティブキャッシュはできません。 2019年11月中旬に実装予定 .
<サブ アーティファクトを使用することができます ( 1 , 2 で提案したように、ジョブ間(1つのワークフロー内)でディレクトリを移動させることができます。 GHコミュニティ掲示板 . ところが、これ。 は、ワークフローをまたいで機能しない .
関連
-
[解決済み】Jenkinsがgithubでステータスコード128を返しました。
-
[解決済み] ローカルの Git リポジトリが元々クローンされた URL を特定するにはどうすればよいですか。
-
[解決済み] GitHubでフォークされたリポジトリを更新または同期するにはどうすればよいですか?
-
[解決済み] GitHubのREADME.mdに画像を追加する方法とは?
-
[解決済み] マージされたGitブランチをすべて削除するにはどうすればよいですか?
-
[解決済み] コミットをプッシュするためにhttpsの認証情報をキャッシュする方法はありますか?
-
[解決済み] GitHub リポジトリにタグを作成する
-
[解決済み] GitHubからnpmパッケージを直接インストールする方法
-
[解決済み】Markdownファイル内のGitHub相対リンク
-
[解決済み】GitHubでリポジトリの説明を変更する方法とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Githubのためのマークダウンのコードブロックとネストされた箇条書き
-
git push がエラー fatal で失敗する: git リポジトリに表示されない リモートリポジトリから読み込めない
-
git push reports errorsUpdates were rejected because because the remote contains work that you do
-
[解決済み] githubのアクション分/月とは?
-
[解決済み] GitHubプロジェクトにおけるREADMEとREADME.mdの違いは何ですか?
-
[解決済み】GitHubでリポジトリの説明を変更する方法とは?
-
[解決済み】GitHubのページにGoogle AnalyticsのトラッキングIDを追加する方法
-
[解決済み】GitHubのissueでコメントを記録する方法とは?
-
[解決済み】github issueにファイルを添付するには?
-
[解決済み] GitHub で自分のリポジトリを誰がフォークしたかを知るにはどうしたらいいですか?