feat(Install & Upgrade Scripts): add webhook support

This commit is contained in:
cubic
2022-02-16 09:55:35 +08:00
parent a21794f0ca
commit bb7436ce89
4 changed files with 76 additions and 11 deletions

View File

@@ -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"

View File

@@ -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;

View File

@@ -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!'

View File

@@ -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 </data/www/codefever-community/env.yaml: mysql/*> to finish mysql settings.'
echo '2. You shuold edit file </data/www/codefever-community/env.yaml: session/*> to finish cookie settings.'
echo '3. You shuold edit file </data/www/codefever-community/env.yaml: gateway/token> to finish git gateway security settings.'
echo '1. CodeFever Comminuty Upgrated.'
echo 'have fun!'