{"id":20156480,"url":"https://github.com/f3d-app/lfs-data-cache-action","last_synced_at":"2026-03-07T10:31:38.112Z","repository":{"id":237404932,"uuid":"692743458","full_name":"f3d-app/lfs-data-cache-action","owner":"f3d-app","description":"A github action to cache and recover LFS data","archived":false,"fork":false,"pushed_at":"2025-02-15T12:32:05.000Z","size":18,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-03T02:11:41.153Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"CMake","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/f3d-app.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-17T13:01:04.000Z","updated_at":"2025-02-15T12:30:44.000Z","dependencies_parsed_at":"2024-05-01T10:06:09.837Z","dependency_job_id":"9107310e-63ff-4558-b75a-ee5d6957fc2e","html_url":"https://github.com/f3d-app/lfs-data-cache-action","commit_stats":null,"previous_names":["f3d-app/lfs-data-cache-action"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/f3d-app/lfs-data-cache-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f3d-app%2Flfs-data-cache-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f3d-app%2Flfs-data-cache-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f3d-app%2Flfs-data-cache-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f3d-app%2Flfs-data-cache-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/f3d-app","download_url":"https://codeload.github.com/f3d-app/lfs-data-cache-action/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f3d-app%2Flfs-data-cache-action/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30212047,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T09:02:10.694Z","status":"ssl_error","status_checked_at":"2026-03-07T09:02:08.429Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T23:38:55.470Z","updated_at":"2026-03-07T10:31:38.093Z","avatar_url":"https://github.com/f3d-app.png","language":"CMake","funding_links":[],"categories":["CMake"],"sub_categories":[],"readme":"# lfs-data-cache-action\n\nA producer/consumer github action to cache and recover LFS data.\n\nIts main use is to avoid cloning LFS data in CI to avoid\nhaving to pay for LFS bandwidth because of CI needs.\n\nIt expects cmake to be available on the host.\n\nThe action can be used as a consumer or a producer, and must\nprovide the repository containing the LFS data to recover from.\n\nIt is possible to provide a specific SHA to produce.\nIf not provided, the last commit modyfing the LFS file will be produced.\n\nIs has the following inputs:\n\n - `type`: should be `producer` or `consumer`, default to `producer`\n - `repository`: the git repository to produce LFS data from, default: ${{ github.repository }}\n - `lfs_sha`: The git sha to recover LFS data from, optional\n - `cache_postfix`: An postfix added to the cache name, to support multiple caches, default to `cache`\n - `target_directory`: A target directory to copy LFS data to\n\n## Logic\n\nProducer/Consumer first use the classic cache action to recover a cache named\n`lfs-data-${{lfs_sha}}-${{cache_index}}`.\n\nIf Producer does not found it, it will clone the `repository` at `lfs_sha` commit\nand upload the content as an artifact.\n\nIf Consumer does not found it, it will try to download a potential artifact\nproduced earlier by the Producer.\n\nIf it fails Consumer will clone the `repository` at `lfs_sha` commit.\n\nFinally, Producer/Consumer will copy the LFS data only using cmake to the `target_directory`\n\n## Usage\n\nIn an first job, use the `producer` action, which output the LFS sha that will be produced\nIn a second job, usually a matrix job, depending on the first,\nrecover the LFS sha from first job and use the `consumer` action.\n\n```\njobs:\n\n#----------------------------------------------------------------------------\n# Cache LFS: Checkout LFS data and update the cache to limit LFS bandwidth\n#----------------------------------------------------------------------------\n  cache_lfs:\n    runs-on: ubuntu-latest\n    name: Update LFS data cache\n    outputs:\n      lfs_sha: ${{ steps.lfs_sha_recover.outputs.lfs_sha }}\n    steps:\n\n    # Checkout your repository WITHOUT LFS\n    - name: Checkout\n      uses: actions/checkout@v3\n      with:\n        path: 'source'\n        fetch-depth: 1\n        lfs: false\n\n    # Use producer action to recover the LFS data and upload it as cache/artifacts\n    - name: Cache LFS Data\n      id: lfs_sha_recover\n      uses: f3d-app/lfs-data-cache-action@v1\n\n#----------------------------------------------------------------------------\n# Actual CI: Recover LFS data first\n#----------------------------------------------------------------------------\n\n  recover_lfs:\n    needs: cache_lfs\n\n    # Checkout your repository WITHOUT LFS\n    - name: Checkout\n      uses: actions/checkout@v3\n      with:\n        path: 'source'\n        fetch-depth: 0\n        lfs: false\n\n    - name: Recover LFS Data\n      uses: f3d-app/lfs-data-cache-action@v1\n      with:\n        workflow_label: 'consumer'\n        lfs_sha: ${{ needs.cache_lfs.outputs.lfs_sha}}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ff3d-app%2Flfs-data-cache-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ff3d-app%2Flfs-data-cache-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ff3d-app%2Flfs-data-cache-action/lists"}