Skip to content

Commit 435b8aa

Browse files
Leonid Borchuktuhaihe
authored andcommitted
Introduces GitHub Actions workflow for Apache Cloudberry (incubating) build debian package
In commit cd0bfbc was added docker build and test containers for ubuntu 22.04. Here has been adding CI workflow to check if we still could create and install debian package for ubuntu 22.04. To do this: - use devops package for build cloudberry binary inside docker build container - create debian package for builded binary - upload artifacts to github actions - download artifacts to ubuntu test container - install downloaded debian packages - check packages for integrity - perform some installcheck tests (regress, pax, contrib, gpcontrib)
1 parent fd5be5d commit 435b8aa

File tree

9 files changed

+1787
-30
lines changed

9 files changed

+1787
-30
lines changed

.github/workflows/build-deb-cloudberry.yml

Lines changed: 1759 additions & 0 deletions
Large diffs are not rendered by default.

devops/build/automation/cloudberry/scripts/configure-cloudberry.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,12 @@ CONFIGURE_LOG="${LOG_DIR}/configure.log"
104104
# Initialize environment
105105
init_environment "Cloudberry Configure Script" "${CONFIGURE_LOG}"
106106

107+
# Check if BUILD_DESTINATION is set
108+
if [ -z "${BUILD_DESTINATION}" ]; then
109+
log_completion "BUILD_DESTINATION is empty - error with exit"
110+
exit 1
111+
fi
112+
107113
# Initial setup
108114
log_section "Initial Setup"
109115
execute_cmd sudo rm -rf ${BUILD_DESTINATION} || exit 2

devops/build/packaging/deb/ubuntu22.04/control

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ Architecture: amd64
4747
Depends: curl,
4848
cgroup-tools,
4949
iputils-ping,
50+
iproute2,
51+
keyutils,
5052
krb5-multidev,
5153
less,
5254
libapr1,
@@ -62,19 +64,22 @@ Depends: curl,
6264
libcgroup1,
6365
libssl3,
6466
libpam0g,
67+
libprotobuf23,
68+
libpsl5,
69+
libuv1,
6570
libxerces-c3.2,
6671
locales,
72+
lsof,
73+
lz4,
6774
net-tools,
6875
openssh-client,
6976
openssh-server,
7077
openssl,
71-
python-six,
72-
python2.7,
73-
python2.7-dev,
78+
python3,
7479
rsync,
7580
wget,
76-
zlib1g,
77-
libuv1
81+
xz-utils,
82+
zlib1g
7883
Description: Apache Cloudberry (incubating) is an advanced, open-source, massively
7984
parallel processing (MPP) data warehouse developed from PostgreSQL and
8085
Greenplum. It is designed for high-performance analytics on

devops/build/packaging/deb/ubuntu22.04/preinst

Lines changed: 0 additions & 13 deletions
This file was deleted.

devops/deploy/docker/build/ubuntu22.04/Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ RUN apt-get update && \
9595
flex \
9696
g++-11 \
9797
gcc-11 \
98+
gdb \
9899
git \
99100
iproute2 \
100101
iputils-ping \
@@ -179,7 +180,7 @@ RUN cp /tmp/90-cbdb-limits /etc/security/limits.d/90-cbdb-limits && \
179180
echo $TZ > /etc/timezone && \
180181
chmod 755 /tmp/init_system.sh && \
181182
/usr/sbin/groupadd gpadmin && \
182-
/usr/sbin/useradd -m -g gpadmin gpadmin && \
183+
/usr/sbin/useradd -m -g gpadmin gpadmin -s /bin/bash && \
183184
echo 'gpadmin ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/90-gpadmin && \
184185
chmod 0440 /etc/sudoers.d/90-gpadmin && \
185186
ssh-keygen -A && \

devops/deploy/docker/test/ubuntu22.04/Dockerfile

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,8 @@ RUN apt-get update && \
8585
silversearcher-ag \
8686
vim \
8787
wget \
88+
gdb \
8889
git \
89-
iproute2 \
9090
iputils-ping \
9191
lsof \
9292
openssh-server \
@@ -95,7 +95,6 @@ RUN apt-get update && \
9595
python3-distutils \
9696
python3-pip \
9797
python3-setuptools \
98-
rsync \
9998
sudo \
10099
tzdata && \
101100
apt-get install -y -qq locales && \
@@ -113,7 +112,7 @@ RUN ln -s /usr/bin/python3.10 /usr/bin/python
113112
# - Add Cloudberry-specific entries to the gpadmin's .bashrc.
114113
# --------------------------------------------------------------------
115114
RUN /usr/sbin/groupadd gpadmin && \
116-
/usr/sbin/useradd -m -g gpadmin gpadmin && \
115+
/usr/sbin/useradd -m -g gpadmin gpadmin -s /bin/bash && \
117116
echo 'gpadmin ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/90-gpadmin && \
118117
chmod 0440 /etc/sudoers.d/90-gpadmin && \
119118
echo '\n# Add Cloudberry entries\nif [ -f /usr/local/cloudberry/cloudberry-env.sh ]; then\n source /usr/local/cloudberry/cloudberry-env.sh\n export COORDINATOR_DATA_DIRECTORY=/data1/coordinator/gpseg-1\nfi' >> /home/gpadmin/.bashrc

src/test/regress/input/external_table.source

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3701,5 +3701,5 @@ DROP EXTERNAL TABLE ext_false;
37013701
DROP EXTERNAL TABLE ext_true;
37023702
DROP EXTERNAL TABLE ext_persistently;
37033703

3704-
CREATE EXTERNAL WEB TEMP TABLE test_program_not_exist(content text) EXECUTE '/xx/seq 1 5' ON MASTER FORMAT 'TEXT';
3705-
SELECT * FROM test_program_not_exist;
3704+
CREATE EXTERNAL WEB TEMP TABLE test_program_not_exist(content text) EXECUTE '/bin/bash /xx/seq 1 5' ON MASTER FORMAT 'TEXT';
3705+
SELECT * FROM test_program_not_exist;

src/test/regress/output/external_table.source

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5052,7 +5052,7 @@ SELECT logerrors, options from pg_exttable a, pg_class b where a.reloid = b.oid
50525052
DROP EXTERNAL TABLE ext_false;
50535053
DROP EXTERNAL TABLE ext_true;
50545054
DROP EXTERNAL TABLE ext_persistently;
5055-
CREATE EXTERNAL WEB TEMP TABLE test_program_not_exist(content text) EXECUTE '/xx/seq 1 5' ON MASTER FORMAT 'TEXT';
5055+
CREATE EXTERNAL WEB TEMP TABLE test_program_not_exist(content text) EXECUTE '/bin/bash /xx/seq 1 5' ON MASTER FORMAT 'TEXT';
50565056
SELECT * FROM test_program_not_exist;
5057-
DETAIL: Command: execute:/xx/seq 1 5
5058-
ERROR: external table test_program_not_exist command ended with error. sh: line 1: /xx/seq: No such file or directory
5057+
DETAIL: Command: execute:/bin/bash /xx/seq 1 5
5058+
ERROR: external table test_program_not_exist command ended with error. /bin/bash: /xx/seq: No such file or directory

src/test/regress/output/external_table_optimizer.source

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5054,7 +5054,7 @@ SELECT logerrors, options from pg_exttable a, pg_class b where a.reloid = b.oid
50545054
DROP EXTERNAL TABLE ext_false;
50555055
DROP EXTERNAL TABLE ext_true;
50565056
DROP EXTERNAL TABLE ext_persistently;
5057-
CREATE EXTERNAL WEB TEMP TABLE test_program_not_exist(content text) EXECUTE '/xx/seq 1 5' ON MASTER FORMAT 'TEXT';
5057+
CREATE EXTERNAL WEB TEMP TABLE test_program_not_exist(content text) EXECUTE '/bin/bash /xx/seq 1 5' ON MASTER FORMAT 'TEXT';
50585058
SELECT * FROM test_program_not_exist;
5059-
DETAIL: Command: execute:/xx/seq 1 5
5060-
ERROR: external table test_program_not_exist command ended with error. sh: line 1: /xx/seq: No such file or directory
5059+
DETAIL: Command: execute:/bin/bash /xx/seq 1 5
5060+
ERROR: external table test_program_not_exist command ended with error. /bin/bash: /xx/seq: No such file or directory

0 commit comments

Comments
 (0)