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_REPO_URL=git@gitea.haiyihy.com:hy/chatapp3-golang.git
|
||||||
GOLANG_BRANCH=test
|
GOLANG_BRANCH=test
|
||||||
CRON_REPO_URL=git@gitea.haiyihy.com:hy/chatapp-cron.git
|
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_REPO_URL=git@gitea.haiyihy.com:hy/chatapp3-admin.git
|
||||||
ADMIN_BRANCH=test
|
ADMIN_BRANCH=test
|
||||||
TESTBOX_SRC_ROOT=/opt/chatapp-test/sources
|
TESTBOX_SRC_ROOT=/opt/chatapp-test/sources
|
||||||
@ -259,4 +259,5 @@ TESTBOX_AUTODEPLOY_ENABLED=1
|
|||||||
TESTBOX_AUTODEPLOY_INTERVAL_SECONDS=30
|
TESTBOX_AUTODEPLOY_INTERVAL_SECONDS=30
|
||||||
TESTBOX_AUTODEPLOY_JAVA_BRANCH=test
|
TESTBOX_AUTODEPLOY_JAVA_BRANCH=test
|
||||||
TESTBOX_AUTODEPLOY_GOLANG_BRANCH=test
|
TESTBOX_AUTODEPLOY_GOLANG_BRANCH=test
|
||||||
|
TESTBOX_AUTODEPLOY_CRON_BRANCH=test
|
||||||
TESTBOX_AUTODEPLOY_ADMIN_BRANCH=test
|
TESTBOX_AUTODEPLOY_ADMIN_BRANCH=test
|
||||||
|
|||||||
@ -61,7 +61,7 @@ do not overwrite it.
|
|||||||
## 自动拉取 test 分支
|
## 自动拉取 test 分支
|
||||||
|
|
||||||
测试机安装后会启用 `chatapp-test-auto-deploy.service`。它每 30 秒读取一次
|
测试机安装后会启用 `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`:
|
默认配置在 `/opt/chatapp-test/.env`:
|
||||||
@ -71,6 +71,7 @@ TESTBOX_AUTODEPLOY_ENABLED=1
|
|||||||
TESTBOX_AUTODEPLOY_INTERVAL_SECONDS=30
|
TESTBOX_AUTODEPLOY_INTERVAL_SECONDS=30
|
||||||
TESTBOX_AUTODEPLOY_JAVA_BRANCH=test
|
TESTBOX_AUTODEPLOY_JAVA_BRANCH=test
|
||||||
TESTBOX_AUTODEPLOY_GOLANG_BRANCH=test
|
TESTBOX_AUTODEPLOY_GOLANG_BRANCH=test
|
||||||
|
TESTBOX_AUTODEPLOY_CRON_BRANCH=test
|
||||||
TESTBOX_AUTODEPLOY_ADMIN_BRANCH=test
|
TESTBOX_AUTODEPLOY_ADMIN_BRANCH=test
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@ -167,6 +167,13 @@ build_and_restart_golang() {
|
|||||||
compose ps golang | tee -a "$LOG_FILE"
|
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() {
|
build_and_restart_admin() {
|
||||||
local admin_dir="$1"
|
local admin_dir="$1"
|
||||||
local admin_api_base_url
|
local admin_api_base_url
|
||||||
@ -187,9 +194,9 @@ build_and_restart_admin() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
run_once() {
|
run_once() {
|
||||||
local java_repo_url golang_repo_url admin_repo_url
|
local java_repo_url golang_repo_url cron_repo_url admin_repo_url
|
||||||
local java_branch golang_branch admin_branch
|
local java_branch golang_branch cron_branch admin_branch
|
||||||
local java_dir golang_dir admin_dir
|
local java_dir golang_dir cron_dir admin_dir
|
||||||
local rc
|
local rc
|
||||||
local java_before java_after
|
local java_before java_after
|
||||||
local services_line
|
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)"
|
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)"
|
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)"
|
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)"
|
java_branch="$(env_value TESTBOX_AUTODEPLOY_JAVA_BRANCH test)"
|
||||||
golang_branch="$(env_value TESTBOX_AUTODEPLOY_GOLANG_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)"
|
admin_branch="$(env_value TESTBOX_AUTODEPLOY_ADMIN_BRANCH test)"
|
||||||
java_dir="$(env_value JAVA_SOURCE_DIR "$ROOT_DIR/sources/chatapp3-java")"
|
java_dir="$(env_value JAVA_SOURCE_DIR "$ROOT_DIR/sources/chatapp3-java")"
|
||||||
golang_dir="$(env_value GOLANG_SOURCE_DIR "$ROOT_DIR/sources/chatapp3-golang")"
|
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")"
|
admin_dir="$(env_value ADMIN_SOURCE_DIR "$ROOT_DIR/sources/chatapp3-admin")"
|
||||||
|
|
||||||
rc=0
|
rc=0
|
||||||
@ -237,6 +247,14 @@ run_once() {
|
|||||||
[ "$rc" -eq 10 ] || log "golang update skipped due to error rc=$rc"
|
[ "$rc" -eq 10 ] || log "golang update skipped due to error rc=$rc"
|
||||||
fi
|
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
|
rc=0
|
||||||
if repo_changed "$admin_dir" "$admin_repo_url" "$admin_branch" admin; then
|
if repo_changed "$admin_dir" "$admin_repo_url" "$admin_branch" admin; then
|
||||||
build_and_restart_admin "$admin_dir"
|
build_and_restart_admin "$admin_dir"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user