Compare commits
2 Commits
26e231d63f
...
807204869f
| Author | SHA1 | Date | |
|---|---|---|---|
| 807204869f | |||
| ddb23b1da0 |
@@ -139,12 +139,17 @@ runs:
|
|||||||
f"port={os.environ['DATABASE_PORT']}"
|
f"port={os.environ['DATABASE_PORT']}"
|
||||||
)
|
)
|
||||||
|
|
||||||
for attempt in range(30):
|
max_attempts = 30
|
||||||
try:
|
for attempt in range(max_attempts):
|
||||||
with psycopg2.connect(dsn):
|
try:
|
||||||
break
|
with psycopg2.connect(dsn):
|
||||||
except psycopg2.OperationalError:
|
break
|
||||||
time.sleep(2)
|
except psycopg2.OperationalError as exc:
|
||||||
|
print(
|
||||||
|
f"Attempt {attempt + 1}/{max_attempts} failed to connect to Postgres: {exc}",
|
||||||
|
flush=True,
|
||||||
|
)
|
||||||
|
time.sleep(2)
|
||||||
else:
|
else:
|
||||||
raise SystemExit("Postgres service did not become available")
|
raise SystemExit("Postgres service did not become available")
|
||||||
PY
|
PY
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ jobs:
|
|||||||
github.event.repository.default_branch == 'refs/heads/main'
|
github.event.repository.default_branch == 'refs/heads/main'
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
)
|
||||||
) }}
|
) }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
env:
|
env:
|
||||||
@@ -42,14 +43,36 @@ jobs:
|
|||||||
key: ${{ secrets.SSH_PRIVATE_KEY }}
|
key: ${{ secrets.SSH_PRIVATE_KEY }}
|
||||||
script: |
|
script: |
|
||||||
IMAGE_SHA="${{ env.WORKFLOW_RUN_HEAD_SHA }}"
|
IMAGE_SHA="${{ env.WORKFLOW_RUN_HEAD_SHA }}"
|
||||||
|
FALLBACK_BRANCH="${{ env.WORKFLOW_RUN_HEAD_BRANCH }}"
|
||||||
|
IMAGE_TAG="${IMAGE_SHA}"
|
||||||
IMAGE_PATH="${{ env.REGISTRY_URL }}/${{ env.REGISTRY_ORG }}/${{ env.REGISTRY_IMAGE_NAME }}"
|
IMAGE_PATH="${{ env.REGISTRY_URL }}/${{ env.REGISTRY_ORG }}/${{ env.REGISTRY_IMAGE_NAME }}"
|
||||||
|
|
||||||
if [ -z "$IMAGE_SHA" ]; then
|
if [ -z "$FALLBACK_BRANCH" ]; then
|
||||||
echo "Missing workflow run head SHA; aborting deployment." >&2
|
FALLBACK_BRANCH="${{ env.WORKFLOW_RUN_REPO_DEFAULT_BRANCH }}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$FALLBACK_BRANCH" ]; then
|
||||||
|
FALLBACK_BRANCH="${{ env.REPOSITORY_DEFAULT_BRANCH }}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$IMAGE_TAG" ] && [ -n "$FALLBACK_BRANCH" ]; then
|
||||||
|
case "$FALLBACK_BRANCH" in
|
||||||
|
refs/heads/*)
|
||||||
|
FALLBACK_BRANCH="${FALLBACK_BRANCH#refs/heads/}"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ "$FALLBACK_BRANCH" = "${DEFAULT_BRANCH:-main}" ]; then
|
||||||
|
IMAGE_TAG="latest"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$IMAGE_TAG" ]; then
|
||||||
|
echo "Missing workflow run head SHA and no default-branch fallback available; aborting deployment." >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
docker pull "$IMAGE_PATH:$IMAGE_SHA"
|
docker pull "$IMAGE_PATH:$IMAGE_TAG"
|
||||||
docker stop calminer || true
|
docker stop calminer || true
|
||||||
docker rm calminer || true
|
docker rm calminer || true
|
||||||
docker run -d --name calminer -p 8000:8000 \
|
docker run -d --name calminer -p 8000:8000 \
|
||||||
@@ -60,7 +83,7 @@ jobs:
|
|||||||
-e DATABASE_PASSWORD=${{ secrets.DATABASE_PASSWORD }} \
|
-e DATABASE_PASSWORD=${{ secrets.DATABASE_PASSWORD }} \
|
||||||
-e DATABASE_NAME=${{ secrets.DATABASE_NAME }} \
|
-e DATABASE_NAME=${{ secrets.DATABASE_NAME }} \
|
||||||
-e DATABASE_SCHEMA=${{ secrets.DATABASE_SCHEMA }} \
|
-e DATABASE_SCHEMA=${{ secrets.DATABASE_SCHEMA }} \
|
||||||
"$IMAGE_PATH:$IMAGE_SHA"
|
"$IMAGE_PATH:$IMAGE_TAG"
|
||||||
|
|
||||||
for attempt in {1..10}; do
|
for attempt in {1..10}; do
|
||||||
if curl -fsS http://localhost:8000/health >/dev/null; then
|
if curl -fsS http://localhost:8000/health >/dev/null; then
|
||||||
|
|||||||
Reference in New Issue
Block a user