From f6d8303d8b5e03dc0ecd231125391b1af937e9a8 Mon Sep 17 00:00:00 2001 From: Ali Date: Tue, 16 Jan 2024 08:52:02 +0100 Subject: [PATCH 1/3] PIX-9190 : Enrichir le logger de pix bot --- common/services/github.js | 1 + common/services/releases.js | 15 ++++++++++++--- common/services/scalingo-client.js | 8 ++++++++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/common/services/github.js b/common/services/github.js index 069e726a..ec268e5e 100644 --- a/common/services/github.js +++ b/common/services/github.js @@ -177,6 +177,7 @@ async function _getTagCommitUrl({ owner, repo, tagName }) { const tags = await _getTags(owner, repo); const tag = tags.find((tag) => tag.name === tagName); if (!tag) { + logger.error(`Could not find the tag ${tagName} on ${owner}/${repo}`); throw new Error(`Could not find the tag ${tagName} on ${owner}/${repo}`); } return tag.commit.url; diff --git a/common/services/releases.js b/common/services/releases.js index 3397d7d1..db5b9e09 100644 --- a/common/services/releases.js +++ b/common/services/releases.js @@ -56,6 +56,10 @@ module.exports = { const repositoryURL = `https://${config.github.token}@github.com/${config.github.owner}/${sanitizedRepoName}.git`; const args = [config.github.owner, sanitizedRepoName, sanitizedReleaseType, branchName, repositoryURL]; const newPackageVersion = await _runScriptWithArgument(RELEASE_PIX_SCRIPT, ...args); + logger.info( + 'Releasing : Type: ' + releaseType + ' | reponame ' + repoName + ' | Repo URL : ', + repositoryURL + ' | Package version : ' + newPackageVersion, + ); return newPackageVersion; } catch (err) { logger.error({ event: 'release', message: err }); @@ -67,9 +71,14 @@ module.exports = { const sanitizedReleaseTag = _sanitizedArgument(releaseTag); const sanitizedRepoName = _sanitizedArgument(repoName); const sanitizedAppName = _sanitizedArgument(appName); - const client = await ScalingoClient.getInstance(environment); - - return client.deployFromArchive(sanitizedAppName, sanitizedReleaseTag, sanitizedRepoName); + try { + const client = await ScalingoClient.getInstance(environment); + logger.info('Deploy : ' + sanitizedAppName + ' | Tag ' + sanitizedReleaseTag + ' | Repo : ', sanitizedRepoName); + return client.deployFromArchive(sanitizedAppName, sanitizedReleaseTag, sanitizedRepoName); + } catch (err) { + logger.error({ event: 'deploy', message: err }); + throw err; + } }, _runScriptWithArgument, diff --git a/common/services/scalingo-client.js b/common/services/scalingo-client.js index 12f97154..1d46f872 100644 --- a/common/services/scalingo-client.js +++ b/common/services/scalingo-client.js @@ -14,6 +14,7 @@ class ScalingoClient { static async getInstance(environment, injectedClient = scalingo) { const { token, apiUrl } = config.scalingo[environment]; if (!token || !apiUrl) { + logger.error(`Scalingo credentials missing for environment ${environment}`); throw new Error(`Scalingo credentials missing for environment ${environment}`); } const client = await injectedClient.clientFromToken(token, { apiUrl }); @@ -22,9 +23,11 @@ class ScalingoClient { async deployFromArchive(pixApp, releaseTag, repository = config.github.repository, options = DEFAULT_OPTS) { if (!pixApp) { + logger.error('No application to deploy.'); throw new Error('No application to deploy.'); } if (!releaseTag) { + logger.error('No release tag to deploy.'); throw new Error('No release tag to deploy.'); } @@ -51,6 +54,7 @@ class ScalingoClient { throw new Error(`Unable to deploy ${scalingoApp} ${releaseTag}`); } + logger.info(`Deployment of ${scalingoApp} ${releaseTag} has been requested`); return `Deployment of ${scalingoApp} ${releaseTag} has been requested`; } @@ -70,6 +74,9 @@ class ScalingoClient { if (err.status === 404) { return false; } + logger.error( + `Impossible to get info for RA ${reviewAppName}. Scalingo API returned ${err.status} : ${err.message}`, + ); throw new Error( `Impossible to get info for RA ${reviewAppName}. Scalingo API returned ${err.status} : ${err.message}`, ); @@ -138,6 +145,7 @@ class ScalingoClient { try { const { id } = await this.client.Apps.create(app); await this.client.Apps.update(id, appSettings); + logger.ok(`${app.name} created`); return id; } catch (e) { logger.error({ event: 'scalingo', message: e }); From 8821c80d1607f15295d02cfbe5c55693599cb03f Mon Sep 17 00:00:00 2001 From: Ali Date: Wed, 17 Jan 2024 10:21:59 +0100 Subject: [PATCH 2/3] PIX-9190 : Enrichir le logger de pix bot --- common/services/scalingo-client.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/services/scalingo-client.js b/common/services/scalingo-client.js index 1d46f872..46e83192 100644 --- a/common/services/scalingo-client.js +++ b/common/services/scalingo-client.js @@ -145,7 +145,7 @@ class ScalingoClient { try { const { id } = await this.client.Apps.create(app); await this.client.Apps.update(id, appSettings); - logger.ok(`${app.name} created`); + logger.ok({ event: 'scalingo', message: `${app.name} created` }); return id; } catch (e) { logger.error({ event: 'scalingo', message: e }); From 94f333ea0f38836a58517cc96b41b21da68442d1 Mon Sep 17 00:00:00 2001 From: Ali Date: Mon, 22 Jan 2024 08:47:42 +0100 Subject: [PATCH 3/3] PIX-9190 : Enrichir le logger de pix bot --- common/services/releases.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/common/services/releases.js b/common/services/releases.js index db5b9e09..da7d24e9 100644 --- a/common/services/releases.js +++ b/common/services/releases.js @@ -56,10 +56,18 @@ module.exports = { const repositoryURL = `https://${config.github.token}@github.com/${config.github.owner}/${sanitizedRepoName}.git`; const args = [config.github.owner, sanitizedRepoName, sanitizedReleaseType, branchName, repositoryURL]; const newPackageVersion = await _runScriptWithArgument(RELEASE_PIX_SCRIPT, ...args); - logger.info( - 'Releasing : Type: ' + releaseType + ' | reponame ' + repoName + ' | Repo URL : ', - repositoryURL + ' | Package version : ' + newPackageVersion, - ); + logger.ok({ + event: 'release', + message: + 'Type: ' + + releaseType + + ' , reponame ' + + repoName + + ' , Repo URL : ' + + repositoryURL + + ' , Package version : ' + + newPackageVersion, + }); return newPackageVersion; } catch (err) { logger.error({ event: 'release', message: err });