1
0
mirror of https://github.com/actions/checkout.git synced 2026-03-04 08:41:01 +08:00

Compare commits

...

3 Commits

Author SHA1 Message Date
Samuel Lijin
b99f722bb2
Merge 38cc68387c into de5a000abf 2024-10-02 16:14:13 +08:00
Orhan Toy
de5a000abf
Check out other refs/* by commit if provided, fall back to ref (#1924) 2024-10-01 20:24:28 -04:00
Samuel Lijin
38cc68387c
fix(lfs): ensure that LFS objects are checked out 2023-06-27 16:36:44 -07:00
5 changed files with 24 additions and 4 deletions

View File

@ -77,6 +77,16 @@ describe('ref-helper tests', () => {
expect(checkoutInfo.startPoint).toBeFalsy()
})
it('getCheckoutInfo refs/ without commit', async () => {
const checkoutInfo = await refHelper.getCheckoutInfo(
git,
'refs/non-standard-ref',
''
)
expect(checkoutInfo.ref).toBe('refs/non-standard-ref')
expect(checkoutInfo.startPoint).toBeFalsy()
})
it('getCheckoutInfo unqualified branch only', async () => {
git.branchExists = jest.fn(async (remote: boolean, pattern: string) => {
return true

4
dist/index.js vendored
View File

@ -2005,8 +2005,8 @@ function getCheckoutInfo(git, ref, commit) {
result.ref = ref;
}
// refs/
else if (upperRef.startsWith('REFS/') && commit) {
result.ref = commit;
else if (upperRef.startsWith('REFS/')) {
result.ref = commit ? commit : ref;
}
// Unqualified ref, check for a matching branch or tag
else {

View File

@ -44,6 +44,7 @@ export interface IGitCommandManager {
getWorkingDirectory(): string
init(): Promise<void>
isDetached(): Promise<boolean>
lfsCheckout(): Promise<void>
lfsFetch(ref: string): Promise<void>
lfsInstall(): Promise<void>
log1(format?: string): Promise<string>
@ -340,6 +341,10 @@ class GitCommandManager {
return !output.stdout.trim().startsWith('refs/heads/')
}
async lfsCheckout(): Promise<void> {
await this.execGit(['lfs', 'checkout'])
}
async lfsFetch(ref: string): Promise<void> {
const args = ['lfs', 'fetch', 'origin', ref]

View File

@ -232,6 +232,11 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
await git.checkout(checkoutInfo.ref, checkoutInfo.startPoint)
core.endGroup()
// LFS checkout
core.startGroup('Checking out LFS objects')
await git.lfsCheckout()
core.endGroup()
// Submodules
if (settings.submodules) {
// Temporarily override global config

View File

@ -46,8 +46,8 @@ export async function getCheckoutInfo(
result.ref = ref
}
// refs/
else if (upperRef.startsWith('REFS/') && commit) {
result.ref = commit
else if (upperRef.startsWith('REFS/')) {
result.ref = commit ? commit : ref
}
// Unqualified ref, check for a matching branch or tag
else {