-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[TECH] Utiliser la version de release qui vient d'être crée plutôt que d'appeler l'API Github #236
Conversation
Une fois l'application déployée, elle sera accessible à cette adresse https://bot-pr236.review.pix.fr |
3c27130
to
8d450bf
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@@ -54,7 +54,8 @@ module.exports = { | |||
const branchName = await github.getDefaultBranch(config.github.owner, sanitizedRepoName); | |||
const repositoryURL = `https://${config.github.token}@github.com/${config.github.owner}/${sanitizedRepoName}.git`; | |||
const args = [config.github.owner, sanitizedRepoName, sanitizedReleaseType, branchName, repositoryURL]; | |||
await _runScriptWithArgument(RELEASE_PIX_SCRIPT, ...args); | |||
const newPackageVersion = await _runScriptWithArgument(RELEASE_PIX_SCRIPT, ...args); | |||
return newPackageVersion; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Retourner newPackageVersion
en dehors du try/catch.
Mieux: supprimer le try/catch et laisser HapiJs gérer l'erreur non catchée, ou poster un message dans Slack pour dire que la release a fail
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Il manque un test sur la valeur retournée dans test/unit/common/services/releases_test.js - "#publishPixRepo"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Retourner newPackageVersion en dehors du try/catch.
Je ne vois pas ce que cela changerais. Peut tu expliciter ? (même après merge)
Mieux: supprimer le try/catch et laisser HapiJs gérer l'erreur non catchée, ou poster un message dans Slack pour dire que la release a fail
Il s'agit d'un tout autre problème a traiter hélas, hors du scope de cette PR.
@@ -19,12 +19,12 @@ const releasesServices = require('../../../../../common/services/releases'); | |||
const githubServices = require('../../../../../common/services/github'); | |||
const ScalingoClient = require('../../../../../common/services/scalingo-client'); | |||
|
|||
describe('Services | Slack | Commands', () => { | |||
describe('Unit | Run | Services | Slack | Commands', () => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🙏
run/services/slack/commands.js
Outdated
@@ -64,13 +64,13 @@ function getErrorAppMessage(appName) { | |||
function _isReleaseTypeInvalid(releaseType) { | |||
return !['major', 'minor', 'patch'].includes(releaseType); | |||
} | |||
async function publishAndDeployPixUI(repoName, releaseType, responseUrl) { | |||
|
|||
async function publishPixUI(repoName, releaseType, responseUrl) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🙏
@@ -106,7 +101,7 @@ describe('Services | Slack | Commands', () => { | |||
await createAndDeployPixUI(payload); | |||
|
|||
// then | |||
sinon.assert.calledWith(githubServices.getLatestReleaseTag, 'pix-ui'); | |||
sinon.assert.calledOnceWithExactly(githubServices.getLatestReleaseTag, 'pix-ui'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Il y a un problème de fond ici dans ce que teste ce fichier nommé "test unitaire"
Pour moi, ce test unitaire doit vérifier que createAndDeployPixUI
a appelé
publishPixUI
. Ici, il vérifie que publishPixUI
a appelé githubServices.getLatestReleaseTag
, ce qui devrait être fait uniquement dans le TU de publishPixUI
(sauf qu'il n'y a pas de TU dessus). Le code est couvert par les tests, mais par une cascade d'appels, ce qui n'est pas top..
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Après investigation, publishPixUI
est une fonction interne au fichier. Du coup cela ne me choque pas. Nous avons préfixer ces fonctions par un underscore pour clarifier cela.
Comme tu as demandé un review approfondie, j'inclus le découpage en commit. Voilà les commits
J'observe plusieurs choses:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Le serveur démarre mais pas le job de deploy pix site, voir https://github.com/1024pix/pix-bot/pull/236/files#r1146522740
7bfcc35
to
0ea7ca1
Compare
0ea7ca1
to
25e96d4
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🌹 🌺 💮 🥀 🌷 🌻 🌸 LGTM 🌸 🌻 🌷 🥀 💮 🌺 🌹
🦄 Problème
Lorsque nous créons une nouvelle release, la version à déployer est récupérée depuis l'API de GitHub plutôt que d'utiliser la version tout juste créée, ce qui peut provoquer des incohérences (release créée mais autre version déployée)
🤖 Proposition
Utiliser la version qui vient d'être release
💯 Pour tester
Vérifier la CI