Re: Adding CI to our tree
Andres Freund <andres@anarazel.de>
Hi, Alvaro adding you because the "branch" discussion in the MERGE thread. On 2022-02-03 23:04:04 -0600, Justin Pryzby wrote: > > I'm a bit worried about the increased storage and runtime overhead due to the > > docs changes. We probably can make it a good bit cheaper though. > > If you mean overhead of additional disk operations, it shouldn't be an issue, > since the git clone uses shared references (not even hardlinks). I was concerned about those and just the increased runtime of the script. Our sources are 130MB, leaving the shared .git aside. But maybe it's just fine. We probably can just get rid of the separate clone and configure run though? Build the docs, copy the output, do a git co parent docs/, build again? What was the reason behind moving the docs stuff from the compiler warnings task to linux? Not that either fits very well... I think it might be worth moving the docs stuff into its own task, using a 1 CPU container (docs build isn't parallel anyway). Think that'll be easier to see in the cfbot page. I think it's also good to run it independent of the linux task succeeding - a docs failure seems like a separate enough issue. > > > 9d0f03d3450 wip: cirrus: code coverage > > > > I don't think it's good to just unconditionally reference the master branch > > here. It'll do bogus stuff once 15 is branched off. It works for cfbot, but > > not other uses. > > That's only used for filtering changed files. It uses git diff --cherry-pick > postgres/master..., which would *try* to avoid showing anything which is also > in master. You commented in another email on this: On 2022-02-11 12:51:50 -0600, Justin Pryzby wrote: > Because I put your patch on top of some other branch with the CI coverage (and > other stuff). > > It tries to only show files changed by the branch being checked: > https://github.com/justinpryzby/postgres/commit/d668142040031915 > > But it has to figure out where the branch "starts". Which I did by looking at > "git diff --cherry-pick origin..." > > Andres thinks that does the wrong thing if CI is run manually (not by CFBOT) > for patches against backbranches. I'm not sure git diff --cherry-pick is > widely known/used, but I think using that relative to master may be good > enough. Note that I'm not concerned about "manually" running CI against other branches - I'm concerned about the point where where 15 branches off and CI will automatically also run against 15. E.g. in the postgres repo https://cirrus-ci.com/github/postgres/postgres/ I can see a few ways to deal with this: 1) iterate over release branches and see which has the smallest diff 2) parse the branch name, if it's a cfbot run, we know it's master, otherwise skip 3) change cfbot so that it maintains things as pull requests, which have a base branch > > Is looking at the .c files in the change really a reliable predictor of where > > code coverage changes? I'm doubtful. Consider stuff like removing the last > > user of some infrastructure or such. Or adding the first. > > You're right that it isn't particularly accurate, but it's a step forward if > lots of patches use it to check/improve coverge of new code. Maybe it's good enough... The overhead in test runtime is noticeable (~5.30m -> ~7.15m), but probably acceptable. Although I also would like to enable -fsanitize=alignment and -fsanitize=alignment, which add about 2 minutes as well (-fsanitize=address is a lot more expensive), they both work best on linux. > In addition to the HTML generated for changed .c files, it's possible to create > a coverage.gcov output for everything, which could be retrieved to generate > full HTML locally. It's ~8MB (or 2MB after gzip). Note sure that doing doing it locally adds much over just running tests locally. Greetings, Andres Freund
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
ci: enable zstd where available.
- ff50baec65bb 15.0 landed
-
ci: compile with -Og where applicable.
- 4a288a37f9b7 15.0 landed
-
ci: include hints how to install OS packages.
- 225fb558cd42 15.0 landed
-
ci: fix copy-paste mistake in 16eb8231d1b.
- f79c94f39df0 15.0 landed
-
ci: macos: align sysinfo_script to other tasks.
- 0a156058aa49 15.0 landed
-
ci: Only use one artifact instruction for logs.
- 16eb8231d1b5 15.0 landed
-
ci: s/CCACHE_SIZE/CCACHE_MAXSIZE/.
- 79b79dd57a96 15.0 landed
-
pg_basebackup: Skip a few more fsyncs if --no-sync is specified.
- 9c86d9337eb0 15.0 landed
-
TAP tests: check for postmaster.pid anyway when "pg_ctl start" fails.
- b0623625a0a3 14.2 landed
- 99aa0ff68a2c 11.15 landed
- 6eec809fbcfb 13.6 landed
- 6c4a8903b93f 15.0 landed
- 5940d1b027d7 12.10 landed
- 40756287ff1f 10.20 landed
-
Don't enable fsync in src/test/recovery/t/008_fsm_truncation.pl.
- a7f4171071bb 15.0 landed
-
ci: windows: run initdb with --no-sync.
- dfc0cb3940cd 15.0 landed
-
ci: windows: enable build summary to make it easier to spot warnings / errors.
- 8a1ce5e54f6d 15.0 landed
-
ci: Add continuous integration for github repositories via cirrus-ci.
- 93d973494613 15.0 landed
-
Fix TestLib::slurp_file() with offset on windows.
- 9e3be5c182d7 9.6.24 landed
- d5fa3c086eab 10.19 landed
- 0a134c860fc1 11.14 landed
- cd1b2334b8a2 12.9 landed
- 5ba397f7404e 13.5 landed
- c4465cd09e3a 14.1 landed
- 2f74db1236fe 15.0 landed