From bb7436ce893e3de41b831f51b6264c6f2c314202 Mon Sep 17 00:00:00 2001 From: cubic Date: Wed, 16 Feb 2022 09:55:35 +0800 Subject: [PATCH] feat(Install & Upgrade Scripts): add webhook support --- misc/create_db.sh | 3 +++ misc/db_update_20220215.sql | 40 +++++++++++++++++++++++++++++++++++++ misc/install.sh | 12 ++++++++++- misc/update.sh | 32 +++++++++++++++++++---------- 4 files changed, 76 insertions(+), 11 deletions(-) create mode 100644 misc/db_update_20220215.sql diff --git a/misc/create_db.sh b/misc/create_db.sh index 2d92bea..410c631 100644 --- a/misc/create_db.sh +++ b/misc/create_db.sh @@ -24,6 +24,9 @@ mysql -h"$DB_HOST" -P"$DB_PORT" -u"$DB_USER" -p"$DB_PASS" -D"$DB_NAME" -e"source echo 'Default data created!' +# update db to version 20220215 +mysql -h"$DB_HOST" -P"$DB_PORT" -u"$DB_USER" -p"$DB_PASS" -D"$DB_NAME" -e"source db_update_20220215.sql"; + echo 'Done!' echo -e "\n\n\n" diff --git a/misc/db_update_20220215.sql b/misc/db_update_20220215.sql new file mode 100644 index 0000000..9fd30fc --- /dev/null +++ b/misc/db_update_20220215.sql @@ -0,0 +1,40 @@ +CREATE TABLE IF NOT EXISTS `cc_repository_webhooks` ( + `rw_key` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `r_key` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `u_key` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `rw_url` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `rw_secret` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, + `rw_events` text COLLATE utf8mb4_unicode_ci NOT NULL, + `rw_active` tinyint(3) NOT NULL DEFAULT '1', + `rw_created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + `rw_updated` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`rw_key`), + KEY `r_key` (`r_key`), + KEY `u_key` (`u_key`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE IF NOT EXISTS `cc_repository_webhook_events` ( + `rwe_key` char(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `rwe_user` char(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `rw_key` char(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `rwe_type` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL, + `rwe_data` text COLLATE utf8mb4_unicode_ci NOT NULL, + `rwe_created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`rwe_key`), + KEY `rw_key` (`rw_key`), + KEY `rwe_user` (`rwe_user`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +CREATE TABLE IF NOT EXISTS `cc_repository_webhook_logs` ( + `rwl_id` char(36) COLLATE utf8mb4_unicode_ci NOT NULL, + `rw_key` char(32) COLLATE utf8mb4_unicode_ci NOT NULL, + `rwl_request` text COLLATE utf8mb4_unicode_ci NOT NULL, + `rwl_response` text COLLATE utf8mb4_unicode_ci NOT NULL, + `rwl_start` double NOT NULL, + `rwl_end` double NOT NULL, + `rwl_status` int(11) NOT NULL, + `rwl_created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`rwl_id`), + KEY `rw_key` (`rw_key`), + KEY `rwl_created` (`rwl_created`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; diff --git a/misc/install.sh b/misc/install.sh index f401830..a510bd5 100644 --- a/misc/install.sh +++ b/misc/install.sh @@ -62,7 +62,17 @@ service codefever start service php-fpm start service nginx start -echo 'services started!' +echo 'Services Started!' + +TARGET_CRONJOB=`crontab -u git -l 2>/dev/null | grep 'codefever_schedule.sh' | wc -l` +if [ $TARGET_CRONJOB -eq 0 ]; then + crontab -u git -l 2>/dev/null > /tmp/cronjob.temp + echo "* * * * * sh /data/www/codefever-community/application/backend/codefever_schedule.sh" >> /tmp/cronjob.temp + crontab -u git /tmp/cronjob.temp + rm -f /tmp/cronjob.temp +fi + +echo 'Cronjob Registerd!' echo 'Done!' diff --git a/misc/update.sh b/misc/update.sh index 75534ef..9b36763 100644 --- a/misc/update.sh +++ b/misc/update.sh @@ -28,13 +28,6 @@ cp codefever-service-template /etc/init.d/codefever echo 'services updated!' -cp ../config.template.yaml ../config.yaml -cp ../env.template.yaml ../env.yaml - -chmod 0777 ../config.yaml ../env.yaml - -echo 'env files overwrote!' - echo 'Loading composer libraries: (Just Press Enter Key!)' cd ../application/libraries/composerlib/ @@ -49,12 +42,31 @@ service nginx start echo 'services started!' +DB_HOST=`cat ../env.yaml | grep host: | awk -F: '{ print $2 }' | sed 's/^\s*//'` +DB_PORT=`cat ../env.yaml | grep port: | awk -F: '{ print $2 }' | sed 's/^\s*//'` +DB_USER=`cat ../env.yaml | grep username: | awk -F: '{ print $2 }' | sed 's/^\s*//'` +DB_PASS=`cat ../env.yaml | grep password: | awk -F: '{ print $2 }' | sed 's/^\s*//'` +DB_NAME=`cat ../env.yaml | grep db: | awk -F: '{ print $2 }' | sed 's/^\s*//'` + +# update db to version 20220215 +mysql -h"$DB_HOST" -P"$DB_PORT" -u"$DB_USER" -p"$DB_PASS" -D"$DB_NAME" -e"source db_update_20220215.sql"; + +echo 'database updated!' + +TARGET_CRONJOB=`crontab -u git -l 2>/dev/null | grep 'codefever_schedule.sh' | wc -l` +if [ $TARGET_CRONJOB -eq 0 ]; then + crontab -u git -l 2>/dev/null > /tmp/cronjob.temp + echo "* * * * * sh /data/www/codefever-community/application/backend/codefever_schedule.sh" >> /tmp/cronjob.temp + crontab -u git /tmp/cronjob.temp + rm -f /tmp/cronjob.temp +fi + +echo 'Cronjob Registerd!' + echo 'Done!' echo -e "\n\n\n" echo '=== IMPORTANT NOTICE ===' -echo '1. You shuold edit file to finish mysql settings.' -echo '2. You shuold edit file to finish cookie settings.' -echo '3. You shuold edit file to finish git gateway security settings.' +echo '1. CodeFever Comminuty Upgrated.' echo 'have fun!'