Faits :
A.
A.a. Par ordonnance pénale du 30 juillet 2019, le Ministère public cantonal a déclaré A._ coupable d'infraction et de complicité d'infraction à la loi fédérale sur les stupéfiants, l'a condamné à une peine pécuniaire de 100 jours-amende à 40 fr. le jour, avec sursis pendant quatre ans, et a renoncé à révoquer un précédent sursis.
Cette ordonnance retient qu'à X._, entre le mois d'avril 2018 et le 29 août 2018 à tout le moins, A._ a prêté assistance à B._ dans le cadre de l'important trafic de produits cannabiques, auquel celui-ci s'était livré dans les locaux qu'il louait, notamment en déplaçant et en transportant cette drogue lors de ventes effectuées par B._. Il est également reproché à A._ d'avoir acquis auprès de B._ 200 grammes de marijuana.
A.b. A._ a formé opposition à cette ordonnance le 8 août 2019. Le Ministère public cantonal a maintenu son ordonnance et transmis le dossier au Tribunal de police de l'arrondissement de La Côte en vue des débats.
Par jugement du 7 janvier 2020, confirmé par arrêt du 27 janvier 2020 de la Chambre des recours pénale du Tribunal cantonal vaudois, le Tribunal de police de l'arrondissement de La Côte a retenu que, sans excuse, A._ ne s'était pas présenté à l'audience du 7 janvier 2020, ni ne s'y était fait représenter et a constaté que l'opposition était réputée retirée et que l'ordonnance pénale rendue le 30 juillet 2019 était définitive et exécutoire.
B.
B.a. Par acte du 26 mai 2020, A._ a demandé la révision de l'ordonnance pénale du 30 juillet 2019, en concluant, principalement, à sa réforme en ce sens qu'il est acquitté d'infraction et de complicité d'infraction à la loi fédérale sur les stupéfiants et, subsidiairement, à son annulation et au renvoi de la cause au ministère public pour nouvelle instruction et nouvelle décision.
A l'appui de sa demande de révision, il a produit un témoignage écrit de B._ du 23 mars 2020.
B.b. Par jugement du 2 juin 2020, la Cour d'appel pénale du Tribunal cantonal du canton de Vaud a déclaré irrecevable la demande de révision présentée par A._.
C.
Contre ce jugement cantonal, A._ dépose un recours en matière pénale devant le Tribunal fédéral. Il conclut, principalement, à la réforme du jugement attaqué en ce sens que la demande de révision est admise, que l'ordonnance pénale rendue le 30 juillet 2019 est annulée et qu'il est acquitté de l'infraction et de la complicité d'infraction à la loi fédérale sur les stupéfiants. A titre subsidiaire, il requiert l'annulation du jugement attaqué et le renvoi de la cause à l'autorité cantonale pour nouvelle décision dans le sens des considérants.

Considérant en droit :
1.
1.1. L'<ref-law> permet à toute personne lésée par un jugement entré en force d'en demander la révision s'il existe des faits ou des moyens de preuves qui étaient inconnus de l'autorité inférieure et qui sont de nature à motiver l'acquittement ou une condamnation sensiblement moins sévère du condamné. Les faits ou moyens de preuves invoqués doivent ainsi être nouveaux et sérieux. Les faits ou moyens de preuves sont inconnus lorsque le juge n'en a pas eu connaissance au moment où il s'est prononcé, c'est-à-dire lorsqu'ils ne lui ont pas été soumis sous quelque forme que ce soit (<ref-ruling> consid. 5.1.2 p. 66 s.). Ils sont sérieux lorsqu'ils sont propres à ébranler les constatations de fait sur lesquelles se fonde la condamnation et que l'état de fait ainsi modifié rend possible un jugement sensiblement plus favorable au condamné (<ref-ruling> consid. 1.1 p. 199; <ref-ruling> consid. 5.1.4 p. 68).
La procédure du rescindant instituée par le CPP se déroule, en principe, en deux phases, à savoir un examen préalable de la recevabilité (art. 412 al. 1 et 2 CPP) et un examen des motifs invoqués (art. 412 al. 3 et 4 et 413 CPP). Il s'agit de deux étapes d'une seule et même procédure, pour laquelle la juridiction d'appel est compétente (art. 412 al. 1 et 3 CPP).
Selon l'<ref-law>, la juridiction d'appel n'entre pas en matière sur la demande de révision si celle-ci est manifestement irrecevable ou non motivée ou si une demande de révision invoquant les mêmes motifs a déjà été rejetée par le passé. La procédure de non-entrée en matière selon cette disposition est en principe réservée à des vices de nature formelle (par exemple le défaut de la qualité pour recourir, le caractère non définitif du jugement entrepris, etc.). Il est néanmoins loisible à la juridiction d'appel de refuser d'entrer en matière si les motifs de révision invoqués apparaissent d'emblée non vraisemblables ou mal fondés (<ref-ruling> consid. 3.5 p. 129; arrêt 6B_297/2020 du 10 juillet 2020 consid. 1.1.2), ou encore lorsque la demande de révision apparaît abusive (arrêt 6B_297/2020 précité consid. 1.1.2 et les références citées). Le refus d'entrer en matière s'impose alors pour des motifs d'économie de procédure, car si la situation est évidente, il n'y a pas de raison que l'autorité requière des déterminations (<ref-law>) pour ensuite rejeter la demande (<ref-law>; arrêt 6B_574/2019 du 9 septembre 2019 consid. 1.2.1).
Les conditions d'une révision visant une ordonnance pénale sont restrictives. L'ordonnance pénale est rendue dans le cadre d'une procédure spéciale. Elle a pour spécificité de contraindre le condamné à prendre position. Une absence de réaction de sa part s'interprète comme un acquiescement. Il doit s'opposer dans le délai prévu à cet effet s'il n'adhère pas à sa condamnation, par exemple parce qu'il entend se prévaloir de faits omis qu'il considère comme importants. Le système serait compromis si, une fois le délai d'opposition échu sans avoir été utilisé, le condamné pouvait revenir sur l'acquiescement ainsi donné et demander selon son bon vouloir la révision de l'ordonnance pénale pour des faits qu'il aurait déjà pu faire valoir dans une procédure ordinaire en manifestant son opposition. Il s'ensuit qu'une demande de révision dirigée contre une ordonnance pénale doit être qualifiée d'abusive si elle repose sur des faits que le condamné connaissait initialement, qu'il n'avait aucune raison légitime de taire et qu'il aurait pu révéler dans une procédure ordinaire mise en oeuvre par une simple opposition. En revanche, une révision peut entrer en considération à l'égard d'une ordonnance pénale pour des faits et des moyens de preuve importants que le condamné ne connaissait pas au moment du prononcé de l'ordonnance ou dont il ne pouvait pas se prévaloir ou n'avait pas de raisons de se prévaloir à cette époque (<ref-ruling> consid. 1.1 p. 199; <ref-ruling> consid. 2.3 p. 75 s.; arrêt 6B_1061/2019 du 28 mai 2020 consid. 3.3).
L'abus de droit ne sera cependant admis qu'avec retenue. Il s'agit, dans chaque cas d'examiner, au regard des circonstances de l'espèce, si la demande tend à contourner les voies de droit ordinaires (<ref-ruling> consid. 1.1 p. 199; <ref-ruling> consid. 2.2 p. 74 et consid. 2.4 p. 76; arrêt 6B_1061/2019 précité consid. 3.3).
1.2. Dans un premier grief, le recourant reproche à la cour cantonale d'avoir violé son droit d'être entendu, en rendant une décision lacunaire.
1.2.1. Le droit d'être entendu, tel qu'il est garanti par les art. 29 al. 2 Cst. et 3 al. 2 let. c CPP (cf. aussi art. 6 par. 1 CEDH) implique notamment, pour l'autorité, l'obligation de motiver sa décision, afin que le destinataire puisse la comprendre, l'attaquer utilement s'il y a lieu et afin que l'autorité de recours puisse exercer son contrôle. Le juge doit ainsi mentionner, au moins brièvement, les motifs qui l'ont guidé et sur lesquels il a fondé sa décision, de manière à ce que l'intéressé puisse se rendre compte de la portée de celle-ci et l'attaquer en connaissance de cause (<ref-ruling> consid. 3.4.3 p. 46; <ref-ruling> consid. 2.1 p. 145). Il n'est pas tenu de discuter tous les arguments soulevés par les parties, mais peut se limiter à l'examen des questions décisives pour l'issue du litige (<ref-ruling> consid. 4.2 p. 157; <ref-ruling> consid. 2.2 p. 183). Dès lors que l'on peut discerner les motifs qui ont guidé la décision de l'autorité, le droit à une décision motivée est respecté, même si la motivation présentée est erronée (<ref-ruling> consid. 3.2.1 p. 565).
1.2.2. En l'espèce, la cour cantonale s'est référée aux déclarations du recourant du 22 novembre 2018 à la Police cantonale vaudoise (jugement attaqué p. 6). Elle a exposé que, lors de cette audition, le recourant avait admis avoir transporté "un peu d'herbe", précisant en outre que c'était uniquement pour aider B._ qu'il avait transporté "les stupéfiants" (P. 23/3/2, p. 4, R. 9); il savait d'ailleurs que B._ vendait du shit et de la marijuana, même si celui-ci avait également du CBD (P. 23/3/2, p. 3, R. 7). Au vu de ces déclarations, la cour cantonale a considéré que le témoignage écrit de B._, trafiquant de stupéfiants, était dépourvu de toute crédibilité et n'était pas propre à ébranler les constatations de fait sur lesquelles se fondait la condamnation du recourant.
Contrairement à ce que soutient le recourant, cette motivation permet de comprendre que la demande de révision a été déclarée irrecevable, au motif que le témoignage écrit de B._, produit par le recourant, ne paraissait pas crédible et ne pouvait pas conduire à modifier l'appréciation des preuves à laquelle avait procédé l'autorité précédente. Le grief tiré de la violation du droit d'être entendu doit donc être rejeté.
1.3. Dans un second grief, le recourant fait valoir que le témoignage écrit de B._ est un élément nouveau et sérieux propre à motiver son acquittement. Il conteste que ce témoignage ne soit pas crédible.
1.3.1. En l'espèce, le recourant a été condamné par la procédure de l'ordonnance pénale. A la suite d'une audition du recourant par la police cantonale vaudoise, lors de laquelle celui-ci a admis avoir transporté "un peu d'herbe", le ministère public cantonal a rendu le 27 mars 2019 une première ordonnance pénale condamnant le recourant pour infraction et complicité d'infraction à la LStup. Le recourant ayant fait opposition à cette ordonnance, le ministère public cantonal a entendu le recourant qui a déclaré que les marchandises évoquées lors de ses précédentes déclarations étaient du CBD. Malgré ces nouvelles déclarations, le ministère public cantonal a considéré, au vu des conditions dans lesquelles le recourant avait prêté son concours au trafic de B._ (dans un appartement clandestin dans lequel ce dernier avait installé un système de vidéosurveillance et dans lequel se succédaient les clients), que les substances que le recourant avait déplacées et acquises étaient des substances illicites. En conséquence, il a rendu une nouvelle ordonnance pénale condamnant le recourant pour infraction et complicité d'infraction à la LStup.
1.3.2. Avant de rendre cette seconde ordonnance, le ministère public cantonal aurait pu interroger B._, qui avait été déféré séparément, mais n'a pas jugé utile de le faire. Le recourant ne peut pas critiquer cette décision, qui relève de l'administration des preuves, dans le cadre de la procédure de révision. Il aurait dû le faire lors de la procédure ordinaire ouverte devant le Tribunal de police à la suite de sa seconde opposition. Le recourant a toutefois omis, sans excuse, de se présenter devant le Tribunal de police, de sorte que son opposition a été considérée comme retirée. La Chambre des recours pénale du Tribunal cantonal vaudois a considéré que le recourant ne s'était pas présenté par sa faute. Le recourant ne peut rattraper son erreur procédurale en tentant de rouvrir la procédure par la production d'un témoignage écrit de B._. Dans ces circonstances, la demande de révision du recourant doit être considérée comme abusive et le refus de l'autorité précédente d'entrer en matière sur cette demande ne prête pas le flanc à la critique.
2.
Mal fondé, le recours doit être rejeté.
Le recourant, qui succombe, supportera les frais judiciaires (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais judiciaires, arrêtés à 3'000 fr., sont mis à la charge du recourant.
3.
Le présent arrêt est communiqué aux parties et à la Cour d'appel pénale du Tribunal cantonal du canton de Vaud.
Lausanne, le 12 mai 2021
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
La Présidente : Jacquemoud-Rossari
La Greffière : Kistler Vianin