1
mirror of https://github.com/actions/checkout.git synced 2026-06-13 10:47:13 +00:00
Commit Graph

8 Commits

  • Check git version before attempting to disable sparse-checkout (#1656)
    * Check git version before attempting to disable `sparse-checkout`
    * Bump `MinimumGitSparseCheckoutVersion` to 2.28 due to #1386
    * Initial prep for release 4.1.3
  • Explicitly disable sparse checkout unless asked for (#1598)
    When a worktree is reused by actions/checkout and the first time sparse checkout was enabled, we need to ensure that the second time it is only a sparse checkout if explicitly asked for. Otherwise, we need to disable the sparse checkout so that a full checkout is the outcome of this Action.
    
    ## Details
    * If no `sparse-checkout` parameter is specified, disable it
    
    This should allow users to reuse existing folders when running
    `actions/checkout` where a previous run asked for a sparse checkout but
    the current run does not ask for a sparse checkout.
    
    This fixes https://github.com/actions/checkout/issues/1475
    
    There are use cases in particular with non-ephemeral (self-hosted) runners where an
    existing worktree (that has been initialized as a sparse checkout) is
    reused in subsequent CI runs (where `actions/checkout` is run _without_
    any `sparse-checkout` parameter).
    
    In these scenarios, we need to make sure that the sparse checkout is
    disabled before checking out the files.
    
    ### Also includes:
    
    * npm run build
    * ci: verify that an existing sparse checkout can be made unsparse
    * Added a clarifying comment about test branches.
    * `test-proxy` now uses newly-minted `test-ubuntu-git` container image from ghcr.io
    
    ---------
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    Co-authored-by: John Wesley Walker III <81404201+jww3@users.noreply.github.com>
  • Add support for sparse checkouts (#1369)
    * Add support for sparse checkouts
    
    * sparse-checkout: optionally turn off cone mode
    
    While it _is_ true that cone mode is the default nowadays (mainly for
    performance reasons: code mode is much faster than non-cone mode), there
    _are_ legitimate use cases where non-cone mode is really useful.
    
    Let's add a flag to optionally disable cone mode.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    
    * Verify minimum Git version for sparse checkout
    
    The `git sparse-checkout` command is available only since Git version
    v2.25.0. The `actions/checkout` Action actually supports older Git
    versions than that; As of time of writing, the minimum version is
    v2.18.0.
    
    Instead of raising this minimum version even for users who do not
    require a sparse checkout, only check for this minimum version
    specifically when a sparse checkout was asked for.
    
    Suggested-by: Tingluo Huang <tingluohuang@github.com>
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    
    * Support sparse checkout/LFS better
    
    Instead of fetching all the LFS objects present in the current revision
    in a sparse checkout, whether they are needed inside the sparse cone or
    not, let's instead only pull the ones that are actually needed.
    
    To do that, let's avoid running that preemptive `git lfs fetch` call in
    case of a sparse checkout.
    
    An alternative that was considered during the development of this patch
    (and ultimately rejected) was to use `git lfs pull --include <path>...`,
    but it turned out to be too inflexible because it requires exact paths,
    not the patterns that are available via the sparse checkout definition,
    and that risks running into command-line length limitations.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    
    ---------
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    Co-authored-by: Daniel <daniel.fernandez@feverup.com>
  • Fix: Checkout fail in self-hosted runners when faulty submodule are checked-in (#1196)
    * Fix Self hosted runner issue wrt bad submodules - solution cleanup working space.
    
    * Fix format with npm run format output
    
    * Add mock implementation for new function submoduleStatus
    
    * Add 2  test cases for submodule status.
    
    * Codeql-Action Analyse revert v1 to v2
    
    ---------
    
    Co-authored-by: Bassem Dghaidi <568794+Link-@users.noreply.github.com>
    Co-authored-by: sminnie <minnie@sankhe.com>