I THOUGHT that two jobs that run sequentially were supposed to use the same runner for efficiency, but part of the git checkout integration, post-action is to remove what was checked out, so this doesn't work on GitHub runners. We'd been using our Self Hosted runners which give us a lot more control on lifetime of disk objects of course. I ran into this recently again search engine went right here, so I expect more people will end up here. For questions like this I'd recommend writing in to GitHub Support in future! □ This repository is intended for issues specific to the actions/checkout action and not for help on using it in the greater scope of GitHub Actions. Though for your specific use case I'd recommend looking at the syntax for the on statement, as it will allow you to trigger a workflow with a filter on a specific path, or type of file: This will allow you to pass files/folders between different jobs: If you need to persist data across different jobs you may want have a look at using the artifact upload and download actions. You can have multiple steps for each job, and the environment will remain across steps, but you aren't able to persist the environment entirely across separate jobs. Own remote ccache hosted on GCS.Each job runs in a fresh version of the virtual environment, so you'd need to checkout for each job. Re: actions/checkout#1186 discovered that the checkout action could stall for a Skip-ci: Windows builds don't run on presubmit Restoring and saving the cache (actual cached build time is The main wins are inĪvoiding tons of complexity futzing with cache compression levels and Overall this seems like a marked improvement. Tragically, most of the time in all of these jobs is spent justĬhecking out the repository and submodules (see Other than if you happen to look at the UI). Where fetching the cache just times out entirely (with no alerting That ran on a docs-only change (so should've had a maximally populatedĬache), which took 20m, 7m of which was the build step, 2m of which wasįetching the cache, and 1m of which was saving the cache. 79% of compiler calls were cacheable and of those 99% With a now populated cache took 14m total, 6.5m of which was in theīuild step. This includes writing the remote cache (minor overhead). With an empty cache took 28m total, 15.5m of which was in the build Ran on this PR (hacked the workflow a bit). Postsubmit anyway) and don't need artifact storage (which we'd need on Luckily, for these builds we're generally doingĮverything in one job and just want caching (which we only write on Self-hosted runners except that we have to do GCS auth through serviceĪccount keys, unfortunately, which means that access is restricted to We have found the GitHub actions built-in caching mechanism to beĮxtremely limiting: slow, small, and buggy. Re: #1186 discovered that the checkout action could stall for a * Improve checkout performance on Windows runners by upgrading dependency How is it even possible that a sleep for 15 seconds takes almost double the time? This was done with a simple run: Start-Sleep -Seconds 15. The simple sleep-task on regular runner uses twice the time of the sleep interval. The post checkout (cleanup) is on average 15 times slower as on regular runner, and all the time also goes before any cleanup is started: Findings: Finding 1:Įvery single checkout on the large runners is at least twice as slow as on regular runner, and all the times goes before the actual checkout starts: ℹ️ The last row is median and not average, so that any single slow run should interfere with the result. Large runners use 15 times more time (between 46 and 49 seconds).Large runners use more than twice the time (between 47 and 51 seconds).The jobs executed 10 times, and shows that: In addition to checkout the job has only one other step, and that is to sleep for 15 seconds. Reduced wait time between entering the checkout action and git actually This pull request attempts to update the version of in the checkout action to avoid importing 'windows-release'.īased on testing in my own repositories, I can see an improvement in 'windows-release' was package dropped its dependency on 'os-name' inĪllows users to move away from the old 'universal-user-agent' v4. Then I studied the dependency chain to figure out where Invocations made from 'windows-release' npm package to complete. Re: actions#1186 discovered that the checkout action could stall for aĬonsiderable amount of time on Windows runners waiting for PowerShell
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |