1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2025-02-03 13:21:32 +02:00

Update EOL Debian 10 to Debian 11/Ubuntu 20.04 in CI.

Typically we use the oldest Debian/Ubuntu to run 32-bit unit and integration tests. However, 32-bit is no longer fully supported by Ubuntu (multiple packages we need are missing) and apt.postgresql.org no longer packages for any 32-bit version.

To address these changes, do 64-bit integration testing on the oldest Debian/Ubuntu (currently Ubuntu 20.04) and 32-bit unit/integration testing on the oldest Debian (currently 11) using the included version for integration testing.
This commit is contained in:
David Steele 2024-07-15 11:53:57 +07:00
parent ce2493c3f6
commit d8ff89ae75
4 changed files with 49 additions and 25 deletions

View File

@ -28,11 +28,11 @@ jobs:
# tackle the slowest tests first.
matrix:
include:
# All unit tests (without coverage or valgrind) for 32-bit
- param: test --vm=d10 --param=no-performance --param=no-coverage --param=no-valgrind --param=c-only
# All integration tests for oldest Debian
- param: test --vm=u20 --param=module=integration
# All integration tests for 32-bit
- param: test --vm=d10 --param=module=integration
# All tests (without coverage or valgrind) for 32-bit
- param: test --vm=d11 --param=no-performance --param=no-coverage --param=no-valgrind
# Debian/Ubuntu documentation
- param: doc --vm=u20

View File

@ -12,9 +12,12 @@
# - docker login -u pgbackrest
# - VM=XXX;DATE=YYYYMMDDX;BASE=pgbackrest/test:${VM?}-base;docker tag ${BASE?} ${BASE?}-${DATE?} && docker push ${BASE?}-${DATE?}
# **********************************************************************************************************************************
20240715A:
x86_64:
d11: f3bc523f10e873f85b889120ea08c6c53358cc47
20240612A:
x86_64:
d10: ff35751bb4be23b90441a228089d8851aad2b3a2
f40: ae6241a28e5d8a6b6060d0ef00855f519ea45c24
rh8: 84e3ece92ebc2650346a9ea783940d33ec2872db
u20: a754f9acc98c79a0b0ad3a39a140a752a27ac5e7

View File

@ -484,11 +484,17 @@ sub containerBuild
}
else
{
# Install repo from apt.postgresql.org
if (vmPgRepo($strVm))
{
$strScript .=
" echo \"deb http://apt.postgresql.org/pub/repos/apt/ \$(lsb_release -s -c)-pgdg main" .
($strOS eq VM_U22 ? ' 17' : '') . "\" >> /etc/apt/sources.list.d/pgdg.list && \\\n" .
" wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - && \\\n" .
" apt-get update && \\\n";
}
$strScript .=
" echo \"deb http://apt.postgresql.org/pub/repos/apt/ \$(lsb_release -s -c)-pgdg main" .
($strOS eq VM_U22 ? ' 17' : '') . "\" >> /etc/apt/sources.list.d/pgdg.list && \\\n" .
" wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - && \\\n" .
" apt-get update && \\\n" .
" apt-get install -y --no-install-recommends postgresql-common libpq-dev && \\\n" .
" sed -i 's/^\\#create\\_main\\_cluster.*\$/create\\_main\\_cluster \\= false/' " .
"/etc/postgresql-common/createcluster.conf";

View File

@ -40,6 +40,7 @@ use constant VM_IMAGE => 'image';
push @EXPORT, qw(VM_IMAGE);
use constant VM_OS_BASE => 'os-base';
push @EXPORT, qw(VM_OS_BASE);
use constant VMDEF_PG_REPO => 'pg-repo';
use constant VMDEF_PGSQL_BIN => 'psql-bin';
push @EXPORT, qw(VMDEF_PGSQL_BIN);
use constant VMDEF_WITH_LZ4 => 'with-lz4';
@ -74,8 +75,8 @@ use constant VM_ALL => 'all';
use constant VM_NONE => 'none';
push @EXPORT, qw(VM_NONE);
use constant VM_D10 => 'd10';
push @EXPORT, qw(VM_D10);
use constant VM_D11 => 'd11';
push @EXPORT, qw(VM_D11);
use constant VM_RH8 => 'rh8';
push @EXPORT, qw(VM_RH8);
use constant VM_F40 => 'f40';
@ -86,7 +87,7 @@ use constant VM_U22 => 'u22';
push @EXPORT, qw(VM_U22);
# List of default test VMs
use constant VM_LIST => (VM_D10, VM_RH8, VM_U22);
use constant VM_LIST => (VM_U20, VM_D11, VM_RH8, VM_U22);
push @EXPORT, qw(VM_LIST);
my $oyVm =
@ -112,29 +113,25 @@ my $oyVm =
],
},
# Debian 10
&VM_D10 =>
# Debian 11
&VM_D11 =>
{
&VM_OS_BASE => VM_OS_BASE_DEBIAN,
&VM_IMAGE => 'i386/debian:10',
&VM_IMAGE => 'debian:11',
&VM_ARCH => VM_ARCH_I386,
&VMDEF_PG_REPO => false,
&VMDEF_PGSQL_BIN => '/usr/lib/postgresql/{[version]}/bin',
&VMDEF_WITH_ZST => true,
&VM_DB =>
[
PG_VERSION_94,
PG_VERSION_95,
PG_VERSION_96,
PG_VERSION_10,
PG_VERSION_13,
],
&VM_DB_TEST =>
[
PG_VERSION_94,
PG_VERSION_96,
PG_VERSION_10,
PG_VERSION_13,
],
},
@ -161,7 +158,6 @@ my $oyVm =
&VM_DB_TEST =>
[
PG_VERSION_12,
PG_VERSION_13,
PG_VERSION_14,
PG_VERSION_15,
],
@ -219,9 +215,9 @@ my $oyVm =
&VM_DB_TEST =>
[
PG_VERSION_95,
PG_VERSION_94,
PG_VERSION_96,
PG_VERSION_15,
PG_VERSION_10,
],
},
@ -329,6 +325,25 @@ sub vmValid
push @EXPORT, qw(vmValid);
####################################################################################################################################
# vmPgRepo
####################################################################################################################################
sub vmPgRepo
{
my $strVm = shift;
vmValid($strVm);
if (!defined($oyVm->{$strVm}{&VMDEF_PG_REPO}))
{
return true;
}
return $oyVm->{$strVm}{&VMDEF_PG_REPO};
}
push @EXPORT, qw(vmPgRepo);
####################################################################################################################################
# vmGet
####################################################################################################################################