按此: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 上將社區中最好的人帶到這裡。