Skip to content

smudge filter lfs failed

Summary

gitlab-runner arch=amd64 os=windows pid=38676 revision=1564076b version=12.4.0 does have the problem that it is not able to pull a project with LFS content and it is also not able to skip it.

Please help me somehow. I will go insane with that. I searched the whole web for solutions. I already know that the GIT_LFS_SKIP_SMUDGE consideration was fixed in earlier versions but somehow it does not work. It does not matter if I use GIT_LFS_SKIP_SMUDGE: "1" or GIT_LFS_SKIP_SMUDGE: 1 . It will have the same behaviour.

I also set following in the globals of the running machine sadly without effect

git config filter.lfs.process = "git-lfs filter-process --skip git config filter.lfs.smudge = "git-lfs smudge --skip %f

I upgraded today to 12.4 the problem also exists in 12.3

Steps to reproduce

Load up an LFS file to a project and try a pipeline on it.

.gitlab-ci.yml
variables:
    GIT_LFS_SKIP_SMUDGE: "1"
    GIT_SUBMODULE_STRATEGY: recursive

stages:
    - Pull
    - Test
    - Build
    - Deploy
GIT-Pull:
    before_script:
        - Write-Host 'Start Pulling LFS files...'
    script:
        - git-lfs install
        - git-lfs pull
    stage: Pull
    tags:
        - Unity
Unit-Test:
    before_script:
        - Write-Host 'Start Unit-Tests...'
        - $PROJECTLOCATION = Get-Location
        - $PROJECTVERISONFILEPATH = Get-ChildItem -Path (Get-Location) -Filter ProjectVersion.txt -Recurse -ErrorAction SilentlyContinue -Force | %{$_.FullName}
        - $PROJECTVERISONFILECONTENT = Get-Content -Path $PROJECTVERISONFILEPATH
        - $UNITY_PROJECT_VERSION = $PROJECTVERISONFILECONTENT.split(":")[1] -replace " ", ""
        - Write-Host $UNITY_PROJECT_VERSION
    script:
        - Invoke-Expression '&C:\"Program Files"\Unity\Hub\Editor\$UNITY_PROJECT_VERSION\Editor\Unity.exe -batchmode -branch $CI_COMMIT_REF_NAME -projectPath $PROJECTLOCATION -runEditorTests -logFile $PROJECTLOCATION\UnityConsoleLog.txt -editorTestsResultFile ./unit-Tests.xml -ErrorAction Stop | Out-Null' -ErrorAction Stop
        - Write-Host $LASTEXITCODE
        - if($LASTEXITCODE -ne 0) { $Host.SetShouldExit($LASTEXITCODE)}
    after_script:
        - $FullPathNameUnitTestXML = Get-ChildItem -Path (Get-Location) -Filter unit-Tests.xml -Recurse -ErrorAction SilentlyContinue -Force | %{$_.FullName}
        - $FullPathNameUnitTestHTMLViewer = Get-ChildItem -Path (Get-Location) -Filter UnityUnitTestViewer.html -Recurse -ErrorAction SilentlyContinue -Force | %{$_.FullName}
        - Copy-Item $FullPathNameUnitTestHTMLViewer -Destination "./TestResults.html"
        - $XMLTestContent = Get-Content -Path $FullPathNameUnitTestXML
        - $XMLTestContent = ($XMLTestContent -split "(\r*\n){2,}") -replace '\r*\n', ''
        - (Get-Content ./TestResults.html).replace('###UNITY_UNITTEST_XML_TO_REPLACE###', $XMLTestContent) | Set-Content ./TestResults.html
    stage: Test
    artifacts:
      name: "Unit-Test Results"
      when: always
      paths:
        - ./TestResults.html
        - ./unityConsoleLog.txt
    tags:
        - Unity
Unity-Build: 
    before_script:
        - Write-Host 'Building...'
        - $PROJECTLOCATION = Get-Location
        - $PROJECTVERISONFILEPATH = Get-ChildItem -Path (Get-Location) -Filter ProjectVersion.txt -Recurse -ErrorAction SilentlyContinue -Force | %{$_.FullName}
        - $PROJECTVERISONFILECONTENT = Get-Content -Path $PROJECTVERISONFILEPATH
        - $UNITY_PROJECT_VERSION = $PROJECTVERISONFILECONTENT.split(":")[1] -replace " ", ""
        - Write-Host $UNITY_PROJECT_VERSION
    script:
        - Invoke-Expression '&C:\"Program Files"\Unity\Hub\Editor\$UNITY_PROJECT_VERSION\Editor\Unity.exe -batchmode -branch $CI_COMMIT_REF_NAME -projectPath $PROJECTLOCATION -nographics -logFile $PROJECTLOCATION\UnityConsoleLog.txt -executeMethod CICD_UnityGitlab.CIBuilder.Build -ErrorAction Stop | Out-Null' -ErrorAction Stop
        - Write-Host $LASTEXITCODE
        - if($LASTEXITCODE -ne 0) { $Host.SetShouldExit($LASTEXITCODE)}
    artifacts:
      name: "Build"
      paths:
        - ./Releases
        - ./unityConsoleLog.txt
    stage: Build
    tags: 
        - Unity
Deployment: 
    before_script: 
        - Write-Host 'Deploying...'
        - $PROJECTLOCATION = Get-Location
        - $PROJECTVERISONFILEPATH = Get-ChildItem -Path (Get-Location) -Filter ProjectVersion.txt -Recurse -ErrorAction SilentlyContinue -Force | %{$_.FullName}
        - $PROJECTVERISONFILECONTENT = Get-Content -Path $PROJECTVERISONFILEPATH
        - $UNITY_PROJECT_VERSION = $PROJECTVERISONFILECONTENT.split(":")[1] -replace " ", ""
        - Write-Host $UNITY_PROJECT_VERSION
    script:
        - Invoke-Expression '&C:\"Program Files"\Unity\Hub\Editor\$UNITY_PROJECT_VERSION\Editor\Unity.exe -batchmode -branch $CI_COMMIT_REF_NAME -projectPath $PROJECTLOCATION -nographics -executeMethod -logFile $PROJECTLOCATION\UnityConsoleLog.txt CICD_UnityGitlab.CDDeployer.Deploy -ErrorAction Stop | Out-Null' -ErrorAction Stop
        - Write-Host $LASTEXITCODE
        - if($LASTEXITCODE -ne 0) { $Host.SetShouldExit($LASTEXITCODE)}
    artifacts:
      name: "DeploymentLog"
      paths:
        - ./unityConsoleLog.txt
    stage: Deploy
    tags: 
        - Unity

Actual behavior

Pipeline fails on LFS-Files

Expected behavior

There shouldn't be any issues with LFS-Files But there are issues and GIT_LFS_SKIP_SMUDGE: "1" should be considered at least so that lfs handling can be overridden

Relevant logs and/or screenshots

job log
Running with gitlab-runner 12.4.0 (1564076b)
  on MWS2016034564(PIXYZ) 4c3837a7
Using Shell executor...
Running on MWS2016034564...
Fetching changes...
Initialized empty Git repository in E:/GitLab-Runner/builds/4c3837a7/0/cgi/Unity/ConfigurationSystem/.git/
Created fresh repository.
From https://mm-gitlab-cgi.meyle-mueller.de/cgi/Unity/ConfigurationSystem
 * [new branch]      develop               -> origin/develop
.
.
.
.
Checking out bbe35f97 as develop...
error: external filter 'git-lfs filter-process' failed
fatal: Assets/AddressableAssetsData/WebGL/addressables_content_state.bin: smudge filter lfs failed
ERROR: Job failed: exit status 1

Environment description

gitlab runner is used with shell execution No multi-runner

config.toml is empty

config.toml contents

Used GitLab Runner version

Version:      12.4.0
Git revision: 1564076b
Git branch:   12-4-stable
GO version:   go1.10.8
Built:        2019-10-21T14:37:13+0000
OS/Arch:      windows/amd64

-->

Root Cause

#4808 (comment 241406769)

Edited by Steve Xuereb