Compare commits
1 Commits
v3
...
dependabot
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0d7a0cad2b |
@@ -1,9 +1,5 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
## v3.6.0
|
|
||||||
- [Fix: Mark test scripts with Bash'isms to be run via Bash](https://github.com/actions/checkout/pull/1377)
|
|
||||||
- [Add option to fetch tags even if fetch-depth > 0](https://github.com/actions/checkout/pull/579)
|
|
||||||
|
|
||||||
## v3.5.3
|
## v3.5.3
|
||||||
- [Fix: Checkout fail in self-hosted runners when faulty submodule are checked-in](https://github.com/actions/checkout/pull/1196)
|
- [Fix: Checkout fail in self-hosted runners when faulty submodule are checked-in](https://github.com/actions/checkout/pull/1196)
|
||||||
- [Fix typos found by codespell](https://github.com/actions/checkout/pull/1287)
|
- [Fix typos found by codespell](https://github.com/actions/checkout/pull/1287)
|
||||||
|
|||||||
@@ -87,10 +87,6 @@ When Git 2.18 or higher is not in your PATH, falls back to the REST API to downl
|
|||||||
# Default: 1
|
# Default: 1
|
||||||
fetch-depth: ''
|
fetch-depth: ''
|
||||||
|
|
||||||
# Whether to fetch tags, even if fetch-depth > 0.
|
|
||||||
# Default: false
|
|
||||||
fetch-tags: ''
|
|
||||||
|
|
||||||
# Whether to download Git-LFS files
|
# Whether to download Git-LFS files
|
||||||
# Default: false
|
# Default: false
|
||||||
lfs: ''
|
lfs: ''
|
||||||
|
|||||||
@@ -805,7 +805,6 @@ async function setup(testName: string): Promise<void> {
|
|||||||
sparseCheckout: [],
|
sparseCheckout: [],
|
||||||
sparseCheckoutConeMode: true,
|
sparseCheckoutConeMode: true,
|
||||||
fetchDepth: 1,
|
fetchDepth: 1,
|
||||||
fetchTags: false,
|
|
||||||
lfs: false,
|
lfs: false,
|
||||||
submodules: false,
|
submodules: false,
|
||||||
nestedSubmodules: false,
|
nestedSubmodules: false,
|
||||||
|
|||||||
@@ -88,179 +88,3 @@ describe('git-auth-helper tests', () => {
|
|||||||
expect(branches.sort()).toEqual(['foo'].sort())
|
expect(branches.sort()).toEqual(['foo'].sort())
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('Test fetchDepth and fetchTags options', () => {
|
|
||||||
beforeEach(async () => {
|
|
||||||
jest.spyOn(fshelper, 'fileExistsSync').mockImplementation(jest.fn())
|
|
||||||
jest.spyOn(fshelper, 'directoryExistsSync').mockImplementation(jest.fn())
|
|
||||||
mockExec.mockImplementation((path, args, options) => {
|
|
||||||
console.log(args, options.listeners.stdout)
|
|
||||||
|
|
||||||
if (args.includes('version')) {
|
|
||||||
options.listeners.stdout(Buffer.from('2.18'))
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
afterEach(() => {
|
|
||||||
jest.restoreAllMocks()
|
|
||||||
})
|
|
||||||
|
|
||||||
it('should call execGit with the correct arguments when fetchDepth is 0 and fetchTags is true', async () => {
|
|
||||||
jest.spyOn(exec, 'exec').mockImplementation(mockExec)
|
|
||||||
const workingDirectory = 'test'
|
|
||||||
const lfs = false
|
|
||||||
const doSparseCheckout = false
|
|
||||||
git = await commandManager.createCommandManager(
|
|
||||||
workingDirectory,
|
|
||||||
lfs,
|
|
||||||
doSparseCheckout
|
|
||||||
)
|
|
||||||
|
|
||||||
const refSpec = ['refspec1', 'refspec2']
|
|
||||||
const options = {
|
|
||||||
filter: 'filterValue',
|
|
||||||
fetchDepth: 0,
|
|
||||||
fetchTags: true
|
|
||||||
}
|
|
||||||
|
|
||||||
await git.fetch(refSpec, options)
|
|
||||||
|
|
||||||
expect(mockExec).toHaveBeenCalledWith(
|
|
||||||
expect.any(String),
|
|
||||||
[
|
|
||||||
'-c',
|
|
||||||
'protocol.version=2',
|
|
||||||
'fetch',
|
|
||||||
'--prune',
|
|
||||||
'--progress',
|
|
||||||
'--no-recurse-submodules',
|
|
||||||
'--filter=filterValue',
|
|
||||||
'origin',
|
|
||||||
'refspec1',
|
|
||||||
'refspec2'
|
|
||||||
],
|
|
||||||
expect.any(Object)
|
|
||||||
)
|
|
||||||
})
|
|
||||||
|
|
||||||
it('should call execGit with the correct arguments when fetchDepth is 0 and fetchTags is false', async () => {
|
|
||||||
jest.spyOn(exec, 'exec').mockImplementation(mockExec)
|
|
||||||
|
|
||||||
const workingDirectory = 'test'
|
|
||||||
const lfs = false
|
|
||||||
const doSparseCheckout = false
|
|
||||||
git = await commandManager.createCommandManager(
|
|
||||||
workingDirectory,
|
|
||||||
lfs,
|
|
||||||
doSparseCheckout
|
|
||||||
)
|
|
||||||
const refSpec = ['refspec1', 'refspec2']
|
|
||||||
const options = {
|
|
||||||
filter: 'filterValue',
|
|
||||||
fetchDepth: 0,
|
|
||||||
fetchTags: false
|
|
||||||
}
|
|
||||||
|
|
||||||
await git.fetch(refSpec, options)
|
|
||||||
|
|
||||||
expect(mockExec).toHaveBeenCalledWith(
|
|
||||||
expect.any(String),
|
|
||||||
[
|
|
||||||
'-c',
|
|
||||||
'protocol.version=2',
|
|
||||||
'fetch',
|
|
||||||
'--no-tags',
|
|
||||||
'--prune',
|
|
||||||
'--progress',
|
|
||||||
'--no-recurse-submodules',
|
|
||||||
'--filter=filterValue',
|
|
||||||
'origin',
|
|
||||||
'refspec1',
|
|
||||||
'refspec2'
|
|
||||||
],
|
|
||||||
expect.any(Object)
|
|
||||||
)
|
|
||||||
})
|
|
||||||
|
|
||||||
it('should call execGit with the correct arguments when fetchDepth is 1 and fetchTags is false', async () => {
|
|
||||||
jest.spyOn(exec, 'exec').mockImplementation(mockExec)
|
|
||||||
|
|
||||||
const workingDirectory = 'test'
|
|
||||||
const lfs = false
|
|
||||||
const doSparseCheckout = false
|
|
||||||
git = await commandManager.createCommandManager(
|
|
||||||
workingDirectory,
|
|
||||||
lfs,
|
|
||||||
doSparseCheckout
|
|
||||||
)
|
|
||||||
const refSpec = ['refspec1', 'refspec2']
|
|
||||||
const options = {
|
|
||||||
filter: 'filterValue',
|
|
||||||
fetchDepth: 1,
|
|
||||||
fetchTags: false
|
|
||||||
}
|
|
||||||
|
|
||||||
await git.fetch(refSpec, options)
|
|
||||||
|
|
||||||
expect(mockExec).toHaveBeenCalledWith(
|
|
||||||
expect.any(String),
|
|
||||||
[
|
|
||||||
'-c',
|
|
||||||
'protocol.version=2',
|
|
||||||
'fetch',
|
|
||||||
'--no-tags',
|
|
||||||
'--prune',
|
|
||||||
'--progress',
|
|
||||||
'--no-recurse-submodules',
|
|
||||||
'--filter=filterValue',
|
|
||||||
'--depth=1',
|
|
||||||
'origin',
|
|
||||||
'refspec1',
|
|
||||||
'refspec2'
|
|
||||||
],
|
|
||||||
expect.any(Object)
|
|
||||||
)
|
|
||||||
})
|
|
||||||
|
|
||||||
it('should call execGit with the correct arguments when fetchDepth is 1 and fetchTags is true', async () => {
|
|
||||||
jest.spyOn(exec, 'exec').mockImplementation(mockExec)
|
|
||||||
|
|
||||||
const workingDirectory = 'test'
|
|
||||||
const lfs = false
|
|
||||||
const doSparseCheckout = false
|
|
||||||
git = await commandManager.createCommandManager(
|
|
||||||
workingDirectory,
|
|
||||||
lfs,
|
|
||||||
doSparseCheckout
|
|
||||||
)
|
|
||||||
const refSpec = ['refspec1', 'refspec2']
|
|
||||||
const options = {
|
|
||||||
filter: 'filterValue',
|
|
||||||
fetchDepth: 1,
|
|
||||||
fetchTags: true
|
|
||||||
}
|
|
||||||
|
|
||||||
await git.fetch(refSpec, options)
|
|
||||||
|
|
||||||
expect(mockExec).toHaveBeenCalledWith(
|
|
||||||
expect.any(String),
|
|
||||||
[
|
|
||||||
'-c',
|
|
||||||
'protocol.version=2',
|
|
||||||
'fetch',
|
|
||||||
'--prune',
|
|
||||||
'--progress',
|
|
||||||
'--no-recurse-submodules',
|
|
||||||
'--filter=filterValue',
|
|
||||||
'--depth=1',
|
|
||||||
'origin',
|
|
||||||
'refspec1',
|
|
||||||
'refspec2'
|
|
||||||
],
|
|
||||||
expect.any(Object)
|
|
||||||
)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|||||||
@@ -82,7 +82,6 @@ describe('input-helper tests', () => {
|
|||||||
expect(settings.sparseCheckout).toBe(undefined)
|
expect(settings.sparseCheckout).toBe(undefined)
|
||||||
expect(settings.sparseCheckoutConeMode).toBe(true)
|
expect(settings.sparseCheckoutConeMode).toBe(true)
|
||||||
expect(settings.fetchDepth).toBe(1)
|
expect(settings.fetchDepth).toBe(1)
|
||||||
expect(settings.fetchTags).toBe(false)
|
|
||||||
expect(settings.lfs).toBe(false)
|
expect(settings.lfs).toBe(false)
|
||||||
expect(settings.ref).toBe('refs/heads/some-ref')
|
expect(settings.ref).toBe('refs/heads/some-ref')
|
||||||
expect(settings.repositoryName).toBe('some-repo')
|
expect(settings.repositoryName).toBe('some-repo')
|
||||||
|
|||||||
@@ -65,9 +65,6 @@ inputs:
|
|||||||
fetch-depth:
|
fetch-depth:
|
||||||
description: 'Number of commits to fetch. 0 indicates all history for all branches and tags.'
|
description: 'Number of commits to fetch. 0 indicates all history for all branches and tags.'
|
||||||
default: 1
|
default: 1
|
||||||
fetch-tags:
|
|
||||||
description: 'Whether to fetch tags, even if fetch-depth > 0.'
|
|
||||||
default: false
|
|
||||||
lfs:
|
lfs:
|
||||||
description: 'Whether to download Git-LFS files'
|
description: 'Whether to download Git-LFS files'
|
||||||
default: false
|
default: false
|
||||||
|
|||||||
11
dist/index.js
vendored
11
dist/index.js
vendored
@@ -637,7 +637,7 @@ class GitCommandManager {
|
|||||||
fetch(refSpec, options) {
|
fetch(refSpec, options) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const args = ['-c', 'protocol.version=2', 'fetch'];
|
const args = ['-c', 'protocol.version=2', 'fetch'];
|
||||||
if (!refSpec.some(x => x === refHelper.tagsRefSpec) && !options.fetchTags) {
|
if (!refSpec.some(x => x === refHelper.tagsRefSpec)) {
|
||||||
args.push('--no-tags');
|
args.push('--no-tags');
|
||||||
}
|
}
|
||||||
args.push('--prune', '--progress', '--no-recurse-submodules');
|
args.push('--prune', '--progress', '--no-recurse-submodules');
|
||||||
@@ -718,8 +718,8 @@ class GitCommandManager {
|
|||||||
}
|
}
|
||||||
log1(format) {
|
log1(format) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const args = format ? ['log', '-1', format] : ['log', '-1'];
|
var args = format ? ['log', '-1', format] : ['log', '-1'];
|
||||||
const silent = format ? false : true;
|
var silent = format ? false : true;
|
||||||
const output = yield this.execGit(args, false, silent);
|
const output = yield this.execGit(args, false, silent);
|
||||||
return output.stdout;
|
return output.stdout;
|
||||||
});
|
});
|
||||||
@@ -1256,7 +1256,6 @@ function getSource(settings) {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
fetchOptions.fetchDepth = settings.fetchDepth;
|
fetchOptions.fetchDepth = settings.fetchDepth;
|
||||||
fetchOptions.fetchTags = settings.fetchTags;
|
|
||||||
const refSpec = refHelper.getRefSpec(settings.ref, settings.commit);
|
const refSpec = refHelper.getRefSpec(settings.ref, settings.commit);
|
||||||
yield git.fetch(refSpec, fetchOptions);
|
yield git.fetch(refSpec, fetchOptions);
|
||||||
}
|
}
|
||||||
@@ -1735,10 +1734,6 @@ function getInputs() {
|
|||||||
result.fetchDepth = 0;
|
result.fetchDepth = 0;
|
||||||
}
|
}
|
||||||
core.debug(`fetch depth = ${result.fetchDepth}`);
|
core.debug(`fetch depth = ${result.fetchDepth}`);
|
||||||
// Fetch tags
|
|
||||||
result.fetchTags =
|
|
||||||
(core.getInput('fetch-tags') || 'false').toUpperCase() === 'TRUE';
|
|
||||||
core.debug(`fetch tags = ${result.fetchTags}`);
|
|
||||||
// LFS
|
// LFS
|
||||||
result.lfs = (core.getInput('lfs') || 'false').toUpperCase() === 'TRUE';
|
result.lfs = (core.getInput('lfs') || 'false').toUpperCase() === 'TRUE';
|
||||||
core.debug(`lfs = ${result.lfs}`);
|
core.debug(`lfs = ${result.lfs}`);
|
||||||
|
|||||||
15917
package-lock.json
generated
15917
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "checkout",
|
"name": "checkout",
|
||||||
"version": "3.6.0",
|
"version": "3.5.3",
|
||||||
"description": "checkout action",
|
"description": "checkout action",
|
||||||
"main": "lib/main.js",
|
"main": "lib/main.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@@ -52,4 +52,4 @@
|
|||||||
"ts-jest": "^27.0.7",
|
"ts-jest": "^27.0.7",
|
||||||
"typescript": "^4.4.4"
|
"typescript": "^4.4.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ export interface IGitCommandManager {
|
|||||||
options: {
|
options: {
|
||||||
filter?: string
|
filter?: string
|
||||||
fetchDepth?: number
|
fetchDepth?: number
|
||||||
fetchTags?: boolean
|
|
||||||
}
|
}
|
||||||
): Promise<void>
|
): Promise<void>
|
||||||
getDefaultBranch(repositoryUrl: string): Promise<string>
|
getDefaultBranch(repositoryUrl: string): Promise<string>
|
||||||
@@ -241,10 +240,10 @@ class GitCommandManager {
|
|||||||
|
|
||||||
async fetch(
|
async fetch(
|
||||||
refSpec: string[],
|
refSpec: string[],
|
||||||
options: {filter?: string; fetchDepth?: number; fetchTags?: boolean}
|
options: {filter?: string; fetchDepth?: number}
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
const args = ['-c', 'protocol.version=2', 'fetch']
|
const args = ['-c', 'protocol.version=2', 'fetch']
|
||||||
if (!refSpec.some(x => x === refHelper.tagsRefSpec) && !options.fetchTags) {
|
if (!refSpec.some(x => x === refHelper.tagsRefSpec)) {
|
||||||
args.push('--no-tags')
|
args.push('--no-tags')
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -334,8 +333,8 @@ class GitCommandManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async log1(format?: string): Promise<string> {
|
async log1(format?: string): Promise<string> {
|
||||||
const args = format ? ['log', '-1', format] : ['log', '-1']
|
var args = format ? ['log', '-1', format] : ['log', '-1']
|
||||||
const silent = format ? false : true
|
var silent = format ? false : true
|
||||||
const output = await this.execGit(args, false, silent)
|
const output = await this.execGit(args, false, silent)
|
||||||
return output.stdout
|
return output.stdout
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -153,11 +153,7 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
|
|||||||
|
|
||||||
// Fetch
|
// Fetch
|
||||||
core.startGroup('Fetching the repository')
|
core.startGroup('Fetching the repository')
|
||||||
const fetchOptions: {
|
const fetchOptions: {filter?: string; fetchDepth?: number} = {}
|
||||||
filter?: string
|
|
||||||
fetchDepth?: number
|
|
||||||
fetchTags?: boolean
|
|
||||||
} = {}
|
|
||||||
if (settings.sparseCheckout) fetchOptions.filter = 'blob:none'
|
if (settings.sparseCheckout) fetchOptions.filter = 'blob:none'
|
||||||
if (settings.fetchDepth <= 0) {
|
if (settings.fetchDepth <= 0) {
|
||||||
// Fetch all branches and tags
|
// Fetch all branches and tags
|
||||||
@@ -175,7 +171,6 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
fetchOptions.fetchDepth = settings.fetchDepth
|
fetchOptions.fetchDepth = settings.fetchDepth
|
||||||
fetchOptions.fetchTags = settings.fetchTags
|
|
||||||
const refSpec = refHelper.getRefSpec(settings.ref, settings.commit)
|
const refSpec = refHelper.getRefSpec(settings.ref, settings.commit)
|
||||||
await git.fetch(refSpec, fetchOptions)
|
await git.fetch(refSpec, fetchOptions)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,11 +44,6 @@ export interface IGitSourceSettings {
|
|||||||
*/
|
*/
|
||||||
fetchDepth: number
|
fetchDepth: number
|
||||||
|
|
||||||
/**
|
|
||||||
* Fetch tags, even if fetchDepth > 0 (default: false)
|
|
||||||
*/
|
|
||||||
fetchTags: boolean
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Indicates whether to fetch LFS objects
|
* Indicates whether to fetch LFS objects
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -100,11 +100,6 @@ export async function getInputs(): Promise<IGitSourceSettings> {
|
|||||||
}
|
}
|
||||||
core.debug(`fetch depth = ${result.fetchDepth}`)
|
core.debug(`fetch depth = ${result.fetchDepth}`)
|
||||||
|
|
||||||
// Fetch tags
|
|
||||||
result.fetchTags =
|
|
||||||
(core.getInput('fetch-tags') || 'false').toUpperCase() === 'TRUE'
|
|
||||||
core.debug(`fetch tags = ${result.fetchTags}`)
|
|
||||||
|
|
||||||
// LFS
|
// LFS
|
||||||
result.lfs = (core.getInput('lfs') || 'false').toUpperCase() === 'TRUE'
|
result.lfs = (core.getInput('lfs') || 'false').toUpperCase() === 'TRUE'
|
||||||
core.debug(`lfs = ${result.lfs}`)
|
core.debug(`lfs = ${result.lfs}`)
|
||||||
|
|||||||
Reference in New Issue
Block a user