Bitcoin Core Github
42 subscribers
126K links
Download Telegram
💬 MarcoFalke commented on pull request "ci: Disable cache save for pull requests in GitHub Actions":
(https://github.com/bitcoin/bitcoin/pull/28292#discussion_r1298072161)
Maybe it is still better to only have caches for a single branch, as they can't be re-used for other branches anyway?
💬 hebasto commented on pull request "ci: Disable cache save for pull requests in GitHub Actions":
(https://github.com/bitcoin/bitcoin/pull/28292#discussion_r1298072950)
> ... is there a reason to use different values?

Yes, it is. `github.run_id` is unique for every run. That is why the `restore-keys` input contains prefixes that are expected to match. The latest matched cache will be restored.
💬 hebasto commented on pull request "ci: Disable cache save for pull requests in GitHub Actions":
(https://github.com/bitcoin/bitcoin/pull/28292#discussion_r1298075170)
In the main repository, caches for backport branches will be evicted after 7 days of non-using them.

However, the current logic seems useful for fork repos, no?
💬 hebasto commented on pull request "ci: Disable cache save for pull requests in GitHub Actions":
(https://github.com/bitcoin/bitcoin/pull/28292#discussion_r1298077810)
The comment has been added.
💬 MarcoFalke commented on pull request "ci: Disable cache save for pull requests in GitHub Actions":
(https://github.com/bitcoin/bitcoin/pull/28292#discussion_r1298086606)
I was thinking that (assuming a cache size per push of `$n` GB, and a total limit of 10GB), 10/n pushes to a backport branch will evict the main cache. For example, for n=5, 2 pushes are enough.

Though, it is only a cache, so I guess it doesn't matter.
💬 MarcoFalke commented on pull request "ci: Disable cache save for pull requests in GitHub Actions":
(https://github.com/bitcoin/bitcoin/pull/28292#discussion_r1298093118)
> However, the current logic seems useful for fork repos, no?

If you are worried about hard-coding `master`, I think, if possible, using the GitHub default branch name should achieve the same.
💬 hebasto commented on pull request "ci: Disable cache save for pull requests in GitHub Actions":
(https://github.com/bitcoin/bitcoin/pull/28292#discussion_r1298095969)
> However, the current logic seems useful for fork repos, no?

I mean, topic branches in fork repos.
💬 MarcoFalke commented on pull request "ci: Disable cache save for pull requests in GitHub Actions":
(https://github.com/bitcoin/bitcoin/pull/28292#issuecomment-1683465163)
I guess as an alternative, the ghcr can be used to store a ccache? This would require a bit more code on our side, and maybe a few more permissions to be enabled? Though, if the write-permissions are limited to the `master` branch, maybe that is fine?
💬 MarcoFalke commented on pull request "ci: Run "macOS 11.0 [gui, no tests] [jammy]" job on GitHub Actions":
(https://github.com/bitcoin/bitcoin/pull/28265#issuecomment-1683467914)
I guess neither solution is perfect, but longer term it would still be fun to explore if something can be achieved via ghcr (or some other registry), see https://github.com/bitcoin/bitcoin/pull/28265/files#r1295647557
💬 hebasto commented on pull request "ci: Disable cache save for pull requests in GitHub Actions":
(https://github.com/bitcoin/bitcoin/pull/28292#issuecomment-1683484025)
> I guess as an alternative, the ghcr can be used to store a ccache? This would require a bit more code on our side, and maybe a few more permissions to be enabled?

For now, only two jobs, namely native macOS and Windows, are planned to run on GitHub Actions. It should work fine at this scale, no?

> Though, if the write-permissions are limited to the `master` branch, maybe that is fine?

I'm not sure about how to make "the write-permissions are limited to the `master` branch". I'll do me
...
👍 hebasto approved a pull request: "rpc: remove one more quote from non-string oneline description"
(https://github.com/bitcoin/bitcoin/pull/28289#pullrequestreview-1584012832)
ACK 239431444216850b63ecf01c3b5c5d6d24230d08
💬 MarcoFalke commented on pull request "rpc: Add Arg() default helper":
(https://github.com/bitcoin/bitcoin/pull/28230#discussion_r1298184373)
heh, but I don't like templates either. My preference would be to use `if constexpr (is_pointer||is_optional) { foo } else { bar }` or C++20 concepts. See also https://github.com/bitcoin/bitcoin/pull/28230#discussion_r1293478970


However, I've taken your idea to remove ArgRef. Thanks!
💬 hebasto commented on pull request "ci: Disable cache save for pull requests in GitHub Actions":
(https://github.com/bitcoin/bitcoin/pull/28292#issuecomment-1683590844)
> the ghcr can be used to store a ccache?

Anyway, it won't work with non-Linux runners out-of-the-box.
🚀 fanquake merged a pull request: "rpc: remove one more quote from non-string oneline description"
(https://github.com/bitcoin/bitcoin/pull/28289)
💬 MarcoFalke commented on pull request "ci: Disable cache save for pull requests in GitHub Actions":
(https://github.com/bitcoin/bitcoin/pull/28292#discussion_r1298220709)
> I mean, topic branches in contributors' fork repos.

The cache key isn't included the branch name, so I don't think this will work.
💬 fanquake commented on pull request "ci: Disable cache save for pull requests in GitHub Actions":
(https://github.com/bitcoin/bitcoin/pull/28292#discussion_r1298222825)
Can someone elaborate on why branches in forks of this repository are something we need to consider when deciding on our caching stratergy for this repository? Do the forks share our cache (resources)? Can anyone with a fork clobber our cache?
💬 hebasto commented on pull request "ci: Disable cache save for pull requests in GitHub Actions":
(https://github.com/bitcoin/bitcoin/pull/28292#discussion_r1298223512)
On a contributor's topic branch in his personal repo, the workflow will be triggered by a `push` event. So the updated push will reuse the cache.
💬 hebasto commented on pull request "ci: Disable cache save for pull requests in GitHub Actions":
(https://github.com/bitcoin/bitcoin/pull/28292#discussion_r1298225748)
> Can anyone with a fork clobber our cache?

No.
💬 hebasto commented on pull request "ci: Disable cache save for pull requests in GitHub Actions":
(https://github.com/bitcoin/bitcoin/pull/28292#discussion_r1298227841)
> Can someone elaborate on why branches in forks of this repository are something we need to consider when deciding on our caching stratergy for this repository?

I use CI in my personal repo before pushing my branch into the pull request. And I want to use CI with some efficiency.
💬 MarcoFalke commented on pull request "ci: Disable cache save for pull requests in GitHub Actions":
(https://github.com/bitcoin/bitcoin/pull/28292#discussion_r1298227846)


> On a contributor's topic branch in their personal repo, the workflow will be triggered by a `push` event. So the updated push will reuse the cache.

No? I think it will use the latest cache, which may be from a different branch, because the cache key isn't included the branch name, so I don't think this will work.
💬 hebasto commented on pull request "ci: Disable cache save for pull requests in GitHub Actions":
(https://github.com/bitcoin/bitcoin/pull/28292#discussion_r1298233032)
> > On a contributor's topic branch in their personal repo, the workflow will be triggered by a `push` event. So the updated push will reuse the cache.
>
> No? I think it will use the latest cache, which may be from a different branch, because the cache key isn't included the branch name, so I don't think this will work.

https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#example-using-multiple-restore-keys: a feature branch is considered before a
...