1
0
Fork 0
mirror of https://code.forgejo.org/actions/checkout.git synced 2024-11-23 09:54:51 +01:00
This commit is contained in:
eric sciple 2020-03-19 00:14:00 -04:00
parent 46054cf00b
commit 036772999d
3 changed files with 40 additions and 0 deletions

20
dist/index.js vendored
View file

@ -5822,7 +5822,9 @@ function getSource(settings) {
yield io.mkdirP(settings.repositoryPath); yield io.mkdirP(settings.repositoryPath);
} }
// Git command manager // Git command manager
core.startGroup('Getting Git version info');
const git = yield getGitCommandManager(settings); const git = yield getGitCommandManager(settings);
core.endGroup();
// Prepare existing directory, otherwise recreate // Prepare existing directory, otherwise recreate
if (isExisting) { if (isExisting) {
yield gitDirectoryHelper.prepareExistingDirectory(git, settings.repositoryPath, initialRemoteUrl, [httpsUrl, sshUrl], settings.clean); yield gitDirectoryHelper.prepareExistingDirectory(git, settings.repositoryPath, initialRemoteUrl, [httpsUrl, sshUrl], settings.clean);
@ -5854,21 +5856,27 @@ function getSource(settings) {
const authHelper = gitAuthHelper.createAuthHelper(git, settings); const authHelper = gitAuthHelper.createAuthHelper(git, settings);
try { try {
// Configure auth // Configure auth
core.startGroup('Setting up auth');
yield authHelper.configureAuth(); yield authHelper.configureAuth();
core.endGroup();
// LFS install // LFS install
if (settings.lfs) { if (settings.lfs) {
yield git.lfsInstall(); yield git.lfsInstall();
} }
// Fetch // Fetch
core.startGroup('Fetching the repository');
const refSpec = refHelper.getRefSpec(settings.ref, settings.commit); const refSpec = refHelper.getRefSpec(settings.ref, settings.commit);
yield git.fetch(settings.fetchDepth, refSpec); yield git.fetch(settings.fetchDepth, refSpec);
core.endGroup();
// Checkout info // Checkout info
const checkoutInfo = yield refHelper.getCheckoutInfo(git, settings.ref, settings.commit); const checkoutInfo = yield refHelper.getCheckoutInfo(git, settings.ref, settings.commit);
// LFS fetch // LFS fetch
// Explicit lfs-fetch to avoid slow checkout (fetches one lfs object at a time). // Explicit lfs-fetch to avoid slow checkout (fetches one lfs object at a time).
// Explicit lfs fetch will fetch lfs objects in parallel. // Explicit lfs fetch will fetch lfs objects in parallel.
if (settings.lfs) { if (settings.lfs) {
core.startGroup('Fetching LFS objects');
yield git.lfsFetch(checkoutInfo.startPoint || checkoutInfo.ref); yield git.lfsFetch(checkoutInfo.startPoint || checkoutInfo.ref);
core.endGroup();
} }
// Fix URL when using SSH // Fix URL when using SSH
if (settings.sshKey && initialRemoteUrl !== sshUrl) { if (settings.sshKey && initialRemoteUrl !== sshUrl) {
@ -5880,14 +5888,20 @@ function getSource(settings) {
if (settings.submodules) { if (settings.submodules) {
try { try {
// Temporarily override global config // Temporarily override global config
core.startGroup('Setting up auth for fetching submodules');
yield authHelper.configureGlobalAuth(); yield authHelper.configureGlobalAuth();
core.endGroup();
// Checkout submodules // Checkout submodules
core.startGroup('Fetching submodules');
yield git.submoduleSync(settings.nestedSubmodules); yield git.submoduleSync(settings.nestedSubmodules);
yield git.submoduleUpdate(settings.fetchDepth, settings.nestedSubmodules); yield git.submoduleUpdate(settings.fetchDepth, settings.nestedSubmodules);
yield git.submoduleForeach('git config --local gc.auto 0', settings.nestedSubmodules); yield git.submoduleForeach('git config --local gc.auto 0', settings.nestedSubmodules);
core.endGroup();
// Persist credentials // Persist credentials
if (settings.persistCredentials) { if (settings.persistCredentials) {
core.startGroup('Persisting credentials for submodules');
yield authHelper.configureSubmoduleAuth(); yield authHelper.configureSubmoduleAuth();
core.endGroup();
} }
} }
finally { finally {
@ -5901,7 +5915,9 @@ function getSource(settings) {
finally { finally {
// Remove auth // Remove auth
if (!settings.persistCredentials) { if (!settings.persistCredentials) {
core.startGroup('Removing auth');
yield authHelper.removeAuth(); yield authHelper.removeAuth();
core.endGroup();
} }
} }
}); });
@ -7241,6 +7257,7 @@ function prepareExistingDirectory(git, repositoryPath, preferredRemoteUrl, allow
} }
} }
try { try {
core.startGroup('Removing previously created refs, to avoid conflicts');
// Checkout detached HEAD // Checkout detached HEAD
if (!(yield git.isDetached())) { if (!(yield git.isDetached())) {
yield git.checkoutDetach(); yield git.checkoutDetach();
@ -7255,8 +7272,10 @@ function prepareExistingDirectory(git, repositoryPath, preferredRemoteUrl, allow
for (const branch of branches) { for (const branch of branches) {
yield git.branchDelete(true, branch); yield git.branchDelete(true, branch);
} }
core.endGroup();
// Clean // Clean
if (clean) { if (clean) {
core.startGroup('Cleaning the repository');
if (!(yield git.tryClean())) { if (!(yield git.tryClean())) {
core.debug(`The clean command failed. This might be caused by: 1) path too long, 2) permission issue, or 3) file in use. For futher investigation, manually run 'git clean -ffdx' on the directory '${repositoryPath}'.`); core.debug(`The clean command failed. This might be caused by: 1) path too long, 2) permission issue, or 3) file in use. For futher investigation, manually run 'git clean -ffdx' on the directory '${repositoryPath}'.`);
remove = true; remove = true;
@ -7264,6 +7283,7 @@ function prepareExistingDirectory(git, repositoryPath, preferredRemoteUrl, allow
else if (!(yield git.tryReset())) { else if (!(yield git.tryReset())) {
remove = true; remove = true;
} }
core.endGroup();
if (remove) { if (remove) {
core.warning(`Unable to clean or reset the repository. The repository will be recreated instead.`); core.warning(`Unable to clean or reset the repository. The repository will be recreated instead.`);
} }

View file

@ -53,6 +53,7 @@ export async function prepareExistingDirectory(
} }
try { try {
core.startGroup('Removing previously created refs, to avoid conflicts')
// Checkout detached HEAD // Checkout detached HEAD
if (!(await git.isDetached())) { if (!(await git.isDetached())) {
await git.checkoutDetach() await git.checkoutDetach()
@ -69,9 +70,11 @@ export async function prepareExistingDirectory(
for (const branch of branches) { for (const branch of branches) {
await git.branchDelete(true, branch) await git.branchDelete(true, branch)
} }
core.endGroup()
// Clean // Clean
if (clean) { if (clean) {
core.startGroup('Cleaning the repository')
if (!(await git.tryClean())) { if (!(await git.tryClean())) {
core.debug( core.debug(
`The clean command failed. This might be caused by: 1) path too long, 2) permission issue, or 3) file in use. For futher investigation, manually run 'git clean -ffdx' on the directory '${repositoryPath}'.` `The clean command failed. This might be caused by: 1) path too long, 2) permission issue, or 3) file in use. For futher investigation, manually run 'git clean -ffdx' on the directory '${repositoryPath}'.`
@ -80,6 +83,7 @@ export async function prepareExistingDirectory(
} else if (!(await git.tryReset())) { } else if (!(await git.tryReset())) {
remove = true remove = true
} }
core.endGroup()
if (remove) { if (remove) {
core.warning( core.warning(

View file

@ -43,7 +43,9 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
} }
// Git command manager // Git command manager
core.startGroup('Getting Git version info')
const git = await getGitCommandManager(settings) const git = await getGitCommandManager(settings)
core.endGroup()
// Prepare existing directory, otherwise recreate // Prepare existing directory, otherwise recreate
if (isExisting) { if (isExisting) {
@ -104,7 +106,9 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
const authHelper = gitAuthHelper.createAuthHelper(git, settings) const authHelper = gitAuthHelper.createAuthHelper(git, settings)
try { try {
// Configure auth // Configure auth
core.startGroup('Setting up auth')
await authHelper.configureAuth() await authHelper.configureAuth()
core.endGroup()
// LFS install // LFS install
if (settings.lfs) { if (settings.lfs) {
@ -112,8 +116,10 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
} }
// Fetch // Fetch
core.startGroup('Fetching the repository')
const refSpec = refHelper.getRefSpec(settings.ref, settings.commit) const refSpec = refHelper.getRefSpec(settings.ref, settings.commit)
await git.fetch(settings.fetchDepth, refSpec) await git.fetch(settings.fetchDepth, refSpec)
core.endGroup()
// Checkout info // Checkout info
const checkoutInfo = await refHelper.getCheckoutInfo( const checkoutInfo = await refHelper.getCheckoutInfo(
@ -126,7 +132,9 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
// Explicit lfs-fetch to avoid slow checkout (fetches one lfs object at a time). // Explicit lfs-fetch to avoid slow checkout (fetches one lfs object at a time).
// Explicit lfs fetch will fetch lfs objects in parallel. // Explicit lfs fetch will fetch lfs objects in parallel.
if (settings.lfs) { if (settings.lfs) {
core.startGroup('Fetching LFS objects')
await git.lfsFetch(checkoutInfo.startPoint || checkoutInfo.ref) await git.lfsFetch(checkoutInfo.startPoint || checkoutInfo.ref)
core.endGroup()
} }
// Fix URL when using SSH // Fix URL when using SSH
@ -141,9 +149,12 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
if (settings.submodules) { if (settings.submodules) {
try { try {
// Temporarily override global config // Temporarily override global config
core.startGroup('Setting up auth for fetching submodules')
await authHelper.configureGlobalAuth() await authHelper.configureGlobalAuth()
core.endGroup()
// Checkout submodules // Checkout submodules
core.startGroup('Fetching submodules')
await git.submoduleSync(settings.nestedSubmodules) await git.submoduleSync(settings.nestedSubmodules)
await git.submoduleUpdate( await git.submoduleUpdate(
settings.fetchDepth, settings.fetchDepth,
@ -153,10 +164,13 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
'git config --local gc.auto 0', 'git config --local gc.auto 0',
settings.nestedSubmodules settings.nestedSubmodules
) )
core.endGroup()
// Persist credentials // Persist credentials
if (settings.persistCredentials) { if (settings.persistCredentials) {
core.startGroup('Persisting credentials for submodules')
await authHelper.configureSubmoduleAuth() await authHelper.configureSubmoduleAuth()
core.endGroup()
} }
} finally { } finally {
// Remove temporary global config override // Remove temporary global config override
@ -169,7 +183,9 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
} finally { } finally {
// Remove auth // Remove auth
if (!settings.persistCredentials) { if (!settings.persistCredentials) {
core.startGroup('Removing auth')
await authHelper.removeAuth() await authHelper.removeAuth()
core.endGroup()
} }
} }
} }