Mercurial
comparison hg-web/deploy.sh @ 227:8bb0ac8f4587
[hg-web] Add Bazel deployment target
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Sun, 02 Aug 2026 16:31:44 -0700 |
| parents | ce7f4400c2de |
| children | c5129452493e |
comparison
equal
deleted
inserted
replaced
| 226:3fa4bf481f42 | 227:8bb0ac8f4587 |
|---|---|
| 6 ACTIVE_PATH="${ACTIVE_PATH:-/opt/hg_web_server_bundle_active}" | 6 ACTIVE_PATH="${ACTIVE_PATH:-/opt/hg_web_server_bundle_active}" |
| 7 HEALTH_URL="${HEALTH_URL:-http://127.0.0.1:6970/}" | 7 HEALTH_URL="${HEALTH_URL:-http://127.0.0.1:6970/}" |
| 8 SERVICE_USER="${SERVICE_USER:-hg_web_server}" | 8 SERVICE_USER="${SERVICE_USER:-hg_web_server}" |
| 9 SERVICE_GROUP="${SERVICE_GROUP:-zenbu_team}" | 9 SERVICE_GROUP="${SERVICE_GROUP:-zenbu_team}" |
| 10 | 10 |
| 11 workspace="$(hg root)" | 11 workspace="${BUILD_WORKSPACE_DIRECTORY:-$(hg root)}" |
| 12 cd "$workspace" | 12 cd "$workspace" |
| 13 | |
| 14 if [[ -n "${BUILD_WORKSPACE_DIRECTORY:-}" ]]; then | |
| 15 if [[ -n "${RUNFILES_DIR:-}" ]]; then | |
| 16 source "$RUNFILES_DIR/bazel_tools/tools/bash/runfiles/runfiles.bash" | |
| 17 elif [[ -n "${RUNFILES_MANIFEST_FILE:-}" ]]; then | |
| 18 runfiles_library="$( | |
| 19 grep -sm1 '^bazel_tools/tools/bash/runfiles/runfiles.bash ' \ | |
| 20 "$RUNFILES_MANIFEST_FILE" | cut -d' ' -f2- | |
| 21 )" | |
| 22 source "$runfiles_library" | |
| 23 elif [[ -d "$0.runfiles" ]]; then | |
| 24 RUNFILES_DIR="$0.runfiles" | |
| 25 export RUNFILES_DIR | |
| 26 source "$RUNFILES_DIR/bazel_tools/tools/bash/runfiles/runfiles.bash" | |
| 27 elif [[ -f "$0.runfiles_manifest" ]]; then | |
| 28 RUNFILES_MANIFEST_FILE="$0.runfiles_manifest" | |
| 29 export RUNFILES_MANIFEST_FILE | |
| 30 runfiles_library="$( | |
| 31 grep -sm1 '^bazel_tools/tools/bash/runfiles/runfiles.bash ' \ | |
| 32 "$RUNFILES_MANIFEST_FILE" | cut -d' ' -f2- | |
| 33 )" | |
| 34 source "$runfiles_library" | |
| 35 else | |
| 36 echo "Bazel runfiles are unavailable." >&2 | |
| 37 exit 1 | |
| 38 fi | |
| 39 bundle_dir="$(rlocation _main/hg-web/hg_web_server_bundle)" | |
| 40 else | |
| 41 bazel build -c opt //hg-web:hg_web_server_bundle | |
| 42 bundle_dir="bazel-bin/hg-web/hg_web_server_bundle" | |
| 43 fi | |
| 13 | 44 |
| 14 revision="$(hg log -r . -T '{node|short}')" | 45 revision="$(hg log -r . -T '{node|short}')" |
| 15 release_name="${revision}-$(date -u +%Y%m%dT%H%M%SZ)" | 46 release_name="${revision}-$(date -u +%Y%m%dT%H%M%SZ)" |
| 16 release_dir="${RELEASE_ROOT}/${release_name}" | 47 release_dir="${RELEASE_ROOT}/${release_name}" |
| 17 staging_dir="${RELEASE_ROOT}/.${release_name}.tmp" | 48 staging_dir="${RELEASE_ROOT}/.${release_name}.tmp" |
| 18 next_link="${ACTIVE_PATH}.next" | 49 next_link="${ACTIVE_PATH}.next" |
| 19 bundle_dir="bazel-bin/hg-web/hg_web_server_bundle" | |
| 20 previous_release="" | 50 previous_release="" |
| 21 promoted=0 | 51 promoted=0 |
| 22 | 52 |
| 23 health_check() { | 53 health_check() { |
| 24 for _ in $(seq 1 20); do | 54 for _ in $(seq 1 20); do |
| 51 sudo rm -rf "$staging_dir" | 81 sudo rm -rf "$staging_dir" |
| 52 exit 1 | 82 exit 1 |
| 53 } | 83 } |
| 54 trap rollback ERR | 84 trap rollback ERR |
| 55 | 85 |
| 56 bazel build -c opt //hg-web:hg_web_server_bundle | |
| 57 | |
| 58 sudo install -d -o root -g "$SERVICE_GROUP" -m 0755 "$RELEASE_ROOT" | 86 sudo install -d -o root -g "$SERVICE_GROUP" -m 0755 "$RELEASE_ROOT" |
| 59 sudo rm -rf "$staging_dir" | 87 sudo rm -rf "$staging_dir" |
| 60 sudo install -d -o "$SERVICE_USER" -g "$SERVICE_GROUP" -m 0755 "$staging_dir" | 88 sudo install -d -o "$SERVICE_USER" -g "$SERVICE_GROUP" -m 0755 "$staging_dir" |
| 61 sudo cp -a "${bundle_dir}/." "$staging_dir/" | 89 sudo cp -a "${bundle_dir}/." "$staging_dir/" |
| 62 sudo chown -R "$SERVICE_USER:$SERVICE_GROUP" "$staging_dir" | 90 sudo chown -R "$SERVICE_USER:$SERVICE_GROUP" "$staging_dir" |