diff --git a/src/git-command-manager.ts b/src/git-command-manager.ts index e684dba..cf6549e 100644 --- a/src/git-command-manager.ts +++ b/src/git-command-manager.ts @@ -39,6 +39,7 @@ export interface IGitCommandManager { getWorkingDirectory(): string init(): Promise<void> isDetached(): Promise<boolean> + lfsCheckout(): Promise<void> lfsFetch(ref: string): Promise<void> lfsInstall(): Promise<void> log1(format?: string): Promise<string> @@ -319,6 +320,10 @@ class GitCommandManager { return !output.stdout.trim().startsWith('refs/heads/') } + async lfsCheckout(): Promise<void> { + await this.execGit(['lfs', 'checkout']) + } + async lfsFetch(ref: string): Promise<void> { const args = ['lfs', 'fetch', 'origin', ref] diff --git a/src/git-source-provider.ts b/src/git-source-provider.ts index 8f9d63f..5086fd4 100644 --- a/src/git-source-provider.ts +++ b/src/git-source-provider.ts @@ -211,6 +211,11 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> { await git.checkout(checkoutInfo.ref, checkoutInfo.startPoint) core.endGroup() + // LFS checkout + core.startGroup('Checking out LFS objects') + await git.lfsCheckout() + core.endGroup() + // Submodules if (settings.submodules) { // Temporarily override global config