{"id":3677,"date":"2025-07-28T22:50:45","date_gmt":"2025-07-29T02:50:45","guid":{"rendered":"https:\/\/canada.wordcamp.org\/2025\/?post_type=wcb_session&#038;p=3677"},"modified":"2025-09-15T21:21:35","modified_gmt":"2025-09-16T01:21:35","slug":"automating-quality-inside-an-agencys-devops-pipeline-for-wordpress","status":"publish","type":"wcb_session","link":"https:\/\/canada.wordcamp.org\/2025\/session\/automating-quality-inside-an-agencys-devops-pipeline-for-wordpress\/","title":{"rendered":"Automating Quality: Inside an Agency\u2019s DevOps Pipeline for WordPress"},"content":{"rendered":"\n<p>Tired of manually deploying WordPress code? Wondering how to safely update plugins\u2014community or premium\u2014without crossing your fingers? Want your site to actually pass QA before hitting production?<\/p>\n\n\n\n<p>Join Kanopi Studios as we walk through how we\u2019ve modernized our DevOps pipeline for WordPress projects\u2014using Composer, CircleCI, and automated testing to save time, reduce errors, and deploy with confidence. We\u2019ll share real-world examples, config tips, and open-source tooling you can use right away. Whether you&#8217;re a solo dev or on a team, this session will help you ditch manual deployments and take control of your WordPress workflows.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Learn to modernize WordPress DevOps with Composer, CircleCI, and automated testing. Streamline deployments and boost confidence in your workflow.<\/p>\n","protected":false},"author":23312497,"featured_media":0,"template":"","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"_wcpt_session_time":1760623200,"_wcpt_session_duration":2700,"_wcpt_session_type":"session","_wcpt_session_slides":"","_wcpt_session_video":"","_wcpt_speaker_id":[3676],"footnotes":""},"session_track":[125],"session_category":[111],"class_list":["post-3677","wcb_session","type-wcb_session","status-publish","hentry","wcb_track-track-1","wcb_session_category-developers"],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"session_date_time":{"date":"October 16, 2025","time":"10:00 am"},"session_speakers":[{"id":"3676","slug":"paul-sheldrake","name":"Paul Sheldrake","link":"https:\/\/canada.wordcamp.org\/2025\/speaker\/paul-sheldrake\/"}],"session_cats_rendered":"Developers","_links":{"self":[{"href":"https:\/\/canada.wordcamp.org\/2025\/wp-json\/wp\/v2\/sessions\/3677","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/canada.wordcamp.org\/2025\/wp-json\/wp\/v2\/sessions"}],"about":[{"href":"https:\/\/canada.wordcamp.org\/2025\/wp-json\/wp\/v2\/types\/wcb_session"}],"version-history":[{"count":3,"href":"https:\/\/canada.wordcamp.org\/2025\/wp-json\/wp\/v2\/sessions\/3677\/revisions"}],"predecessor-version":[{"id":6238,"href":"https:\/\/canada.wordcamp.org\/2025\/wp-json\/wp\/v2\/sessions\/3677\/revisions\/6238"}],"speakers":[{"embeddable":true,"href":"https:\/\/canada.wordcamp.org\/2025\/wp-json\/wp\/v2\/speakers\/3676"}],"author":[{"embeddable":true,"href":"https:\/\/canada.wordcamp.org\/2025\/wp-json\/wporg\/v1\/users\/paulsheldrake2"}],"wp:attachment":[{"href":"https:\/\/canada.wordcamp.org\/2025\/wp-json\/wp\/v2\/media?parent=3677"}],"wp:term":[{"taxonomy":"wcb_track","embeddable":true,"href":"https:\/\/canada.wordcamp.org\/2025\/wp-json\/wp\/v2\/session_track?post=3677"},{"taxonomy":"wcb_session_category","embeddable":true,"href":"https:\/\/canada.wordcamp.org\/2025\/wp-json\/wp\/v2\/session_category?post=3677"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}