github.com/cloudberrydb/gpbackup@v1.0.3-0.20240118031043-5410fd45eed6/ci/scripts/gpbackup-tests.bash (about)

     1  #!/bin/bash
     2  
     3  set -ex
     4  
     5  # setup cluster and install gpbackup tools using gppkg
     6  ccp_src/scripts/setup_ssh_to_cluster.sh
     7  
     8  GO_VERSION=1.17.6
     9  GPHOME=/usr/local/greenplum-db-devel
    10  
    11  ssh -t ${default_ami_user}@cdw " \
    12      sudo wget https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz && \
    13      sudo tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz && \
    14      sudo mkdir -p /home/gpadmin/go/src/github.com/greenplum-db && \
    15      sudo chown gpadmin:gpadmin -R /home/gpadmin"
    16  
    17  scp -r -q gpbackup cdw:/home/gpadmin/go/src/github.com/cloudberrydb/gpbackup
    18  
    19  if test -f dummy_seclabel/dummy_seclabel*.so; then
    20    scp dummy_seclabel/dummy_seclabel*.so cdw:${GPHOME}/lib/postgresql/dummy_seclabel.so
    21    scp dummy_seclabel/dummy_seclabel*.so sdw1:${GPHOME}/lib/postgresql/dummy_seclabel.so
    22  fi
    23  
    24  # Install gpbackup binaries using gppkg
    25  cat << ENV_SCRIPT > /tmp/env.sh
    26    export GOPATH=/home/gpadmin/go
    27    source ${GPHOME}/greenplum_path.sh
    28    export PGPORT=5432
    29    export COORDINATOR_DATA_DIRECTORY=/data/gpdata/coordinator/gpseg-1
    30    export MASTER_DATA_DIRECTORY=/data/gpdata/coordinator/gpseg-1
    31    export PATH=\${GOPATH}/bin:/usr/local/go/bin:\${PATH}
    32  ENV_SCRIPT
    33  chmod +x /tmp/env.sh
    34  scp /tmp/env.sh cdw:/home/gpadmin/env.sh
    35  
    36  out=$(ssh -t cdw 'source env.sh && psql postgres -c "select version();"')
    37  GPDB_VERSION=$(echo ${out} | sed -n 's/.*Greenplum Database \([0-9]\).*/\1/p')
    38  mkdir -p /tmp/untarred
    39  tar -xzf gppkgs/gpbackup-gppkgs.tar.gz -C /tmp/untarred
    40  scp /tmp/untarred/gpbackup_tools*gp${GPDB_VERSION}*${OS}*.gppkg cdw:/home/gpadmin
    41  ssh -t cdw "source env.sh; gppkg -i gpbackup_tools*.gppkg"
    42  
    43  cat <<SCRIPT > /tmp/run_tests.bash
    44    #!/bin/bash
    45  
    46    set -ex
    47    source env.sh
    48    if [[ -f /opt/gcc_env.sh ]]; then
    49        source /opt/gcc_env.sh
    50    fi
    51    if test -f ${GPHOME}/lib/postgresql/dummy_seclabel.so; then
    52      gpconfig -c shared_preload_libraries -v dummy_seclabel
    53      gpstop -ar
    54      gpconfig -s shared_preload_libraries | grep dummy_seclabel
    55    fi
    56  
    57    cd \${GOPATH}/src/github.com/cloudberrydb/gpbackup
    58    make depend # Needed to install ginkgo
    59  
    60    # NOTE: This is a temporary hotfix intended to skip these tests when running on CCP cluster
    61    #       because the backup artifact that these tests are using only works on local clusters.
    62    sed -i 's|\tIt\(.*\)\(--on-error-continue\)|\tPIt\1\2|' end_to_end/end_to_end_suite_test.go
    63    sed -i 's|\tEntry\(.*\)\(-segment cluster\)|\tPEntry\1\2|' end_to_end/end_to_end_suite_test.go
    64    sed -i 's|\tIt\(.*\)\(different-size cluster\)|\tPIt\1\2|' end_to_end/end_to_end_suite_test.go
    65    make end_to_end
    66  SCRIPT
    67  
    68  chmod +x /tmp/run_tests.bash
    69  scp /tmp/run_tests.bash cdw:/home/gpadmin/run_tests.bash
    70  ssh -t cdw "/home/gpadmin/run_tests.bash"