Faits:
A.
B._, né en 1955, a travaillé en qualité de magasinier caviste (chef de rayon) au service de X._. Le 11 mars 2009, il a présenté une demande de prestations de l'assurance-invalidité, en indiquant qu'il se trouvait en incapacité totale de travail depuis octobre 2008 en raison de hernies inguinales.
SWICA Assurances, en tant qu'assureur perte de gain en cas de maladie, a confié un mandat d'expertise au Centre Y._. Dans son rapport du 11 février 2010, le docteur L._ a évalué la capacité de travail de B._ à 50 % dans son activité de magasinier et à 80 % dans une activité adaptée à son handicap.
De son côté, l'Office de l'assurance-invalidité pour le canton de Vaud (l'office AI) a diligenté deux stages d'observation professionnelle, afin d'examiner les aptitudes de l'assuré à la réadaptation professionnelle et ses possibilités de réinsertion sur le marché du travail. Le premier stage s'est déroulé auprès du COPAI de V._, du 26 avril au 21 mai 2010; à l'issue de celui-ci, le docteur M._ a estimé que les rendements fournis par l'assuré se situaient entre 60 et 80 % (rapport du 25 mai 2010), ce que le directeur du COPAI a confirmé (rapport du 28 mai 2010). Le second stage a eu lieu du 10 novembre au 10 décembre 2010 auprès du Centre de formation Z._; les responsables de cet établissement ont admis que l'assuré pouvait occuper un emploi adapté à ses limitations physiques à un taux de 80 %, avec un rendement oscillant entre 60 et 70 % (rapport du 9 décembre 2010).
L'office AI a évalué l'invalidité de l'assuré en tenant compte d'une capacité de travail de 80 % dans une activité légère de substitution. Il a fixé le revenu annuel d'invalide à 41'742 fr. en 2009, sur le base des statistiques salariales de l'Enquête suisse sur la structure des salaires. En comparant ce revenu d'invalide au salaire de 56'485 fr. que l'assuré aurait pu prétendre dans son activité habituelle, il est parvenu à un taux d'invalidité de 27 %. Dès lors, par décision du 1 er juillet 2011 qui a fait suite à un projet du 4 mars 2011, l'office AI a refusé de verser une rente d'invalidité.
B.
B._ a déféré cette décision au Tribunal cantonal du canton de Vaud, Cour des assurances sociales, en concluant principalement à l'octroi d'une demi-rente d'invalidité, subsidiairement au renvoi de la cause à l'office AI pour instruction complémentaire sur la capacité de travail.
La juridiction cantonale a ramené la capacité de travail de l'assuré de 80 % à 56 % dans une activité adaptée aux limitations fonctionnelles. Confirmant l'abattement de 15 % sur le salaire statistique que l'office AI avait pris en compte, elle a réduit le salaire d'invalide de 41'742 fr. à 29'149 fr., si bien que la comparaison des revenus a mis en évidence une perte de gain de 48 %. En conséquence, les premiers juges ont admis partiellement le recours et reconnu à l'assuré le droit à un quart de rente d'invalidité à partir du 1 er novembre 2009, par jugement du 7 décembre 2012.
C.
L'office AI interjette un recours en matière de droit public contre ce jugement dont il demande l'annulation, en concluant à la confirmation de sa décision du 1 er juillet 2011.
B._ interjette également un recours en matière de droit public contre ce jugement dont il demande la réforme, en concluant principalement à l'octroi d'une demi-rente à compter du 1 er novembre 2009, subsidiairement au renvoi de la cause au tribunal cantonal.

Considérant en droit:
1.
Les recours soumis à l'examen du Tribunal fédéral visent le même arrêt cantonal. Ils ont trait à la même affaire et soulèvent des questions juridiques qui leur sont communes (évaluation de l'invalidité). Dans ces conditions, l'économie de la procédure justifie que les causes 9C_83/2013 et 9C_104/2013 soient jointes pour être traitées dans un seul et même arrêt (arrêt 9C_400/2012 du 4 avril 2013 consid. 1).
2.
Le litige porte sur le taux d'invalidité de l'assuré, singulièrement sur l'étendue de la capacité de travail exigible et le revenu d'invalide.
3.
Les premiers juges ont exposé correctement les règles applicables à la solution du litige, si bien qu'il suffit de renvoyer au jugement attaqué.
4.
4.1. Les juges cantonaux ont constaté que l'office AI avait diligenté deux stages d'observation professionnelle afin de dissiper l'incertitude qui existait quant à la capacité de travail de l'assuré. Ils ont constaté que le docteur M._ avait tenu compte des plaintes de l'assuré relatives à ses douleurs et à la fatigue, ces deux facteurs le contraignant à écourter sa journée de travail. En outre, le docteur M._ avait attesté que les absences de l'assuré durant le stage ne permettaient pas d'affirmer que les rendements observés étaient susceptibles d'être produits pendant la journée entière. Des observations comparables étaient consignées dans le rapport établi par les responsables du centre Z._.
A la lumière des avis du COPAI et du centre Z._, les premiers juges ont considéré qu'en fixant une capacité de travail entière dans une activité adaptée, assortie d'une diminution de rendement de 20 %, l'office AI avait ignoré les observations effectuées durant les stages. Ils ont considéré que la capacité de travail fixée à 80 % était nettement surévaluée, de sorte qu'il convenait de la pondérer en tenant compte du rendement moyen observé au cours des stages effectués, soit 70 %. En conséquence, une capacité de travail de 80 % avec un rendement de 70 % correspondait à un rendement global de 56 % (consid. 4c du jugement attaqué).
4.2. L'office AI rappelle que la tâche du médecin consiste à porter un jugement sur l'état de santé et à indiquer dans quelle mesure et pour quelles activités l'assuré est incapable de travailler. Les données médicales permettent généralement une appréciation objective du cas. Elles l'emportent sur les constatations qui peuvent être faites à l'occasion d'un stage d'observation professionnelle et qui sont susceptibles d'être influencées par des éléments subjectifs liés au comportement de l'assuré pendant le stage. Les informations recueillies par les organes d'observation professionnelle ont pour fonction de compléter les données médicales en examinant concrètement la mesure dans laquelle l'assuré est à même de mettre en valeur une capacité de travail et de gain sur le marché du travail. Lorsque ces appréciations divergent sensiblement, il incombe à l'administration, respectivement au juge, de requérir un complément d'instruction.
En l'espèce, l'office AI fait grief à la juridiction cantonale de ne pas avoir confronté et discuté les divergences existant entre les évaluations médicales et professionnelles, mais d'avoir simplement combiné ces deux évaluations pour en établir une troisième qui est celle qu'elle a finalement retenue. Pareil procédé lui semble insoutenable, d'autant que les observations professionnelles dont l'assuré a fait l'objet ont été biaisées par les éléments subjectifs résultant de son comportement. En se référant au rapport du docteur M._ (du 25 mai 2010), l'office AI relève que l'assuré a tronqué l'observation notamment par son manque de motivation, en tirant les rendements vers le bas.
4.3. Compte tenu de son pouvoir d'examen restreint, il n'appartient pas au Tribunal fédéral de procéder une nouvelle fois à l'appréciation des preuves administrées. En revanche, il incombait à l'office AI d'établir en quoi la juridiction cantonale aurait mal administré et apprécié les preuves (cf. art. 61 let. c LPGA), en constatant de manière manifestement inexacte ou en violation du droit que la capacité de travail de l'assuré, dans une activité adaptée, serait sensiblement inférieure à celle que les médecins du Centre Y._ ont retenue, dans une mesure influant le revenu d'invalide et par voie de conséquence le taux d'invalidité.
En l'espèce, après avoir pris connaissance de l'avis du Centre Y._, l'office AI a ordonné successivement deux stages d'observation professionnelle, l'un auprès du COPAI de V._, l'autre après du centre Z._. Dès lors que l'office AI entend s'écarter des conclusions de ces deux centres d'observation pour le seul motif que leurs appréciations ne sauraient supplanter celle du Centre Y._, on peut raisonnablement s'interroger sur la finalité ou l'utilité de la mise en oeuvre de pareilles mesures d'instruction. Quoi qu'il en soit, dans la mesure où les appréciations de la capacité de travail de l'assuré divergeaient sensiblement sur la question du rendement exigible, il aurait appartenu à l'office AI de compléter ses investigations, ce qu'il semble au demeurant avoir envisagé (cf. note interne du 27 janvier 2011). L'office AI a pourtant préféré statuer en l'état, sans aborder (dans le projet de décision et dans la décision elle-même) la question de la diminution du rendement que le COPAI et le centre Z._ avaient mise en exergue.
Contrairement à l'office AI, les juges cantonaux ont procédé à une analyse globale de la situation, laquelle tenait compte aussi bien des conclusions du Centre Y._ que de celles des deux centres d'observation professionnelle. Les premiers juges ont ainsi admis que les douleurs et la fatigue, mises en évidence lors des stages, devaient être prises en considération et justifiaient le rendement réduit. Bien que cette appréciation puisse donner lieu à discussion, l'office AI n'est toutefois pas parvenu à démontrer en quoi elle présenterait un caractère insoutenable au point de devoir annuler le jugement attaqué. Il s'ensuit que la cause doit être jugée en fonction de la capacité de travail de 56 % établie par l'autorité précédente (<ref-law>), si bien que recours de l'office AI est infondé.
5.
5.1. Le revenu d'invalide de l'assuré a été établi sur la base des statistiques salariales de l'Enquête suisse sur la structure des salaires. A cette occasion, l'office AI et les juges cantonaux ont appliqué un facteur d'abattement de 15 % (cf. <ref-ruling>).
5.2. Le discours de l'assuré consiste essentiellement à remettre en cause le bien-fondé de l'abattement de 15 %. Il revendique la prise en considération d'un facteur de 25 %, soit le taux maximal admis par la jurisprudence (cf. <ref-ruling> consid. 4.2.3 p. 481).
5.3. Le point de savoir si un coefficient de réduction doit ou non être appliqué au revenu d'invalide, lorsque ce dernier a été établi sur la base de statistiques de l'Enquête suisse sur la structure des salaires, constitue une question de droit que le Tribunal fédéral peut revoir librement. L'étendue de l'abattement (justifié dans un cas concret), qui constitue une question typique relevant du pouvoir d'appréciation, échappe au pouvoir d'examen du Tribunal fédéral (art. 95 et 97 LTF). Demeure réservé le cas où le recourant fait grief à la juridiction de recours de première instance d'avoir exercé son pouvoir d'appréciation de manière abusive, donc contraire au droit, par un excès positif (Ermessensüberschreitung) ou négatif (Ermessensunterschreitung) de ce pouvoir (voir par ex. arrêt 9C_134/2012 du 12 juillet 2012 consid. 2.2 et les références).
Dans son cas, l'assuré ne démontre pas en quoi les juges cantonaux auraient violé le droit fédéral (<ref-law>), par un abus ou un excès (positif ou négatif) de leur pouvoir d'appréciation, en confirmant l'abattement de 15 % fixé par l'office AI, au lieu des 25 % qu'il revendique. Bien davantage, par l'argumentaire qu'il développe, il s'en prend à l'opportunité de la décision qu'il conteste, ce qui ne lui est d'aucun secours. Son recours est ainsi infondé.
6.
Vu l'issue des recours, les frais de la procédure seront mis à la charge des parties qui succombent, à parts égales entre elles (<ref-law>).
Invité à répondre à la requête d'effet suspensif au recours présentée par l'office AI, l'assuré ne s'est pas déterminé. Pour le surplus, aucun échange d'écritures n'ayant été ordonné, il n'y a pas lieu de lui allouer des dépens (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce:
1.
Les causes 9C_83/2013 et 9C_104/2013 sont jointes.
2.
Les recours sont rejetés.
3.
Les frais judiciaires, arrêtés à 1'600 fr., sont mis à la charge des parties, à raison de 800 fr. chacune.
4.
Il n'est pas alloué de dépens.
5.
Le présent arrêt est communiqué aux parties, au Tribunal cantonal du canton de Vaud, Cour des assurances sociales, et à l'Office fédéral des assurances sociales.
Lucerne, le 9 juillet 2013
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
Le Président: Kernen
Le Greffier: Berthoud