按此:WordPress 中的 CI/CD 被忽略以及如何使用 Maciek Palmowski 进行更改

已发表: 2022-02-05

欢迎来到来自 WMR 的 WordPress 社区播客 Press This。 在这里,主持人 David Vogelpohl 与来自社区的客人坐下来讨论 WordPress 开发人员面临的最大问题。 以下是原录音的抄录。

David Vogelpohl:大家好,欢迎来到 WMR 上的 WordPress 社区播客 Press This。 这是您的主持人,David Vogelpohl,我通过我在 WP Engine 的角色来支持 WordPress 社区,我喜欢将最好的社区带给您,每周在新闻上听到这个提醒,您可以在 Twitter @wpdavidv 上找到我,或者您可以在 iTunes、iHeartRadio、Spotify 上订阅按此,或在 wmr.fm 下载最新剧集。 在这一集中,我们将讨论一些我觉得非常令人兴奋的东西,即 CI/CD 和 WordPress,以及它是如何被忽视的,以及我们如何改变它并加入我的对话。 非常了解这个话题的人。 从 buddy.works 加入我们。 我想欢迎 Maciek Palmowski 来按此。 马切克,欢迎。

Maciek Palmowski:嗨,大卫。 谢谢。 谢谢你有我们。

DV:我很高兴有你在这里。 这是我们多年来在新闻界讨论过几次的话题。 当然,美妙的海冰世界总是在变化,每个人都有独特的视角。 我真的很期待这次谈话,那些在听的人。 神奇的是 CICD 的重要性,他对为什么 CI CD 在 WordPress 世界中经常被忽视的想法就像最近一段时间祝福编码人员一样。 当然,采用 CI CD 和 WordPress 实践的一些平易近人的拍卖。 今天我们要在这里介绍很多好东西,我期待着跳入魔术。 我会问你同样的问题,我问过每一位客人,你可能记得在你的 wordpress.org 个人资料中。 但是你能简单地告诉我你的 WordPress 版本的故事吗?

MP:因为我是 WordPress。 PHP 开发者最初是 WordPress 开发者 Leiter。 在我职业生涯的某个阶段,我正在开发自己的 CMS。 我的意思是,几乎每个 PHP 开发人员都有他生命中的这个阶段来创建自己的 CMS。 在某些时候,我意识到很难维持你必须更新所有东西,你必须保持一切正常,而且你必须独自完成。 所以在某个时候,我意识到也许寻找由更多人创造的东西,也许是安装人员创造的东西可能是一件好事。 经过一番测试,我找到了WordPress。 那是从那时起,我一直在使用 WordPress,所以已经超过 10 年了。

DV:所以你是你知道的,这很有趣,我认为我已经接受了 230 次这样的奇怪采访,我不知道是否有人有确切的起源故事,但我非常熟悉很多有些人,包括我的团队和我们的代理机构,我们并不是从一个基于 WordPress CMS 的业务开始的,而是我们自己的自定义业务,后来采用了 WordPress、cake 和 Laravel 之类的东西。 所以我认为,但这真的很有趣。 您是哪一年发现 WordPress 的?

MP:哦,那是很久以前的事了。 我想这是我开始学习超过 46 年,所以真的很长,很长的时间。 前。 就像你说的肯定比我们聪明。

DV:好的,好的。 是的。 2010 年对我来说,当自定义帖子类型和字段被输入或成为核心的一部分时,就像那个关键时刻,我认为它就像一个功能齐全的 CMS,而你不知道,需要大量修改。

MP:我记得我记得这一刻,它真的是革命性的。 因为在此之前,我必须使用帖子和页面,并创建一些自定义帖子类型的变通方法,从而真正改变了一切。

DV:是的,就像您的自定义 CMS。 你可能有你的自定义面孔类型的信用。 所以我们也有。 那是重要的一年。 在那之后,我工作的一家大型 WP Engine 诞生了。 像 10 个网络开发工作室这样的大型机构,还有像 WooCommerce 这样的东西,它们确实是革命性的时代和 WordPress 的历史。 凉爽的。 好吧,我知道我在那里有点独特,而且起源故事非常简洁。 所以我之前在介绍中提到过,我在他们的聆听中提到你知道 buddy dot 有效。 然后你告诉那里的每个人哪个伙伴有效,或者你做什么伙伴做什么。 那里。

MP:所以我认为它是申请 CIC 应用程序,所以它与 GitHub 操作几乎相同,或者 GitLab 操作是所有其他有助于自动化部署的应用程序。 不同的是我们有非常友好的用户界面,所以你尝试用 CAC 开始你的冒险冒险。 例如,在 GitHub 操作中,您必须使用这个 Yamo 文件。 当你开始使用 body 时,你会有一个非常好的 UI,他只是有点类似于获取 Gutenberg,它只是从块创建你的 CI CD 管道。 所以这很容易。 这也是我多年前开始使用它的原因。 我想通过我的开发流程实现自动化,而你不必这样做。

DV:他做了这件事,但甚至在你在那里工作之前,是的,我当然是你的用户事务。那很酷。

MP:是的,我首先是用户。 我可以说我被称为官方大使,因为无论我在哪里工作,我总是试图说服工作的人更换身体,因为它对每个人都很容易使用。 它非常好。 很高兴一年前听到好友的人问我嘿,你愿意为我们工作吗

DV:你在打球时做什么? 你的工作是什么?

MP:我在 Messenger 工作,这意味着我试图让大部分来自 WordPress 空间的人了解 CIC。 如何贡献如何自动化他们的流程,你可以做什么,这要归功于 DevOps 自动化,因为它不仅是从本地服务器部署代码,或者由于服务器从本地主机部署代码,还有很多事情你可以做。 在这两者之间,你可以测试你的代码,你可以我们要买东西。

DV:我们会给你很多机会来分享这个故事。 在我们进入 CI CD 的细节之前,我只是好奇,我假设 Betty 有一些东西可以帮助 WordPress,ci CD,更容易适应。 真的吗? 特定的 WordPress 东西,或者它更通用,它对 WordPress 也有好处

MP:首先,我们有这么多的动作,其中很多都可以与 WordPress 一起以非常简单的方式使用,例如与作曲家 NPM 相关的一切。 所以这些有点笼统,但几乎每个 WordPress 空间的开发人员都在使用,但我们也在做一些具体的操作,例如,现在我们正在为 WordPress 单元测试准备环境。 可能我们还将扩展 PHP 代码嗅探器以将 WordPress WordPress 标准内置到我们的操作中,因此请考虑这样的事情,我们一直在尝试绘制以添加一些新内容。 因此,如果有人想采取新的行动,与我们联系将是一件好事,因为当我们有越来越多的声音表明需要采取某种行动时,我们将创造更大的机会,如果没有,那就非常很容易自己做。 总是有机会以这种方式配置任何操作

DV:你知道你创建了很多团队,PHP 和 WordPress 编码标准、混搭。 听到你在做一些人们可以捡起来就走的事情,从来没有这么棒过。 好吧,好吧,让我们从超高层跳到更多关于 CI CD 内容的细节,因为我们在这里知识渊博,但是你能为那些可能不太熟悉人们如何理解 CI CD 是什么的人提供帮助吗?

MP:是的,所以首先,就像我们知道 CI 一样,CI CD 的 CD 部分与公司无关,甚至说,是的,但 CI CD 代表两件事。 CI 就是持续集成。 并且意味着每次我们更改代码中的内容时,我们都应该运行所有测试,因此我们应该始终确保我们的代码能够持续工作。 所以这是 CI 部分。 然后我们有 CB 部分,这意味着两件事,因为它可能意味着持续开发或持续部署。 持续开发意味着每次我们构建的构建版本准备好发布时,负责发布的人员只需点击总统按钮即可将其上线。 他们继续部署意味着一切都是自动的。 因此,每次有人推动改变时,它都会这样做,并自动部署到生产环境中。

DV:我认为这是人们开始考虑采用 CI CD 的部分,他们只是想象在他们的工作流程中使用这些自动检查可以避免的所有麻烦,我认为这就是你所知道的,吸引了很多人给它。 不过,我很好奇,您对使用 CIC 和您的工作流程的想法有什么想法,以及为什么要打扰或有什么好处,但我希望您能在下一次休息后探索一下在这次休息之后。 是时候插播广告了。 请继续关注更多新闻。 大家好。 欢迎回来在 W EMR 上按此 WordPress 社区播客。 这是您的主持人 David Vogel Paul,它将接受魔术 Lebowski 的采访,让 offski Buddy 在休息前看到 ICD 和 WordPress 魔术,您将分享一点关于 CI CD 是什么的信息。 这是一个非常简洁的解释。 谢谢你。 所以显然 CI CD 可能是一些额外的工作。 我想这绝对是在设置您的工作流程方面的额外工作,甚至可能以某种身份使用您的工作流程。 而且我知道很多人可能会使用 WordPress,而且我想甚至超出了对牛仔或女牛仔编码的热爱,我之前将其称为狂野列表编码。 但是您认为 CI CD 的好处是什么? 就像为什么要在那里打扰那额外的工作?

MP : 对我来说,总是要确保我在某部分代码中的小小改动会中断一些我什至不知道的计数,因为它是由我团队中的其他人完成的。 就像我们应用程序脚本的另一端一样。 这是经常发生的事情,尤其是当我们在更大的团队中构建应用程序时。 我们不知道整个代码,并且确实可能​​发生我们的小改动可能会破坏其他东西,并且由于有工厂所以进行了一些测试,我们可以确定它不会发生或至少会发生。 不像你没有那些测试那样经常。 测试的唯一问题是许多开发人员都知道我们应该测试我们的代码。 总是有问题主要与公司所有者的经理有关。 还有一句名言我们没有时间创建测试,这当然是错误的,因为每次我听到我都没有时间创建测试。 两周后。 我们可能会修复由于缺乏测试而遗漏的东西。 我们正在浪费时间修复我们可以通过提前一两个小时来避免的东西。

DV:所以这有点像从慢到快。 是的,这需要你一点额外的时间,但以后你会节省更多的时间。 不必扑灭火灾和放松是确切的反应。

MP:另外,计划编写测试要容易得多,因为您可以完全控制自己。 您只需要添加这两三个小时来创建测试,作为创建产品或应用程序的一部分,而不是在做其他事情的过程中。 并且在半夜部署的快速修复和类似的东西上编写快速修复,那么当整个世界都在燃烧时做点什么总是更好的,对吧?

DV:是的,工作与生活的平衡、工作质量和危机期间的风向。 这些都是好点。 也有点让我想起那首歌,你知道的,或者它就像 99 或代码 99 小包中的任何小错误,如果那首歌可能很快,大约 107 美元,但现实是,如果你没有测试,你不知道代码中的错误,直到外面有人开始尖叫一个问题,如果你没有发现它,你是是的,

MP:完全没有测试,太阳会很长,代码中存在未定义数量的错误。 这就是问题所在。

DV:还有一首儿歌。 这是一首永不结束的歌。 也许这就是 NCIC 的版本。 好吧,酷。 好吧,我们在这背后的歌曲类比,我们可以在这里更深入地挖掘。 您或您的团队自己的 CAC 堆栈在伙伴之外是什么样的,就像您所说的那样? 我假设,但他在流程中使用自己的堆栈。 但是您认为还有哪些其他工具很重要,尤其是对于 WordPress CAC。

MP:也许以我为例,因为在身体之外,我也在不断地写我的网络服务信。 当然,我正在使用 body 来更新所有内容。 在这种情况下,我使用 Baddeck 例如,使我的网站静态,使用 WP 静态插件将其转换为静态。 我还使用它向 GitHub 发布一两个插件,因为我是更新的忠实粉丝。 因此,我们可以通过多种方式使用它。 就像我说的,不仅仅是为了,为了部署东西。

DV:就像我之前的意思一样,你在下面是 PHP 稳定性 Snipper 和 WordPress 代码质量的例子,这些对我来说很突出,你知道,WordPress CAC 堆栈中的主要项目。 我只是好奇,比如,还有其他你能想到的关键吗?

MP:我的意思是,在大多数情况下,我们称它们为经典,因为 phpcs 是用于单元测试的 PHP 单元。 我也是 Cypress IO 端到端测试的忠实粉丝。 所以是的,那些是哦,当然,我也喜欢,这是内置在身体中的,我们有一个叫做视觉测试的东西。 所以它只是比较部署前后的屏幕,看看我们有没有破坏什么?

DV: WordPress 核心团队主要负责 Jas 的 WordPress 单元测试,诸如此类。

M P:是的,所以我的意思是,在大多数情况下,我更喜欢使用 10 岁以上的 WP mock。 但是,是的,有时我会使用这两个核心单元测试,我的意思是,它们有时很烦人。 我不知道如何设置。 例如,在我的 Windows 计算机上,我总是遇到问题。

DV:所以正如你所说,有时这意味着,在单元测试方面,这是否意味着你有点倾向于编写自己的单元测试? 我猜是这样。 但我只是好奇。

MP:在大多数情况下,像我这样的一些人使用 WP mock,因为它们不需要连接到数据库,并且单元测试不应该连接到那些 WordPress,因为在这种情况下,大型制药公司更经常是集成测试。 书是的,WP模拟。 让我只专注于我必须在插件中检查的内容,而不用担心为测试创建整个环境。 所以要容易得多。 有时我也会使用另一个名为 Brain monkey 的脚本,它有点类似。 所以总的来说,在使用单元测试时,我更喜欢非数据库方法。

DV:这真的很有趣。 当我们就此提出一个附带问题时,您提到了您是如何发现 WordPress 的。 当您制作 WordPress 应用程序时,您是否一直使用 CAC recherches,或者您是否从类似牛仔编码开始并看到 ICD?

MP:当然,我是从牛仔编码开始的。 我不会,不,我可以说更聪明,更纯的,是的,我们通过 FTP 推送所有内容,然后想知道它没有上传哪个文件。 是的。 是的。 所以我就这样开始了,我想和每个人一样,就像在记事本中打开一个文件,试图修复服务器上的问题,只是过了一会儿才发现由于某种原因,文件没有上传,然后我关闭窗口,文件不见了。 所以,是的,有很多很多这样的案例,但在某些时候,我了解到,首先,在本地主机上开发然后转向生产环境要好得多,因为开发人员是懒惰的人,老实说从这种懒惰中产生了许多有趣的发现。 所以我开始学习如何自动化一些流程。 例如,如何帮助您回到这个问题,如何将它部署在服务器上,而不必担心不使用 FileZilla 或类似的东西。 想想结局 是的,我终于找到了,我在这里,

DV:给你。 这真的进入了我们的下一个主题,比如采用、流程和流程,但听到你在那里的动机很有趣。 我会说我认为我认为很多人都很懒惰。 而且我认为效率是一个很大的吸引力,但我们必须在以后遇到问题以及你在危机中的时间和精力来偿还它。 你知道,如果你不小心,懒惰会回来咬你。 所以我认为这是一个非常非常热门的话题。 我们将进行最后一次休息,我们会马上回来的。 是时候插播广告了。 请继续关注更多新闻。 欢迎大家回来按这个。 我们正在讨论 CI CD 在 WordPress 中的重要性,以及我想我们如何在那里获得更多采用和更高的安全性,因为人们正在推动他们的代码上线。 就在休息前。 魔术师谈到了他采用 CAC 和 nuking 文件以及将应用程序彻底烧毁的历史,我猜是因为糟糕的功能发布,比如那种事情。 当然,我去过那里,对,我们可以想象。 所以让我问你这个问题。 就像你之前提到的那样,你认为懒惰是为什么,你知道,也许人们不采用 CI CD。 你认为,我的意思是,显然在 WordPress 世界中存在一些向量。 您是否认为它也与它的技术性质有关,您为什么认为 C ICD 在 WordPress 中经常被忽视?

MP:首先,对于 CIC,第一个最大的问题是开始你的冒险之旅,也就是说你首先必须学习一些关于版本控制的知识吗? 因为如果不了解 Git,您就无法使用眼睛。 当我在不同的 WordCamps 中与一些人交谈时,所有这些走廊谈话都是 Victoire 进行的治理,因为现在我们主要不是在寻找缩放。 我了解到有很多开发人员仍然没有像这样使用任何版本控制。 我不知道为什么。 我的意思是,他们中的大多数人都这么说。 使用 Git 只是让他们的一切都变慢了。 整个开发过程变得更加困难,诸如此类。 老实说,我不明白。 但这是一件有趣的事情。 这是第一步,不仅我们作为主体,而且我认为任何与 CSV 相关的公司都应该开始教育人们为什么他们应该使用版本,因为没有这个,他们想要进入自动化的下一步。 当他们开始使用它时,我认为 C ICD 会变得很自然,尤其是现在我们的开发流程越来越复杂,对,因为现在我们不仅将文件从本地机器推送到服务器,在很多情况下,我们必须从 CSS 构建我们的 CSS。 我们必须压缩我们的 JavaScript,我们必须压缩我们的图像,有时当涉及到无头应用程序路由时,我们必须构建整个应用程序。 因此,在我们将代码推送到生产环境之前,需要做很多事情。 所以真的记得有时候,很多年前,我只是打开记事本写了代码并把它推送到生产中。 仅此而已,现在更难了

DV:是的。 我认为这是一个非常深刻的观点。 关于考虑采用过程和阶段以及版本控制如何成为关键的第一阶段,比采用 CI CD 必须掌握的全部内容更容易接近。 我猜在我们的最后几分钟或最后一分钟。 您还有其他资源可以与那些正在考虑采用 CI CD 的听众分享吗?

MP:我想我会欺骗一个人。 首先,我在这个人之后当然学习了版本控制,因为就像我说的,这是基础,没有它,还有一些机会走得更远。 我会尝试使用 body,因为就像这个图形界面一样。 这很容易。 开始时非常直观,即使经过反复试验也是如此。 但这很容易。 而且我知道我是怎么做到的,并且真正尝试与 Buddy 一起玩只是帮助我了解整个 CIC 计数器,就像我可以看到自己一样强大。 是的,它确实有帮助。 当有人了解基础知识时,它真的很有帮助。 下一步是学习所有关于部署代码的不同方式的单元测试,因为我们可以通过多种方式来实现。 我并不是说使用不同的协议,因为我们不必在我们的内部使用 FTP 或 SFTP Windows arcing,例如,我们可以登录到服务器并从 Git 或任何其他方式下载它。 有很多方法可以做到这一点。 但首先,试着学习基础知识,看看它有多容易。 然后整个测试可以带来的下一部分,它会一步一步来。 最糟糕的事

DV:我发现你之前从 tunap 中引用的东西,比如预先完成的单元测试,并且能够喜欢 riff on,这也是一个很好的桥梁。 这对很多其他人会有帮助。 但这一切都非常酷,非常有趣。 而且我认为,你知道,我当然知道我的份额,甚至有时我自己也在卡尔加里推动了你的制作,得到你的掩护,好吧,无论如何,所以我不得不在其中一些点上更深入地挖掘。 但是当 GQ 非常棒的时候,很高兴今天有你在节目中。

议员:谢谢大卫。 能分享一些关于 CI CD 的想法真的很棒,我真的希望越来越多的人会尝试一下。

DV:太好了。 你想了解更多关于什么是魔法或查看你在 CI/CD 上的旅程,你可以访问 buddy.works。 感谢大家收听在 WMR 上按此 WordPress 社区播客。 这位是您的主持人 David Vogelpohl。 我通过我在 WP Engine 的角色来支持 WordPress 社区。 我喜欢每周在 Press This 上将社区中最好的人带到这里。