actions / checkout

Action for checking out a repo
https://github.com/features/actions
MIT License
5.76k stars 1.7k forks source link

`gecko-dev` checkout takes 10m #818

Open abitrolly opened 2 years ago

abitrolly commented 2 years ago

A checkout of https://github.com/mozilla/gecko-dev repo takes 10m using this step.

      - uses: actions/checkout@v3
        with:
          repository: mozilla/gecko-dev
          path: gecko-dev
          fetch-depth: 0

image

https://github.com/abitrolly/firefox-lang-stats/runs/6713143940?check_suite_focus=true

Is it possible to speed up it somehow? Like through https://docs.github.com/en/rest/repos/contents#download-a-repository-archive-zip

abitrolly commented 2 years ago

Explicitly mentioning branch makes clone 1m slower.

      - uses: actions/checkout@v3
        with:
          repository: mozilla/gecko-dev
          path: gecko-dev
          ref: master
          fetch-depth: 0

But the clone commands are the same https://github.com/abitrolly/firefox-lang-stats/runs/6716850948?check_suite_focus=true

abitrolly commented 2 years ago

Like through https://docs.github.com/en/rest/repos/contents#download-a-repository-archive-zip

These ZIP repository archives are missing .git dir.

$ curl -L \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/repos/abitrolly/firefox-lang-stats/zipball/main --output wow.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 53643    0 53643    0     0  88864      0 --:--:-- --:--:-- --:--:-- 88864                                                                                       /0.6s
$ unzip wow.zip 
Archive:  wow.zip
eea523c6772f8b6342a9121a175be9bd8be16c87
   creating: abitrolly-firefox-lang-stats-eea523c/
   creating: abitrolly-firefox-lang-stats-eea523c/.github/
   creating: abitrolly-firefox-lang-stats-eea523c/.github/workflows/
  inflating: abitrolly-firefox-lang-stats-eea523c/.github/workflows/deploy.yml  
 extracting: abitrolly-firefox-lang-stats-eea523c/.gitignore  
  inflating: abitrolly-firefox-lang-stats-eea523c/01stats.sh  
  inflating: abitrolly-firefox-lang-stats-eea523c/README.md  
   creating: abitrolly-firefox-lang-stats-eea523c/dev/
  inflating: abitrolly-firefox-lang-stats-eea523c/dev/build-data  
  inflating: abitrolly-firefox-lang-stats-eea523c/dev/git-file-stats  
  inflating: abitrolly-firefox-lang-stats-eea523c/index.mustache  
  inflating: abitrolly-firefox-lang-stats-eea523c/rustacean-orig-noshadow.ico  
  inflating: abitrolly-firefox-lang-stats-eea523c/rustacean-orig-noshadow.png
abitrolly commented 2 years ago

Maybe it is possible to cache repo clone? https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy