ci: Move execution method of tasks into yaml templates
This is done in preparation for making the compute resources for CI configurable. It also looks cleaner. Reviewed-by: Daniel Gustafsson <daniel@yesql.se> Discussion: https://postgr.es/m/20230808021541.7lbzdefvma7qmn3w@awork3.anarazel.de Backpatch: 15-, where CI support was added
This commit is contained in:
parent
5581a9a395
commit
cad461b044
85
.cirrus.yml
85
.cirrus.yml
|
@ -9,6 +9,7 @@ env:
|
||||||
GCP_PROJECT: pg-ci-images
|
GCP_PROJECT: pg-ci-images
|
||||||
IMAGE_PROJECT: $GCP_PROJECT
|
IMAGE_PROJECT: $GCP_PROJECT
|
||||||
CONTAINER_REPO: us-docker.pkg.dev/${GCP_PROJECT}/ci
|
CONTAINER_REPO: us-docker.pkg.dev/${GCP_PROJECT}/ci
|
||||||
|
DISK_SIZE: 25
|
||||||
|
|
||||||
# The lower depth accelerates git clone. Use a bit of depth so that
|
# The lower depth accelerates git clone. Use a bit of depth so that
|
||||||
# concurrent tasks and retrying older jobs have a chance of working.
|
# concurrent tasks and retrying older jobs have a chance of working.
|
||||||
|
@ -28,6 +29,45 @@ env:
|
||||||
PG_TEST_EXTRA: kerberos ldap ssl load_balance
|
PG_TEST_EXTRA: kerberos ldap ssl load_balance
|
||||||
|
|
||||||
|
|
||||||
|
# Define how to run various types of tasks.
|
||||||
|
|
||||||
|
# VMs provided by cirrus-ci. Each user has a limited number of "free" credits
|
||||||
|
# for testing.
|
||||||
|
cirrus_community_vm_template: &cirrus_community_vm_template
|
||||||
|
compute_engine_instance:
|
||||||
|
image_project: $IMAGE_PROJECT
|
||||||
|
image: family/$IMAGE_FAMILY
|
||||||
|
platform: $PLATFORM
|
||||||
|
cpu: $CPUS
|
||||||
|
disk: $DISK_SIZE
|
||||||
|
|
||||||
|
|
||||||
|
default_linux_task_template: &linux_task_template
|
||||||
|
env:
|
||||||
|
PLATFORM: linux
|
||||||
|
<<: *cirrus_community_vm_template
|
||||||
|
|
||||||
|
|
||||||
|
default_freebsd_task_template: &freebsd_task_template
|
||||||
|
env:
|
||||||
|
PLATFORM: freebsd
|
||||||
|
<<: *cirrus_community_vm_template
|
||||||
|
|
||||||
|
|
||||||
|
default_windows_task_template: &windows_task_template
|
||||||
|
env:
|
||||||
|
PLATFORM: windows
|
||||||
|
<<: *cirrus_community_vm_template
|
||||||
|
|
||||||
|
|
||||||
|
# macos workers provided by cirrus-ci
|
||||||
|
default_macos_task_template: &macos_task_template
|
||||||
|
env:
|
||||||
|
PLATFORM: macos
|
||||||
|
macos_instance:
|
||||||
|
image: $IMAGE
|
||||||
|
|
||||||
|
|
||||||
# What files to preserve in case tests fail
|
# What files to preserve in case tests fail
|
||||||
on_failure_ac: &on_failure_ac
|
on_failure_ac: &on_failure_ac
|
||||||
log_artifacts:
|
log_artifacts:
|
||||||
|
@ -136,21 +176,18 @@ task:
|
||||||
CPUS: 2
|
CPUS: 2
|
||||||
BUILD_JOBS: 3
|
BUILD_JOBS: 3
|
||||||
TEST_JOBS: 3
|
TEST_JOBS: 3
|
||||||
|
IMAGE_FAMILY: pg-ci-freebsd-13
|
||||||
|
DISK_SIZE: 50
|
||||||
|
|
||||||
CCACHE_DIR: /tmp/ccache_dir
|
CCACHE_DIR: /tmp/ccache_dir
|
||||||
CPPFLAGS: -DRELCACHE_FORCE_RELEASE -DCOPY_PARSE_PLAN_TREES -DWRITE_READ_PARSE_PLAN_TREES -DRAW_EXPRESSION_COVERAGE_TEST
|
CPPFLAGS: -DRELCACHE_FORCE_RELEASE -DCOPY_PARSE_PLAN_TREES -DWRITE_READ_PARSE_PLAN_TREES -DRAW_EXPRESSION_COVERAGE_TEST
|
||||||
CFLAGS: -Og -ggdb
|
CFLAGS: -Og -ggdb
|
||||||
|
|
||||||
|
<<: *freebsd_task_template
|
||||||
|
|
||||||
depends_on: SanityCheck
|
depends_on: SanityCheck
|
||||||
only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*freebsd.*'
|
only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*freebsd.*'
|
||||||
|
|
||||||
compute_engine_instance:
|
|
||||||
image_project: $IMAGE_PROJECT
|
|
||||||
image: family/pg-ci-freebsd-13
|
|
||||||
platform: freebsd
|
|
||||||
cpu: $CPUS
|
|
||||||
disk: 50
|
|
||||||
|
|
||||||
sysinfo_script: |
|
sysinfo_script: |
|
||||||
id
|
id
|
||||||
uname -a
|
uname -a
|
||||||
|
@ -250,6 +287,7 @@ task:
|
||||||
CPUS: 4
|
CPUS: 4
|
||||||
BUILD_JOBS: 4
|
BUILD_JOBS: 4
|
||||||
TEST_JOBS: 8 # experimentally derived to be a decent choice
|
TEST_JOBS: 8 # experimentally derived to be a decent choice
|
||||||
|
IMAGE_FAMILY: pg-ci-bullseye
|
||||||
|
|
||||||
CCACHE_DIR: /tmp/ccache_dir
|
CCACHE_DIR: /tmp/ccache_dir
|
||||||
DEBUGINFOD_URLS: "https://debuginfod.debian.net"
|
DEBUGINFOD_URLS: "https://debuginfod.debian.net"
|
||||||
|
@ -282,15 +320,11 @@ task:
|
||||||
LINUX_CONFIGURE_FEATURES: *LINUX_CONFIGURE_FEATURES
|
LINUX_CONFIGURE_FEATURES: *LINUX_CONFIGURE_FEATURES
|
||||||
LINUX_MESON_FEATURES: *LINUX_MESON_FEATURES
|
LINUX_MESON_FEATURES: *LINUX_MESON_FEATURES
|
||||||
|
|
||||||
|
<<: *linux_task_template
|
||||||
|
|
||||||
depends_on: SanityCheck
|
depends_on: SanityCheck
|
||||||
only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*linux.*'
|
only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*linux.*'
|
||||||
|
|
||||||
compute_engine_instance:
|
|
||||||
image_project: $IMAGE_PROJECT
|
|
||||||
image: family/pg-ci-bullseye
|
|
||||||
platform: linux
|
|
||||||
cpu: $CPUS
|
|
||||||
|
|
||||||
ccache_cache:
|
ccache_cache:
|
||||||
folder: ${CCACHE_DIR}
|
folder: ${CCACHE_DIR}
|
||||||
|
|
||||||
|
@ -430,6 +464,7 @@ task:
|
||||||
# work OK. See
|
# work OK. See
|
||||||
# https://postgr.es/m/20220927040208.l3shfcidovpzqxfh%40awork3.anarazel.de
|
# https://postgr.es/m/20220927040208.l3shfcidovpzqxfh%40awork3.anarazel.de
|
||||||
TEST_JOBS: 8
|
TEST_JOBS: 8
|
||||||
|
IMAGE: ghcr.io/cirruslabs/macos-ventura-base:latest
|
||||||
|
|
||||||
CIRRUS_WORKING_DIR: ${HOME}/pgsql/
|
CIRRUS_WORKING_DIR: ${HOME}/pgsql/
|
||||||
CCACHE_DIR: ${HOME}/ccache
|
CCACHE_DIR: ${HOME}/ccache
|
||||||
|
@ -440,12 +475,11 @@ task:
|
||||||
CFLAGS: -Og -ggdb
|
CFLAGS: -Og -ggdb
|
||||||
CXXFLAGS: -Og -ggdb
|
CXXFLAGS: -Og -ggdb
|
||||||
|
|
||||||
|
<<: *macos_task_template
|
||||||
|
|
||||||
depends_on: SanityCheck
|
depends_on: SanityCheck
|
||||||
only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*(macos|darwin|osx).*'
|
only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*(macos|darwin|osx).*'
|
||||||
|
|
||||||
macos_instance:
|
|
||||||
image: ghcr.io/cirruslabs/macos-ventura-base:latest
|
|
||||||
|
|
||||||
sysinfo_script: |
|
sysinfo_script: |
|
||||||
id
|
id
|
||||||
uname -a
|
uname -a
|
||||||
|
@ -524,6 +558,7 @@ WINDOWS_ENVIRONMENT_BASE: &WINDOWS_ENVIRONMENT_BASE
|
||||||
# Avoids port conflicts between concurrent tap test runs
|
# Avoids port conflicts between concurrent tap test runs
|
||||||
PG_TEST_USE_UNIX_SOCKETS: 1
|
PG_TEST_USE_UNIX_SOCKETS: 1
|
||||||
PG_REGRESS_SOCK_DIR: "c:/cirrus/"
|
PG_REGRESS_SOCK_DIR: "c:/cirrus/"
|
||||||
|
DISK_SIZE: 50
|
||||||
|
|
||||||
sysinfo_script: |
|
sysinfo_script: |
|
||||||
chcp
|
chcp
|
||||||
|
@ -547,16 +582,13 @@ task:
|
||||||
# given that it explicitly prevents crash dumps from working...
|
# given that it explicitly prevents crash dumps from working...
|
||||||
# 0x8001 is SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX
|
# 0x8001 is SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX
|
||||||
CIRRUS_WINDOWS_ERROR_MODE: 0x8001
|
CIRRUS_WINDOWS_ERROR_MODE: 0x8001
|
||||||
|
IMAGE_FAMILY: pg-ci-windows-ci-vs-2019
|
||||||
|
|
||||||
|
<<: *windows_task_template
|
||||||
|
|
||||||
depends_on: SanityCheck
|
depends_on: SanityCheck
|
||||||
only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*windows.*'
|
only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*windows.*'
|
||||||
|
|
||||||
compute_engine_instance:
|
|
||||||
image_project: $IMAGE_PROJECT
|
|
||||||
image: family/pg-ci-windows-ci-vs-2019
|
|
||||||
platform: windows
|
|
||||||
cpu: $CPUS
|
|
||||||
|
|
||||||
setup_additional_packages_script: |
|
setup_additional_packages_script: |
|
||||||
REM choco install -y --no-progress ...
|
REM choco install -y --no-progress ...
|
||||||
|
|
||||||
|
@ -598,12 +630,6 @@ task:
|
||||||
# otherwise it'll be sorted before other tasks
|
# otherwise it'll be sorted before other tasks
|
||||||
depends_on: SanityCheck
|
depends_on: SanityCheck
|
||||||
|
|
||||||
compute_engine_instance:
|
|
||||||
image_project: $IMAGE_PROJECT
|
|
||||||
image: family/pg-ci-windows-ci-mingw64
|
|
||||||
platform: windows
|
|
||||||
cpu: $CPUS
|
|
||||||
|
|
||||||
env:
|
env:
|
||||||
TEST_JOBS: 4 # higher concurrency causes occasional failures
|
TEST_JOBS: 4 # higher concurrency causes occasional failures
|
||||||
CCACHE_DIR: C:/msys64/ccache
|
CCACHE_DIR: C:/msys64/ccache
|
||||||
|
@ -617,6 +643,9 @@ task:
|
||||||
# Start bash in current working directory
|
# Start bash in current working directory
|
||||||
CHERE_INVOKING: 1
|
CHERE_INVOKING: 1
|
||||||
BASH: C:\msys64\usr\bin\bash.exe -l
|
BASH: C:\msys64\usr\bin\bash.exe -l
|
||||||
|
IMAGE_FAMILY: pg-ci-windows-ci-mingw64
|
||||||
|
|
||||||
|
<<: *windows_task_template
|
||||||
|
|
||||||
ccache_cache:
|
ccache_cache:
|
||||||
folder: ${CCACHE_DIR}
|
folder: ${CCACHE_DIR}
|
||||||
|
|
Loading…
Reference in New Issue