1
0
Fork 0
mirror of https://github.com/actions/checkout.git synced 2025-03-28 11:00:05 +01:00

Add fetch.parallel option

This commit is contained in:
Gonzalo Peci 2023-12-14 15:22:00 +01:00
parent edc3278d02
commit 9efed57e86
7 changed files with 36 additions and 2 deletions

View file

@ -94,6 +94,12 @@ Please refer to the [release page](https://github.com/actions/checkout/releases/
# Default: false
fetch-tags: ''
# Specifies the maximal number of fetch operations to be run in parallel at a time
# (submodules, or remotes when the --multiple option of git-fetch is in effect). A
# value of 0 will give some reasonable default. If unset, it defaults to 1.
# Default: 1
fetch-parallel: ''
# Whether to show progress status output when fetching.
# Default: true
show-progress: ''
@ -115,7 +121,7 @@ Please refer to the [release page](https://github.com/actions/checkout/releases/
# integer allows up to that number of submodules fetched in parallel. A value of 0
# will give some reasonable default. If unset, it defaults to 1.
# Default: 1
submodulesFetchJobs: ''
submodules-fetch-jobs: ''
# Add repository path as safe.directory for Git global config by running `git
# config --global --add safe.directory <path>`

View file

@ -807,6 +807,7 @@ async function setup(testName: string): Promise<void> {
sparseCheckoutConeMode: true,
fetchDepth: 1,
fetchTags: false,
fetchParallel: '1',
showProgress: true,
lfs: false,
submodules: false,

View file

@ -73,6 +73,11 @@ inputs:
fetch-tags:
description: 'Whether to fetch tags, even if fetch-depth > 0.'
default: false
fetch-parallel:
description: >
Specifies the maximal number of fetch operations to be run in parallel at a time (submodules, or remotes when the --multiple option of git-fetch is in effect).
A value of 0 will give some reasonable default. If unset, it defaults to 1.
default: 1
show-progress:
description: 'Whether to show progress status output when fetching.'
default: true
@ -88,7 +93,7 @@ inputs:
When the `ssh-key` input is not provided, SSH URLs beginning with `git@github.com:` are
converted to HTTPS.
default: false
submodulesFetchJobs:
submodules-fetch-jobs:
description: >
Specifies how many submodules are fetched/cloned at the same time. A positive integer allows up to that number of submodules fetched in parallel. A value of 0 will give some reasonable default. If unset, it defaults to 1.
default: 1

7
dist/index.js vendored
View file

@ -1243,6 +1243,7 @@ function getSource(settings) {
}
// Fetch
core.startGroup('Fetching the repository');
yield git.config('fetch.parallel', settings.fetchParallel.toString());
const fetchOptions = {};
if (settings.filter) {
fetchOptions.filter = settings.filter;
@ -1753,6 +1754,12 @@ function getInputs() {
result.fetchTags =
(core.getInput('fetch-tags') || 'false').toUpperCase() === 'TRUE';
core.debug(`fetch tags = ${result.fetchTags}`);
// Fetch tags
result.fetchParallel = Math.floor(Number(core.getInput('fetch-parallel') || '1'));
if (isNaN(result.fetchParallel) || result.fetchParallel < 0) {
result.fetchParallel = 0;
}
core.debug(`fetch parallel = ${result.fetchTags}`);
// Show fetch progress
result.showProgress =
(core.getInput('show-progress') || 'true').toUpperCase() === 'TRUE';

View file

@ -153,6 +153,7 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
// Fetch
core.startGroup('Fetching the repository')
await git.config('fetch.parallel', settings.fetchParallel.toString())
const fetchOptions: {
filter?: string
fetchDepth?: number

View file

@ -54,6 +54,11 @@ export interface IGitSourceSettings {
*/
fetchTags: boolean
/**
* Indicates the maximal number of fetch operations to be run in parallel at a time
*/
fetchParallel: number
/**
* Indicates whether to use the --progress option when fetching
*/

View file

@ -113,6 +113,15 @@ export async function getInputs(): Promise<IGitSourceSettings> {
(core.getInput('fetch-tags') || 'false').toUpperCase() === 'TRUE'
core.debug(`fetch tags = ${result.fetchTags}`)
// Fetch tags
result.fetchParallel = Math.floor(
Number(core.getInput('fetch-parallel') || '1')
)
if (isNaN(result.fetchParallel) || result.fetchParallel < 0) {
result.fetchParallel = 0
}
core.debug(`fetch parallel = ${result.fetchTags}`)
// Show fetch progress
result.showProgress =
(core.getInput('show-progress') || 'true').toUpperCase() === 'TRUE'