Add cron testbox auto deploy polling
This commit is contained in:
parent
8722d6cf7d
commit
3c374fbf66
@ -244,7 +244,7 @@ JAVA_BRANCH=test
|
||||
GOLANG_REPO_URL=git@gitea.haiyihy.com:hy/chatapp3-golang.git
|
||||
GOLANG_BRANCH=test
|
||||
CRON_REPO_URL=git@gitea.haiyihy.com:hy/chatapp-cron.git
|
||||
CRON_BRANCH=main
|
||||
CRON_BRANCH=test
|
||||
ADMIN_REPO_URL=git@gitea.haiyihy.com:hy/chatapp3-admin.git
|
||||
ADMIN_BRANCH=test
|
||||
TESTBOX_SRC_ROOT=/opt/chatapp-test/sources
|
||||
@ -259,4 +259,5 @@ TESTBOX_AUTODEPLOY_ENABLED=1
|
||||
TESTBOX_AUTODEPLOY_INTERVAL_SECONDS=30
|
||||
TESTBOX_AUTODEPLOY_JAVA_BRANCH=test
|
||||
TESTBOX_AUTODEPLOY_GOLANG_BRANCH=test
|
||||
TESTBOX_AUTODEPLOY_CRON_BRANCH=test
|
||||
TESTBOX_AUTODEPLOY_ADMIN_BRANCH=test
|
||||
|
||||
@ -61,7 +61,7 @@ do not overwrite it.
|
||||
## 自动拉取 test 分支
|
||||
|
||||
测试机安装后会启用 `chatapp-test-auto-deploy.service`。它每 30 秒读取一次
|
||||
`admin`、`chatapp3-java`、`chatapp3-golang` 的 `test` 分支,如果远端 commit
|
||||
`admin`、`chatapp3-java`、`chatapp3-golang`、`chatapp-cron` 的 `test` 分支,如果远端 commit
|
||||
有变化,就只构建并重启变化对应的服务。
|
||||
|
||||
默认配置在 `/opt/chatapp-test/.env`:
|
||||
@ -71,6 +71,7 @@ TESTBOX_AUTODEPLOY_ENABLED=1
|
||||
TESTBOX_AUTODEPLOY_INTERVAL_SECONDS=30
|
||||
TESTBOX_AUTODEPLOY_JAVA_BRANCH=test
|
||||
TESTBOX_AUTODEPLOY_GOLANG_BRANCH=test
|
||||
TESTBOX_AUTODEPLOY_CRON_BRANCH=test
|
||||
TESTBOX_AUTODEPLOY_ADMIN_BRANCH=test
|
||||
```
|
||||
|
||||
|
||||
@ -167,6 +167,13 @@ build_and_restart_golang() {
|
||||
compose ps golang | tee -a "$LOG_FILE"
|
||||
}
|
||||
|
||||
build_and_restart_cron() {
|
||||
log "cron build/restart"
|
||||
compose build chatapp-cron >>"$LOG_FILE" 2>&1
|
||||
compose up -d --no-deps --force-recreate chatapp-cron >>"$LOG_FILE" 2>&1
|
||||
compose ps chatapp-cron | tee -a "$LOG_FILE"
|
||||
}
|
||||
|
||||
build_and_restart_admin() {
|
||||
local admin_dir="$1"
|
||||
local admin_api_base_url
|
||||
@ -187,9 +194,9 @@ build_and_restart_admin() {
|
||||
}
|
||||
|
||||
run_once() {
|
||||
local java_repo_url golang_repo_url admin_repo_url
|
||||
local java_branch golang_branch admin_branch
|
||||
local java_dir golang_dir admin_dir
|
||||
local java_repo_url golang_repo_url cron_repo_url admin_repo_url
|
||||
local java_branch golang_branch cron_branch admin_branch
|
||||
local java_dir golang_dir cron_dir admin_dir
|
||||
local rc
|
||||
local java_before java_after
|
||||
local services_line
|
||||
@ -202,12 +209,15 @@ run_once() {
|
||||
|
||||
java_repo_url="$(env_value JAVA_REPO_URL git@gitea.haiyihy.com:hy/chatapp3-java.git)"
|
||||
golang_repo_url="$(env_value GOLANG_REPO_URL git@gitea.haiyihy.com:hy/chatapp3-golang.git)"
|
||||
cron_repo_url="$(env_value CRON_REPO_URL git@gitea.haiyihy.com:hy/chatapp-cron.git)"
|
||||
admin_repo_url="$(env_value ADMIN_REPO_URL git@gitea.haiyihy.com:hy/chatapp3-admin.git)"
|
||||
java_branch="$(env_value TESTBOX_AUTODEPLOY_JAVA_BRANCH test)"
|
||||
golang_branch="$(env_value TESTBOX_AUTODEPLOY_GOLANG_BRANCH test)"
|
||||
cron_branch="$(env_value TESTBOX_AUTODEPLOY_CRON_BRANCH test)"
|
||||
admin_branch="$(env_value TESTBOX_AUTODEPLOY_ADMIN_BRANCH test)"
|
||||
java_dir="$(env_value JAVA_SOURCE_DIR "$ROOT_DIR/sources/chatapp3-java")"
|
||||
golang_dir="$(env_value GOLANG_SOURCE_DIR "$ROOT_DIR/sources/chatapp3-golang")"
|
||||
cron_dir="$(env_value CRON_SOURCE_DIR "$ROOT_DIR/sources/chatapp-cron")"
|
||||
admin_dir="$(env_value ADMIN_SOURCE_DIR "$ROOT_DIR/sources/chatapp3-admin")"
|
||||
|
||||
rc=0
|
||||
@ -237,6 +247,14 @@ run_once() {
|
||||
[ "$rc" -eq 10 ] || log "golang update skipped due to error rc=$rc"
|
||||
fi
|
||||
|
||||
rc=0
|
||||
if repo_changed "$cron_dir" "$cron_repo_url" "$cron_branch" cron; then
|
||||
build_and_restart_cron
|
||||
else
|
||||
rc=$?
|
||||
[ "$rc" -eq 10 ] || log "cron update skipped due to error rc=$rc"
|
||||
fi
|
||||
|
||||
rc=0
|
||||
if repo_changed "$admin_dir" "$admin_repo_url" "$admin_branch" admin; then
|
||||
build_and_restart_admin "$admin_dir"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user