From: Andres Freund Date: Tue, 2 Jun 2026 19:07:55 -0400 Subject: [PATCH v7a 2/3] ci: Rewrite src/tools/ci/README To be merged with the prior commit. --- src/tools/ci/README | 77 +++++++++++++-------------------------------- 1 file changed, 21 insertions(+), 56 deletions(-) diff --git a/src/tools/ci/README b/src/tools/ci/README index d183648a8d0..8776d82ffcc 100644 --- a/src/tools/ci/README +++ b/src/tools/ci/README @@ -17,42 +17,35 @@ Postgres has two forms of CI: Configuring CI on personal repositories ======================================= -Currently postgres contains CI support utilizing cirrus-ci. cirrus-ci -currently is only available for github. +Currently postgres contains CI support utilizing GitHub actions. -Enabling cirrus-ci in a github repository -========================================= +Enabling and using CI in a GitHub repository +============================================ -To enable cirrus-ci on a repository, go to -https://github.com/marketplace/cirrus-ci and select "Public -Repositories". Then "Install it for free" and "Complete order". The next page -allows to configure which repositories cirrus-ci has access to. Choose the -relevant repository and "Install". +The GitHub Actions based CI workflow is active by default, therefore no +configuration is necessary. -See also https://cirrus-ci.org/guide/quick-start/ +CI runs are visible at https://github.com///actions -Once enabled on a repository, future commits and pull-requests in that -repository will automatically trigger CI builds. These are visible from the -commit history / PRs, and can also be viewed in the cirrus-ci UI at -https://cirrus-ci.com/github/// +The high-level status of workflow runs on public repositories are visible +without being logged into GitHub, however details including logs require being +logged in. -Hint: all build log files are uploaded to cirrus-ci and can be downloaded -from the "Artifacts" section from the cirrus-ci UI after clicking into a -specific task on a build's summary page. +To disable CI on a repository, navigate to +https://github.com///actions/workflows/pg-ci.yml +and click on the '...' on the right and choose 'Disable workflow'. +Containers / Images used for CI +=============================== -Images used for CI -================== +To keep CI times tolerable, several platforms use pre-generated containers / +images. The containers and images are generated separately from CI runs, +otherwise each git repository that is being tested would need to build its own +set of containers, which would be wasteful (both in space and time). -To keep CI times tolerable, most platforms use pre-generated images. Some -platforms use containers, others use full VMs. Images for both are generated -separately from CI runs, otherwise each git repository that is being tested -would need to build its own set of containers, which would be wasteful (both -in space and time. - -These images are built, on a daily basis, from the specifications in -github.com/anarazel/pg-vm-images/ +These containers / images are built, on a daily basis, from the specifications +in github.com/anarazel/pg-vm-images/ Controlling CI via commit messages @@ -61,35 +54,7 @@ Controlling CI via commit messages The behavior of CI can be controlled by special content in commit messages. Currently the following controls are available: -- ci-os-only: {(freebsd|linux|macos|mingw|netbsd|openbsd|windows)} +- ci-os-only: {(compilerwarnings|linux|macos|mingw|sanitycheck|windows)} Only runs CI on operating systems specified. This can be useful when addressing portability issues affecting only a subset of platforms. - - -Using custom compute resources for CI -===================================== - -When running a lot of tests in a repository, cirrus-ci's free credits do not -suffice. In those cases a repository can be configured to use other -infrastructure for running tests. To do so, the REPO_CI_CONFIG_GIT_URL -variable can be configured for the repository in the cirrus-ci web interface, -at https://cirrus-ci.com/github/. The file referenced -(see https://cirrus-ci.org/guide/programming-tasks/#fs) by the variable can -overwrite the default execution method for different operating systems, -defined in .cirrus.yml, by redefining the relevant yaml anchors. - -Custom compute resources can be provided using -- https://cirrus-ci.org/guide/supported-computing-services/ -- https://cirrus-ci.org/guide/persistent-workers/ - - -Enabling manual tasks by default -================================ - -Some tasks are not triggered automatically by default, to avoid using up CI -credits too quickly. This can be changed on the repository level, e.g. when -custom compute resources are configured. - -The following repository level environment variables are recognized: -- REPO_CI_AUTOMATIC_TRIGGER_TASKS - space-separated list of (mingw|netbsd|openbsd) -- 2.54.0.380.gc69baaf57b --duumq7fiwvn25xxn Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v7a-0003-ci-Remove-support-for-cirrus-ci-based-CI.patch"