You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* CI: caching: upd doc
* CI: caching: rm schedule
It seems would not be needed.
`cabal.project` has pinned Hackage revision & when HLS code updates in `master`
is during merges.
* CI: caching: build & save cache
* CI: (caching,test,bench): org bootstrap
This were organized but others were ommited, because `build` & `hackage` have a
different purpose I postphoned addind bootstrap to them.
* CI: rm submodule checkouts
Seems like HLS does not plan to use submodules.
* CI: bench: fitting the workflow to strategy chosen
Still kept the 9.0.1 bootstrap, because the very next workflow standard GHC
update would hit the need of that code.
* CI: bench: default to bash
* CI: bench: rm env step
* CI: Circle-CI: m fx
Merely to refresh the Circle-CI report status in the PR
* CI: caching: fx: rm executable name patching
Copy file name to clipboardExpand all lines: .github/workflows/caching.yml
+29-28Lines changed: 29 additions & 28 deletions
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,21 @@
1
1
name: Caching
2
2
3
3
# Docs on the workflow:
4
-
# 1. GitHub cache scoping goes: main branch -> PR main branch -> PR. (essentially in a tree fashion). That is why it is useful to build caches on `master` - to generate & keep the main project state & they would be shared to the whole tree.
5
-
# 2. GitHub has a 10G default limit of cache pool per repo. HLS is a big project & monorepo of many projects, so to keep cache useful - the main branch state caches should be preserved & their storage preferred to the PRs, since PRs from internal branches - would count into 10G pool, but would be available only inside of the PR scope, which can bork cache fore the whole community. That is short story why `dist-newstyle` (especially full) - is not includded into `master` cache.
4
+
# 1. GitHub cache scoping goes:
5
+
# [main branch -> PR main branch -> PR. (essentially in a tree fashion)](https://web.archive.org/web/20211125171853/https://docs.github.com/en/actions/advanced-guides/caching-dependencies-to-speed-up-workflows#restrictions-for-accessing-a-cache).
6
+
# Building & keeping caches on `master` allows
7
+
# to share the main project state cache be shared to the whole tree.
8
+
# 2. GitHub has a [default 10G cache pool limit](https://web.archive.org/web/20211125171853/https://docs.github.com/en/actions/advanced-guides/caching-dependencies-to-speed-up-workflows#usage-limits-and-eviction-policy) per repo.
9
+
# HLS is a big monorepo codebase, which means easy cache pool
10
+
# invalidation & exhaustion because of the pool limit.
11
+
# To keep caches useful - the main state of the main branch should remain
12
+
# & so keep caching in the repo well below the limit.
13
+
# that means preferring main branch to the PR caches
14
+
# (especially internal branch ones), since PRs from internal branches -
15
+
# count into the repo 10G pool, while that cache gets used only inside of the PR,
16
+
# while exhausting the pool would bork cache for the rest of the community.
17
+
# That is a short story why `dist-newstyle` (especially full) currently is not
18
+
# includded into `master` or PR caches.
6
19
7
20
defaults:
8
21
run:
@@ -17,11 +30,9 @@ on:
17
30
push:
18
31
branches:
19
32
- master
20
-
schedule:
21
-
# Try to save snapshot every day at 08:25 UTC (~00:25 in California)
0 commit comments