Since these packages can take some time to download, you may want to cache them to avoid downloading them over and over again. This would also solve occasional failures due to connection problems between the CI service and GitHub, where most of the tarballs reside.
Here are instructions about how to cache artifacts in some popular CI services, feel free to contribute more instructions and I’ll update the post.
Note that an extremely large quantity of artifacts can actually increase CI time at least the very first time, but subsequent executions should be faster. Please do report here if you encounter problems due to the use of cache of artifacts on CI services, so that we can understand what may be going wrong.
If you’re seeing random errors downloading artifacts in CI right now, it’s because GitHub is having problems right now: GitHub Status - Incident on 2020-05-07 23:17 UTC. This is however a good occasion to recommend again caching artifacts in CI exactly to avoid issues like this one
If I understand it correctly, one caveat using this Github Action settings is that if you bump a (patch) version for every PR, which changes Project.toml, you’ll almost never get a cache hit (at least for the first push)
I’m not sure this is correct, in the few packages where I use GitHub Actions for CI the cache has never been invalidated after changing the Project.toml file, at least by judging from the size of the cache that always grows. @SaschaMann maybe knows better how this works.
If you change Project.toml, it should still match ${{ runner.os }}-test-${{ env.cache-name }}-, assuming there is a cache. This only works if the cache has been accessed within the last week which is not the case for many packages.