Re: Adding CI to our tree

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Melanie Plageman <melanieplageman@gmail.com>
Cc: Pg Hackers <pgsql-hackers@postgresql.org>, Thomas Munro <thomas.munro@gmail.com>, Andrew Dunstan <andrew@dunslane.net>
Date: 2021-11-19T23:02:04Z
Lists: pgsql-hackers
Hi,

On 2021-11-19 17:17:44 -0500, Melanie Plageman wrote:
> For the README, I found the instructions very clear. My only concern is
> that the cirrus-ci UI will change and the instructions on how to enable
> cirrus-ci on a repository will not be accessible in the same way in the
> future.

I think we can just adjust things at that point, I'm not too worried about
past instructions not working.


> I have attached a patch which does a small refactor using a yaml anchor
> and aliases (tried it and it seems to work for me).

Oh, neat. Yaml is so weird.



> - Would you find it valuable to set a few more coredump_filter bits?
>   Might be worth setting bits 2 and 3 (see [2])-- in addition to the
>   defaults (on Linux -- I don't know what the equivalent is on other
>   platforms).

I don't think we need 2/3 - we don't have file backed mappings. In some
situations setting bit 6 (shared huge pages) would make sense - but here we
don't configure them...


> - I found this line a bit confusing, so maybe it is worth a comment
>   sysinfo_script:
>     - export || true

We can probably just get rid of the ||. It was just so that a missing 'export'
builtin didn't cause execution to abort. But that won't randomly vanish, so
it's fine.


> - For the docker files, I think it is recommended to run "docker build"
>   only from within the specific build context (not in the top-level
>   directory), so I don't think you should need the dockerignore file.

We don't have control over that in this case - it's cirrus invoking docker,
and it just uses the whole repo as the context.


> - In ci/docker/linux_debian_bullseye, you can make this change:
>   -  apt-get clean
>   +  apt-get clean && \
>   +  rm -f /var/lib/apt/lists/*

Might not matter too much compared to the size of the whole thing, but it
definitely won't hurt...

Greetings,

Andres Freund



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. ci: enable zstd where available.

  2. ci: compile with -Og where applicable.

  3. ci: include hints how to install OS packages.

  4. ci: fix copy-paste mistake in 16eb8231d1b.

  5. ci: macos: align sysinfo_script to other tasks.

  6. ci: Only use one artifact instruction for logs.

  7. ci: s/CCACHE_SIZE/CCACHE_MAXSIZE/.

  8. pg_basebackup: Skip a few more fsyncs if --no-sync is specified.

  9. TAP tests: check for postmaster.pid anyway when "pg_ctl start" fails.

  10. Don't enable fsync in src/test/recovery/t/008_fsm_truncation.pl.

  11. ci: windows: run initdb with --no-sync.

  12. ci: windows: enable build summary to make it easier to spot warnings / errors.

  13. ci: Add continuous integration for github repositories via cirrus-ci.

  14. Fix TestLib::slurp_file() with offset on windows.