Compare commits
12 Commits
main
..
8441d0632e
| Author | SHA1 | Date | |
|---|---|---|---|
| 8441d0632e | |||
| c2f2f9bd5b | |||
| 9a33dc019a | |||
| 1920885835 | |||
| eb83d28ed5 | |||
| b6d9aea3bc | |||
| 2b9132a3a9 | |||
| e5bf56cc4d | |||
| 8f58708cd9 | |||
| 06dd0140d6 | |||
| 0aee7c4ed6 | |||
| cd661fe613 |
@@ -108,25 +108,6 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
docker push "${REGISTRY_HOST}/${PAGE_FETCHER_API_IMAGE}:${IMAGE_TAG}"
|
docker push "${REGISTRY_HOST}/${PAGE_FETCHER_API_IMAGE}:${IMAGE_TAG}"
|
||||||
|
|
||||||
# Watchtower's poll is the fallback, not the mechanism: 30s on staging but 300s on
|
|
||||||
# production, so without this a green run can sit five minutes ahead of the deploy it
|
|
||||||
# claims to have made. Copied from easyDent, including the soft failure -- an unset
|
|
||||||
# secret or an unreachable API must degrade to the poll, never fail the build.
|
|
||||||
- name: Trigger Watchtower redeploy
|
|
||||||
env:
|
|
||||||
URL_STAGING: ${{ secrets.WATCHTOWER_URL_STAGING }}
|
|
||||||
URL_PRODUCTION: ${{ secrets.WATCHTOWER_URL_PRODUCTION }}
|
|
||||||
TOKEN: ${{ secrets.WATCHTOWER_TOKEN }}
|
|
||||||
run: |
|
|
||||||
if [ "${IMAGE_TAG}" = "production" ]; then URL="${URL_PRODUCTION}"; else URL="${URL_STAGING}"; fi
|
|
||||||
if [ -n "${URL}" ] && [ -n "${TOKEN}" ]; then
|
|
||||||
echo "Triggering Watchtower at ${URL}"
|
|
||||||
curl -sf -m 30 -H "Authorization: Bearer ${TOKEN}" "${URL}" && echo " -> redeploy triggered" \
|
|
||||||
|| echo " -> trigger failed; Watchtower will still pick it up on the next poll"
|
|
||||||
else
|
|
||||||
echo "Watchtower push-trigger not configured (WATCHTOWER_* secrets unset); relying on the poll interval."
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Reclaim disk space (keep recent build cache)
|
- name: Reclaim disk space (keep recent build cache)
|
||||||
if: always()
|
if: always()
|
||||||
run: |
|
run: |
|
||||||
@@ -188,15 +169,10 @@ jobs:
|
|||||||
staging) HOST=192.168.1.111 ;;
|
staging) HOST=192.168.1.111 ;;
|
||||||
production) HOST=192.168.1.101 ;;
|
production) HOST=192.168.1.101 ;;
|
||||||
esac
|
esac
|
||||||
# `-L` follows redirects and we assert on the FINAL code, because a 302 from `/`
|
|
||||||
# is a healthy answer for a site running in UnderConstruction mode -- it means the
|
|
||||||
# app is up and routing. Asserting a bare 200 failed jecreativ.ro's first
|
|
||||||
# production deploy for doing exactly what it was configured to do.
|
|
||||||
#
|
|
||||||
# `|| CODE=000` for the same reason as above: curl exiting non-zero on a
|
# `|| CODE=000` for the same reason as above: curl exiting non-zero on a
|
||||||
# connection failure must produce a reportable code, not kill the step before
|
# connection failure must produce a reportable code, not kill the step before
|
||||||
# it can say what went wrong. (`-s` without `-f` already tolerates 4xx/5xx.)
|
# it can say what went wrong. (`-s` without `-f` already tolerates 4xx/5xx.)
|
||||||
CODE=$(curl -sL -o /dev/null -w '%{http_code}' -m 20 "http://${HOST}:${WEB_PORT}/") || CODE=000
|
CODE=$(curl -s -o /dev/null -w '%{http_code}' -m 20 "http://${HOST}:${WEB_PORT}/") || CODE=000
|
||||||
if [ "${CODE}" != "200" ]; then
|
if [ "${CODE}" != "200" ]; then
|
||||||
echo "::error::Home page returned ${CODE}."
|
echo "::error::Home page returned ${CODE}."
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
Reference in New Issue
Block a user