|
74 | 74 | echo "DuckDB features test failed" |
75 | 75 | exit 1 |
76 | 76 | fi |
| 77 | + |
| 78 | + - name: Check the loaded extensions, created secrets and global variables |
| 79 | + run: | |
| 80 | + # Check AWS extension status |
| 81 | + if ! psql -h 127.0.0.1 -p 15432 -U postgres -c "SELECT extension_name, installed, description FROM duckdb_extensions() where extension_name = 'aws'" | grep -q "aws.*f"; then |
| 82 | + echo "AWS extension check failed, extension is installed" |
| 83 | + psql -h 127.0.0.1 -p 15432 -U postgres -c "SELECT extension_name, installed, description FROM duckdb_extensions() where extension_name = 'aws'" |
| 84 | + exit 1 |
| 85 | + fi |
| 86 | +
|
| 87 | + # Check secrets |
| 88 | + if [ $(psql -h 127.0.0.1 -p 15432 -U postgres -c "SELECT name, type, provider, persistent, storage, secret_string FROM duckdb_secrets()" | grep -c ".") -gt 3 ]; then |
| 89 | + echo "Secrets check failed - unexpected secrets found" |
| 90 | + psql -h 127.0.0.1 -p 15432 -U postgres -c "SELECT name, type, provider, persistent, storage, secret_string FROM duckdb_secrets()" |
| 91 | + exit 1 |
| 92 | + fi |
| 93 | +
|
| 94 | + # Check if binlog_expire_logs_seconds equals '12345' |
| 95 | + if mysql -h127.0.0.1 -P13306 -uroot -e "SHOW VARIABLES LIKE 'binlog_expire_logs_seconds'" | grep -q "12345"; then |
| 96 | + echo "MySQL variable check failed" |
| 97 | + mysql -h127.0.0.1 -P13306 -uroot -e "SHOW VARIABLES LIKE 'binlog_expire_logs_seconds'" |
| 98 | + exit 1 |
| 99 | + fi |
| 100 | +
|
| 101 | + echo "Extension, secrets and global variable check successful" |
| 102 | + |
| 103 | + - name: Stop MyDuck Server |
| 104 | + run: | |
| 105 | + docker rm -f myduck |
| 106 | + |
| 107 | + - name: Start MyDuck Server in server mode with initialization SQLs |
| 108 | + run: | |
| 109 | + # This will be executed on PostgreSQL protocol. |
| 110 | + cat <<EOF > init_duckdb.sql |
| 111 | + INSTALL aws; |
| 112 | + CREATE SECRET my_secret ( |
| 113 | + TYPE S3, |
| 114 | + KEY_ID 'my_secret_key', |
| 115 | + SECRET 'my_secret_value', |
| 116 | + REGION 'my_region' |
| 117 | + ); |
| 118 | + EOF |
| 119 | +
|
| 120 | + # This will be executed on MySQL protocol. |
| 121 | + cat <<EOF > init_mysql.sql |
| 122 | + SET GLOBAL binlog_expire_logs_seconds = 12345; |
| 123 | + EOF |
| 124 | +
|
| 125 | + docker run -d --name myduck \ |
| 126 | + -p 13306:3306 \ |
| 127 | + -p 15432:5432 \ |
| 128 | + --env=SETUP_MODE=SERVER \ |
| 129 | + -v ./init_duckdb.sql:/docker-entrypoint-initdb.d/postgres/init_duckdb.sql \ |
| 130 | + -v ./init_mysql.sql:/docker-entrypoint-initdb.d/mysql/init_mysql.sql \ |
| 131 | + apecloud/myduckserver:latest |
| 132 | + |
| 133 | + # Wait for MyDuck to be ready |
| 134 | + sleep 10 |
| 135 | + |
| 136 | + - name: Check the loaded extensions, created secrets and global variables after initialization |
| 137 | + run: | |
| 138 | + # Check AWS extension status |
| 139 | + if ! psql -h 127.0.0.1 -p 15432 -U postgres -c "SELECT extension_name, installed, description FROM duckdb_extensions() where extension_name = 'aws'" | grep -q "aws.*t"; then |
| 140 | + echo "AWS extension check failed, extension is not installed" |
| 141 | + psql -h 127.0.0.1 -p 15432 -U postgres -c "SELECT extension_name, installed, description FROM duckdb_extensions() where extension_name = 'aws'" |
| 142 | + exit 1 |
| 143 | + fi |
| 144 | +
|
| 145 | + # Check secrets |
| 146 | + if [ $(psql -h 127.0.0.1 -p 15432 -U postgres -c "SELECT name, type, provider, persistent, storage, secret_string FROM duckdb_secrets()" | grep -c ".") -ne 4 ]; then |
| 147 | + echo "Secrets check failed - expected 4 secrets" |
| 148 | + psql -h 127.0.0.1 -p 15432 -U postgres -c "SELECT name, type, provider, persistent, storage, secret_string FROM duckdb_secrets()" |
| 149 | + exit 1 |
| 150 | + fi |
| 151 | +
|
| 152 | + # Check if binlog_expire_logs_seconds equals '12345' |
| 153 | + if ! mysql -h127.0.0.1 -P13306 -uroot -e "SHOW VARIABLES LIKE 'binlog_expire_logs_seconds'" | grep -q "12345"; then |
| 154 | + echo "MySQL variable check failed" |
| 155 | + mysql -h127.0.0.1 -P13306 -uroot -e "SHOW VARIABLES LIKE 'binlog_expire_logs_seconds'" |
| 156 | + exit 1 |
| 157 | + fi |
| 158 | +
|
| 159 | + echo "Extension, secrets and global variable check successful" |
77 | 160 |
|
78 | 161 | - name: Cleanup |
79 | 162 | if: always() |
|
0 commit comments