Fix gateway workflow runner selection
Some checks failed
Build and Deploy Gateway / build-and-deploy (push) Failing after 1s
Some checks failed
Build and Deploy Gateway / build-and-deploy (push) Failing after 1s
This commit is contained in:
@@ -21,25 +21,53 @@ echo "Image: ${GATEWAY_IMAGE}"
|
||||
echo "Base image: ${BASE_IMAGE}"
|
||||
|
||||
echo "Syncing source to ${BUILD_HOST}:${BUILD_PATH}"
|
||||
ssh "${BUILD_HOST}" "mkdir -p '${BUILD_PATH}'"
|
||||
rsync -az --delete \
|
||||
--exclude '.git' \
|
||||
--exclude '.vpn-proxy' \
|
||||
--exclude 'node_modules' \
|
||||
--exclude 'dist' \
|
||||
./ "${BUILD_HOST}:${BUILD_PATH}/"
|
||||
if [ "${BUILD_HOST}" = "local" ]; then
|
||||
BUILD_PATH="$(pwd)"
|
||||
echo "Using local source at ${BUILD_PATH}"
|
||||
else
|
||||
ssh "${BUILD_HOST}" "mkdir -p '${BUILD_PATH}'"
|
||||
rsync -az --delete \
|
||||
--exclude '.git' \
|
||||
--exclude '.vpn-proxy' \
|
||||
--exclude 'node_modules' \
|
||||
--exclude 'dist' \
|
||||
./ "${BUILD_HOST}:${BUILD_PATH}/"
|
||||
fi
|
||||
|
||||
echo "Building image on ${BUILD_HOST}"
|
||||
ssh "${BUILD_HOST}" \
|
||||
"set -e; echo 'Docker context:' \$(docker context show 2>/dev/null || true); docker info 2>/dev/null | sed -n '/HTTP Proxy:/p;/HTTPS Proxy:/p;/Name:/p'; docker image inspect '${BASE_IMAGE}' >/dev/null || { echo 'Runtime base image ${BASE_IMAGE} is missing on ${BUILD_HOST}.'; echo 'Seed it once with: ./scripts/build-runtime-base.sh'; exit 1; }; cd '${BUILD_PATH}' && npm ci && npm run build && docker build --pull='${DOCKER_BUILD_PULL}' --build-arg BASE_IMAGE='${BASE_IMAGE}' --build-arg SINGBOX_VERSION='${SINGBOX_VERSION}' --build-arg INSTALL_RUNTIME_DEPS='${INSTALL_RUNTIME_DEPS}' --build-arg INSTALL_SINGBOX='${INSTALL_SINGBOX}' -t '${GATEWAY_IMAGE}' ."
|
||||
BUILD_COMMAND="set -e; echo 'Docker context:' \$(docker context show 2>/dev/null || true); docker info 2>/dev/null | sed -n '/HTTP Proxy:/p;/HTTPS Proxy:/p;/Name:/p'; docker image inspect '${BASE_IMAGE}' >/dev/null || { echo 'Runtime base image ${BASE_IMAGE} is missing on ${BUILD_HOST}.'; echo 'Seed it once with: ./scripts/build-runtime-base.sh'; exit 1; }; cd '${BUILD_PATH}' && npm ci && npm run build && docker build --pull='${DOCKER_BUILD_PULL}' --build-arg BASE_IMAGE='${BASE_IMAGE}' --build-arg SINGBOX_VERSION='${SINGBOX_VERSION}' --build-arg INSTALL_RUNTIME_DEPS='${INSTALL_RUNTIME_DEPS}' --build-arg INSTALL_SINGBOX='${INSTALL_SINGBOX}' -t '${GATEWAY_IMAGE}' ."
|
||||
if [ "${BUILD_HOST}" = "local" ]; then
|
||||
bash -lc "${BUILD_COMMAND}"
|
||||
else
|
||||
ssh "${BUILD_HOST}" "${BUILD_COMMAND}"
|
||||
fi
|
||||
|
||||
echo "Loading image into ${DEPLOY_HOST}"
|
||||
ssh "${BUILD_HOST}" "docker save '${GATEWAY_IMAGE}'" | ssh "${DEPLOY_HOST}" "docker load"
|
||||
if [ "${BUILD_HOST}" = "local" ] && [ "${DEPLOY_HOST}" = "local" ]; then
|
||||
docker image inspect "${GATEWAY_IMAGE}" >/dev/null
|
||||
elif [ "${BUILD_HOST}" = "local" ]; then
|
||||
docker save "${GATEWAY_IMAGE}" | ssh "${DEPLOY_HOST}" "docker load"
|
||||
elif [ "${DEPLOY_HOST}" = "local" ]; then
|
||||
ssh "${BUILD_HOST}" "docker save '${GATEWAY_IMAGE}'" | docker load
|
||||
else
|
||||
ssh "${BUILD_HOST}" "docker save '${GATEWAY_IMAGE}'" | ssh "${DEPLOY_HOST}" "docker load"
|
||||
fi
|
||||
|
||||
echo "Copying deploy script to ${DEPLOY_HOST}:${DEPLOY_PATH}"
|
||||
ssh "${DEPLOY_HOST}" "mkdir -p '${DEPLOY_PATH}'"
|
||||
rsync -az scripts/deploy-gateway.sh "${DEPLOY_HOST}:${DEPLOY_PATH}/deploy-gateway.sh"
|
||||
if [ "${DEPLOY_HOST}" = "local" ]; then
|
||||
mkdir -p "${DEPLOY_PATH}"
|
||||
cp scripts/deploy-gateway.sh "${DEPLOY_PATH}/deploy-gateway.sh"
|
||||
else
|
||||
ssh "${DEPLOY_HOST}" "mkdir -p '${DEPLOY_PATH}'"
|
||||
rsync -az scripts/deploy-gateway.sh "${DEPLOY_HOST}:${DEPLOY_PATH}/deploy-gateway.sh"
|
||||
fi
|
||||
|
||||
echo "Starting gateway on ${DEPLOY_HOST}"
|
||||
ssh "${DEPLOY_HOST}" \
|
||||
"cd '${DEPLOY_PATH}' && chmod +x ./deploy-gateway.sh && DEPLOY_PATH='${DEPLOY_PATH}' GATEWAY_IMAGE='${GATEWAY_IMAGE}' PULL_IMAGE=false ./deploy-gateway.sh"
|
||||
if [ "${DEPLOY_HOST}" = "local" ]; then
|
||||
cd "${DEPLOY_PATH}"
|
||||
chmod +x ./deploy-gateway.sh
|
||||
DEPLOY_PATH="${DEPLOY_PATH}" GATEWAY_IMAGE="${GATEWAY_IMAGE}" PULL_IMAGE=false ./deploy-gateway.sh
|
||||
else
|
||||
ssh "${DEPLOY_HOST}" \
|
||||
"cd '${DEPLOY_PATH}' && chmod +x ./deploy-gateway.sh && DEPLOY_PATH='${DEPLOY_PATH}' GATEWAY_IMAGE='${GATEWAY_IMAGE}' PULL_IMAGE=false ./deploy-gateway.sh"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user