Gitlab runner clones a dirty version when using LFS

Hello. I have a project with binary large files stored using LFS, and was trying to deploy to PyPI using the gitlab-runner. The problem I was facing is that as soon as the repository is cloned by the runner, it is immediately dirty, indicating that the LFS-stored files have changes.
After some digging, I found out that git-lfs is not actually installed on the runner, and I assume that the files are downloaded in some other way, making git think that they have changed. Finally, my solution was to bypass this procedure using the GIT_LFS_SKIP_SMUDGE: "1" variable, downloading and installing git-lfs and using git lfs pull to get the large files. This way, the local version was still clean and I could use it to deploy.

Here is the relevant part of the .gitlab-ci.yml script:

pypi:
  stage: deploy
  image: python:3.5
  variables:
    GIT_LFS_SKIP_SMUDGE: "1"
  script:
    - pip install --upgrade pip setuptools wheel twine
    - curl -L https://github.com/github/git-lfs/releases/download/v1.4.1/git-lfs-linux-amd64-1.4.1.tar.gz | tar xz
    - pushd git-lfs-1.4.1
    - ./install.sh
    - popd
    - rm -rf git-lfs-1.4.1
    - git lfs pull
    - python setup.py sdist bdist_wheel
    - twine upload --username=$PYPI_USERNAME --password=$PYPI_PASSWORD --skip-existing dist/*
  only:
  - tags