{"id":78252,"date":"2024-06-03T09:45:06","date_gmt":"2024-06-03T16:45:06","guid":{"rendered":"https:\/\/github.blog\/?p=78252"},"modified":"2024-07-23T06:09:35","modified_gmt":"2024-07-23T13:09:35","slug":"how-github-reduced-testing-time-for-ios-apps-with-new-runner-features","status":"publish","type":"post","link":"https:\/\/github.blog\/engineering\/infrastructure\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\/","title":{"rendered":"How GitHub reduced testing time for iOS apps with new runner features"},"content":{"rendered":"<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/REC-html40\/loose.dtd\">\n<html><body><h2 id=\"github-actions-%f0%9f%a4%9d-github-for-ios\" id=\"github-actions-%f0%9f%a4%9d-github-for-ios\" ><a class=\"heading-link\" href=\"#github-actions-%f0%9f%a4%9d-github-for-ios\">GitHub Actions &#129309; GitHub for iOS<span class=\"heading-hash pl-2 text-italic text-bold\" aria-hidden=\"true\"><\/span><\/a><\/h2>\n<p>The GitHub iOS and GitHub Actions macOS runner teams are integral parts of each other&rsquo;s development inner loop. Each team partners on testing new runner images and hardware long before the features land in the hands of developers. GitHub Actions has been working hard at bringing the latest Mac hardware to the community. Apple silicon (M1) macOS runners are available for free in public repositories, along with larger options available for those jobs that need more performance.<\/p>\n<div class=\"mod-vh position-relative\" style=\"height: 0; padding-bottom: calc((9 \/ 16)*100%);\">\n\t\t\t<iframe loading=\"lazy\" class=\"position-absolute top-0 left-0 width-full height-full\" src=\"https:\/\/www.youtube.com\/embed\/I2J2MzKjcqY?version=3&amp;rel=1&amp;showsearch=0&amp;showinfo=1&amp;iv_load_policy=1&amp;fs=1&amp;hl=en-US&amp;autohide=2&amp;wmode=transparent\" title=\"YouTube video player\" allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\" frameborder=\"0\"><\/iframe>\n\t\t<\/div>\n<p>The GitHub iOS team has been busy improving the user experience in the app, recently shipping such as <a href=\"https:\/\/github.blog\/2024-05-07-github-copilot-chat-in-github-mobile\/\">GitHub Copilot Chat<\/a>, code search, localization for German and Korean, and making it easier to work with issues and projects. In this blog, we will discuss how the GitHub iOS team brings the app to developers around the world, the benefits of Apple silicon, and building on GitHub Actions using macOS runners.<\/p>\n<h2 id=\"how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\" id=\"how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\" ><a class=\"heading-link\" href=\"#how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\">How GitHub reduced testing time for iOS apps with new runner features<span class=\"heading-hash pl-2 text-italic text-bold\" aria-hidden=\"true\"><\/span><\/a><\/h2>\n<p>The GitHub iOS team previously used a single workflow with one job to build and test the entire codebase on GitHub Actions that took 38 minutes to complete with the prior generation runners. The GitHub iOS app consists of about 60 first-party modules, consisting of various targets, such as dynamic frameworks, static libraries, app extensions, or the GitHub app itself. These modules range from networking layers to design system components to entire features or products, helping us maintain the app.<\/p>\n<h3 id=\"breaking-down-the-monolith\" id=\"breaking-down-the-monolith\" ><a class=\"heading-link\" href=\"#breaking-down-the-monolith\">Breaking down the monolith<span class=\"heading-hash pl-2 text-italic text-bold\" aria-hidden=\"true\"><\/span><\/a><\/h3>\n<p>We decided to leverage the power of Apple silicon to speed up their testing process. We switched to M1 macOS runners (macos-14-xlarge YAML label) on GitHub Actions and split their test suite into separate jobs for each module. This way, they could build and test each module independently and get faster feedback. Some of the smallest modules completed their tests in <strong>as little as 2-3 minutes<\/strong> on M1 macOS runners, getting feedback to developers on their pull requests faster than ever before. This also made it easier to identify and fix failures on specific modules without waiting for a monolithic build to finish.<\/p>\n<p>By using Apple silicon, we <strong>reduced their testing time by 60%, from 38 minutes to 15 minutes,<\/strong> and improved our productivity and efficiency. The figure below demonstrates how we broke down the monolith into small modules in order to improve our build times.<\/p>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" loading=\"lazy\" src=\"https:\/\/github.blog\/wp-content\/uploads\/2024\/05\/image2_1be7aa.png?w=1024&#038;resize=1024%2C662\" alt=\"Image demonstrates the monolith build on tip with the total CI time. The Image below it demonstrates how per-module builds are crafted and the reduction in CI time with the new approach.\" width=\"1024\" height=\"662\" class=\"aligncenter size-large wp-image-78253 width-fit\" srcset=\"https:\/\/github.blog\/wp-content\/uploads\/2024\/05\/image2_1be7aa.png?w=1999 1999w, https:\/\/github.blog\/wp-content\/uploads\/2024\/05\/image2_1be7aa.png?w=300 300w, https:\/\/github.blog\/wp-content\/uploads\/2024\/05\/image2_1be7aa.png?w=768 768w, https:\/\/github.blog\/wp-content\/uploads\/2024\/05\/image2_1be7aa.png?w=1024 1024w, https:\/\/github.blog\/wp-content\/uploads\/2024\/05\/image2_1be7aa.png?w=1536 1536w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/p>\n<p>As each build is kicked off, GitHub Actions is behind the scenes preparing the required number of machines to execute the workflow. Each request is sent to the GitHub Actions service where it picks up a freshly reimaged virtual machine to execute the required number of jobs. The figure below shows how a request travels from our repository to the Actions Mac servers in Azure.<\/p>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" loading=\"lazy\" src=\"https:\/\/github.blog\/wp-content\/uploads\/2024\/05\/image1.png?w=1024&#038;resize=1024%2C408\" alt=\"Image displays the relationship between the request for workflow to run and how a machine is assigned to a job. From left to right, the flow starts at GitHub.com, then the request is sent to Actions. Actions then finds the available macOS VM to execute the workflow.\" width=\"1024\" height=\"408\" class=\"aligncenter size-large wp-image-78254 width-fit\" srcset=\"https:\/\/github.blog\/wp-content\/uploads\/2024\/05\/image1.png?w=1191 1191w, https:\/\/github.blog\/wp-content\/uploads\/2024\/05\/image1.png?w=300 300w, https:\/\/github.blog\/wp-content\/uploads\/2024\/05\/image1.png?w=768 768w, https:\/\/github.blog\/wp-content\/uploads\/2024\/05\/image1.png?w=1024 1024w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/p>\n<p>With shorter build times and a scaling CI fleet, Apple silicon hosts allowed the GitHub iOS team to scale their jobs out across many shorter, faster steps, with GitHub Actions abstracting over the complexity of distributing CI jobs.<\/p>\n<h3 id=\"analyzing-ci-performance\" id=\"analyzing-ci-performance\" ><a class=\"heading-link\" href=\"#analyzing-ci-performance\">Analyzing CI performance<span class=\"heading-hash pl-2 text-italic text-bold\" aria-hidden=\"true\"><\/span><\/a><\/h3>\n<p>We further investigated the CI performance and divided each module&rsquo;s CI into two separate steps, build and test, using xcodebuild&rsquo;s build-without-testing and test-without-building. This helped us identify unit tests that ran for a long time or highlighted fast unit tests that finished in seconds.<\/p>\n<h3 id=\"native-development-and-test-environments\" id=\"native-development-and-test-environments\" ><a class=\"heading-link\" href=\"#native-development-and-test-environments\">Native development and test environments<span class=\"heading-hash pl-2 text-italic text-bold\" aria-hidden=\"true\"><\/span><\/a><\/h3>\n<p>With Apple silicon powering GitHub Actions runners and the developers&rsquo; laptops, our CI now had the same architecture as local development machines. Engineers could identify patterns that took a long time to compile or tests that failed due to the architecture from CI and fix them locally with confidence.<\/p>\n<h2 id=\"benefits-of-apple-silicon\" id=\"benefits-of-apple-silicon\" ><a class=\"heading-link\" href=\"#benefits-of-apple-silicon\">Benefits of Apple silicon<span class=\"heading-hash pl-2 text-italic text-bold\" aria-hidden=\"true\"><\/span><\/a><\/h2>\n<p>Apple silicon improves build performance, increases reliability, and lets iOS teams test natively for all Apple platforms throughout the software development lifecycle. They can avoid problems from cross-compilation or emulation and use the latest simulators on our GitHub Actions runner image. This ensures that their apps work well with the newest versions of iOS, iPadOS, watchOS, and tvOS. Our GitHub Actions M1 macOS runners help iOS teams leverage these benefits and deliver high-quality apps to their users faster and more efficiently. Additionally, GitHub Actions offers 50 concurrent runners for enterprise accounts and five for GitHub Free and Team plans. The GitHub for iOS team takes full advantage of these concurrent runners and initiates 50 jobs for every pull request to perform modular testing on the app in parallel.<\/p>\n<h2 id=\"get-started-building-on-github-actions-using-macos-runners\" id=\"get-started-building-on-github-actions-using-macos-runners\" ><a class=\"heading-link\" href=\"#get-started-building-on-github-actions-using-macos-runners\">Get started building on GitHub Actions using macOS runners<span class=\"heading-hash pl-2 text-italic text-bold\" aria-hidden=\"true\"><\/span><\/a><\/h2>\n<p>GitHub-hosted macOS runners are YAML-driven, meaning they are accessed by updating the <code>runs on:<\/code> key in your workflow file.<\/p>\n<ul>\n<li><a href=\"https:\/\/docs.github.com\/actions\/using-github-hosted-runners\/about-github-hosted-runners\/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories\">Standard GitHub-hosted runners for Public repositories<\/a> <\/li>\n<li><a href=\"https:\/\/docs.github.com\/actions\/using-github-hosted-runners\/about-github-hosted-runners\/about-github-hosted-runners#standard-github-hosted-runners-for-private-repositories\">Standard GitHub-hosted runners for Private repositories<\/a> <\/li>\n<li><a href=\"https:\/\/docs.github.com\/actions\/using-github-hosted-runners\/about-larger-runners\/about-larger-runners#about-macos-larger-runners\">macOS larger runners<\/a> <\/li>\n<\/ul>\n<\/body><\/html>\n","protected":false},"excerpt":{"rendered":"<p>Learn how GitHub used macOS and Apple Silicon runners for GitHub Actions to build, test, and deploy our iOS app faster.<\/p>\n","protected":false},"author":2100,"featured_media":76209,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_gh_post_show_toc":"yes","_gh_post_is_no_robots":"no","_gh_post_is_featured":"yes","_gh_post_is_excluded":"no","_gh_post_is_unlisted":"no","_gh_post_related_link_1":"","_gh_post_related_link_2":"","_gh_post_related_link_3":"","_gh_post_sq_img":"","_gh_post_sq_img_id":"","_gh_post_cta_title":"","_gh_post_cta_text":"","_gh_post_cta_link":"","_gh_post_cta_button":"Click Here to Learn More","_gh_post_recirc_hide":"no","_gh_post_recirc_col_1":"gh-auto-select","_gh_post_recirc_col_2":"77524","_gh_post_recirc_col_3":"65303","_gh_post_recirc_col_4":"65316","_featured_video":"","_gh_post_additional_query_params":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"{title}\n\n{excerpt}\n\n{url}","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":false,"_links_to":"","_links_to_target":""},"categories":[72,3309],"tags":[122,1845,2944],"coauthors":[2985,2475],"class_list":["post-78252","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engineering","category-infrastructure","tag-github-actions","tag-github-mobile","tag-how-github-builds-github"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.6 (Yoast SEO v28.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How GitHub reduced testing time for iOS apps with new runner features - The GitHub Blog<\/title>\n<meta name=\"description\" content=\"Learn how GitHub used macOS and Apple Silicon runners for GitHub Actions to build, test, and deploy our iOS app faster.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/github.blog\/engineering\/infrastructure\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How GitHub reduced testing time for iOS apps with new runner features\" \/>\n<meta property=\"og:description\" content=\"Learn how GitHub used macOS and Apple Silicon runners for GitHub Actions to build, test, and deploy our iOS app faster.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/github.blog\/engineering\/infrastructure\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\/\" \/>\n<meta property=\"og:site_name\" content=\"The GitHub Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-06-03T16:45:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-23T13:09:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/github.blog\/wp-content\/uploads\/2024\/01\/Productivity-DarkMode-3.png?fit=1200%2C630\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Eli Perkins\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Eli Perkins\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/github.blog\\\/engineering\\\/infrastructure\\\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/github.blog\\\/engineering\\\/infrastructure\\\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\\\/\"},\"author\":{\"name\":\"Stephen Glass\",\"@id\":\"https:\\\/\\\/github.blog\\\/#\\\/schema\\\/person\\\/62451f2301a5376d0b7a16ce509296a2\"},\"headline\":\"How GitHub reduced testing time for iOS apps with new runner features\",\"datePublished\":\"2024-06-03T16:45:06+00:00\",\"dateModified\":\"2024-07-23T13:09:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/github.blog\\\/engineering\\\/infrastructure\\\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\\\/\"},\"wordCount\":789,\"image\":{\"@id\":\"https:\\\/\\\/github.blog\\\/engineering\\\/infrastructure\\\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/github.blog\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/Productivity-DarkMode-3.png?fit=1200%2C630\",\"keywords\":[\"GitHub Actions\",\"GitHub Mobile\",\"How GitHub builds GitHub\"],\"articleSection\":[\"Engineering\",\"Infrastructure\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/github.blog\\\/engineering\\\/infrastructure\\\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\\\/\",\"url\":\"https:\\\/\\\/github.blog\\\/engineering\\\/infrastructure\\\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\\\/\",\"name\":\"How GitHub reduced testing time for iOS apps with new runner features - The GitHub Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/github.blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/github.blog\\\/engineering\\\/infrastructure\\\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/github.blog\\\/engineering\\\/infrastructure\\\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/github.blog\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/Productivity-DarkMode-3.png?fit=1200%2C630\",\"datePublished\":\"2024-06-03T16:45:06+00:00\",\"dateModified\":\"2024-07-23T13:09:35+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/github.blog\\\/#\\\/schema\\\/person\\\/62451f2301a5376d0b7a16ce509296a2\"},\"description\":\"Learn how GitHub used macOS and Apple Silicon runners for GitHub Actions to build, test, and deploy our iOS app faster.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/github.blog\\\/engineering\\\/infrastructure\\\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/github.blog\\\/engineering\\\/infrastructure\\\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/github.blog\\\/engineering\\\/infrastructure\\\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\\\/#primaryimage\",\"url\":\"https:\\\/\\\/github.blog\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/Productivity-DarkMode-3.png?fit=1200%2C630\",\"contentUrl\":\"https:\\\/\\\/github.blog\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/Productivity-DarkMode-3.png?fit=1200%2C630\",\"width\":1200,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/github.blog\\\/engineering\\\/infrastructure\\\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/github.blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Engineering\",\"item\":\"https:\\\/\\\/github.blog\\\/engineering\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Infrastructure\",\"item\":\"https:\\\/\\\/github.blog\\\/engineering\\\/infrastructure\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"How GitHub reduced testing time for iOS apps with new runner features\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/github.blog\\\/#website\",\"url\":\"https:\\\/\\\/github.blog\\\/\",\"name\":\"The GitHub Blog\",\"description\":\"Updates, ideas, and inspiration from GitHub to help developers build and design software.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/github.blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/github.blog\\\/#\\\/schema\\\/person\\\/62451f2301a5376d0b7a16ce509296a2\",\"name\":\"Stephen Glass\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8d5b1046519d748cf0fc44adab9c6ce933ad3afe9d5ac151ea1319c4d32f955d?s=96&d=mm&r=g2ea9bf40fdd09d5dc683ac0440441bb4\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8d5b1046519d748cf0fc44adab9c6ce933ad3afe9d5ac151ea1319c4d32f955d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8d5b1046519d748cf0fc44adab9c6ce933ad3afe9d5ac151ea1319c4d32f955d?s=96&d=mm&r=g\",\"caption\":\"Stephen Glass\"},\"description\":\"Senior Product Manager\",\"jobTitle\":\"Senior Product Manager\",\"url\":\"https:\\\/\\\/github.blog\\\/author\\\/steveglass-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How GitHub reduced testing time for iOS apps with new runner features - The GitHub Blog","description":"Learn how GitHub used macOS and Apple Silicon runners for GitHub Actions to build, test, and deploy our iOS app faster.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/github.blog\/engineering\/infrastructure\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\/","og_locale":"en_US","og_type":"article","og_title":"How GitHub reduced testing time for iOS apps with new runner features","og_description":"Learn how GitHub used macOS and Apple Silicon runners for GitHub Actions to build, test, and deploy our iOS app faster.","og_url":"https:\/\/github.blog\/engineering\/infrastructure\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\/","og_site_name":"The GitHub Blog","article_published_time":"2024-06-03T16:45:06+00:00","article_modified_time":"2024-07-23T13:09:35+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/github.blog\/wp-content\/uploads\/2024\/01\/Productivity-DarkMode-3.png?fit=1200%2C630","type":"image\/png"}],"author":"Eli Perkins","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Eli Perkins","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/github.blog\/engineering\/infrastructure\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\/#article","isPartOf":{"@id":"https:\/\/github.blog\/engineering\/infrastructure\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\/"},"author":{"name":"Stephen Glass","@id":"https:\/\/github.blog\/#\/schema\/person\/62451f2301a5376d0b7a16ce509296a2"},"headline":"How GitHub reduced testing time for iOS apps with new runner features","datePublished":"2024-06-03T16:45:06+00:00","dateModified":"2024-07-23T13:09:35+00:00","mainEntityOfPage":{"@id":"https:\/\/github.blog\/engineering\/infrastructure\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\/"},"wordCount":789,"image":{"@id":"https:\/\/github.blog\/engineering\/infrastructure\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\/#primaryimage"},"thumbnailUrl":"https:\/\/github.blog\/wp-content\/uploads\/2024\/01\/Productivity-DarkMode-3.png?fit=1200%2C630","keywords":["GitHub Actions","GitHub Mobile","How GitHub builds GitHub"],"articleSection":["Engineering","Infrastructure"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/github.blog\/engineering\/infrastructure\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\/","url":"https:\/\/github.blog\/engineering\/infrastructure\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\/","name":"How GitHub reduced testing time for iOS apps with new runner features - The GitHub Blog","isPartOf":{"@id":"https:\/\/github.blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/github.blog\/engineering\/infrastructure\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\/#primaryimage"},"image":{"@id":"https:\/\/github.blog\/engineering\/infrastructure\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\/#primaryimage"},"thumbnailUrl":"https:\/\/github.blog\/wp-content\/uploads\/2024\/01\/Productivity-DarkMode-3.png?fit=1200%2C630","datePublished":"2024-06-03T16:45:06+00:00","dateModified":"2024-07-23T13:09:35+00:00","author":{"@id":"https:\/\/github.blog\/#\/schema\/person\/62451f2301a5376d0b7a16ce509296a2"},"description":"Learn how GitHub used macOS and Apple Silicon runners for GitHub Actions to build, test, and deploy our iOS app faster.","breadcrumb":{"@id":"https:\/\/github.blog\/engineering\/infrastructure\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/github.blog\/engineering\/infrastructure\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/github.blog\/engineering\/infrastructure\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\/#primaryimage","url":"https:\/\/github.blog\/wp-content\/uploads\/2024\/01\/Productivity-DarkMode-3.png?fit=1200%2C630","contentUrl":"https:\/\/github.blog\/wp-content\/uploads\/2024\/01\/Productivity-DarkMode-3.png?fit=1200%2C630","width":1200,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/github.blog\/engineering\/infrastructure\/how-github-reduced-testing-time-for-ios-apps-with-new-runner-features\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/github.blog\/"},{"@type":"ListItem","position":2,"name":"Engineering","item":"https:\/\/github.blog\/engineering\/"},{"@type":"ListItem","position":3,"name":"Infrastructure","item":"https:\/\/github.blog\/engineering\/infrastructure\/"},{"@type":"ListItem","position":4,"name":"How GitHub reduced testing time for iOS apps with new runner features"}]},{"@type":"WebSite","@id":"https:\/\/github.blog\/#website","url":"https:\/\/github.blog\/","name":"The GitHub Blog","description":"Updates, ideas, and inspiration from GitHub to help developers build and design software.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/github.blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/github.blog\/#\/schema\/person\/62451f2301a5376d0b7a16ce509296a2","name":"Stephen Glass","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/8d5b1046519d748cf0fc44adab9c6ce933ad3afe9d5ac151ea1319c4d32f955d?s=96&d=mm&r=g2ea9bf40fdd09d5dc683ac0440441bb4","url":"https:\/\/secure.gravatar.com\/avatar\/8d5b1046519d748cf0fc44adab9c6ce933ad3afe9d5ac151ea1319c4d32f955d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8d5b1046519d748cf0fc44adab9c6ce933ad3afe9d5ac151ea1319c4d32f955d?s=96&d=mm&r=g","caption":"Stephen Glass"},"description":"Senior Product Manager","jobTitle":"Senior Product Manager","url":"https:\/\/github.blog\/author\/steveglass-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2\/"}]}},"jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/pamS32-km8","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/github.blog\/wp-content\/uploads\/2024\/01\/Productivity-DarkMode-3.png?fit=1200%2C630","_links":{"self":[{"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/posts\/78252","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/users\/2100"}],"replies":[{"embeddable":true,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/comments?post=78252"}],"version-history":[{"count":4,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/posts\/78252\/revisions"}],"predecessor-version":[{"id":78256,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/posts\/78252\/revisions\/78256"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/media\/76209"}],"wp:attachment":[{"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/media?parent=78252"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/categories?post=78252"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/tags?post=78252"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/coauthors?post=78252"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}