fix deploy
Build & Deploy / Build & Push Docker Image (push) Failing after 40s
Build & Deploy / Deploy to VPS (push) Has been skipped

This commit is contained in:
root
2026-07-04 01:26:04 -04:00
parent 7a7fad65d0
commit f4097b0b2f
+31 -22
View File
@@ -23,22 +23,27 @@ jobs:
build-image:
name: Build & Push Docker Image
runs-on: ubuntu-latest
container:
image: docker:27-git
defaults:
run:
shell: sh
outputs:
image_repository: ${{ steps.image-meta.outputs.repository }}
docker_image: ${{ steps.image-meta.outputs.full }}
steps:
- name: Checkout repository
shell: bash
shell: sh
env:
GITEA_SERVER_URL: ${{ gitea.server_url }}
GITEA_REPOSITORY: ${{ gitea.repository }}
GITEA_SHA: ${{ gitea.sha }}
CHECKOUT_TOKEN: ${{ gitea.token }}
run: |
set -euo pipefail
set -eu
if ! command -v git >/dev/null 2>&1; then
apt-get update -qq
apt-get install -y -qq ca-certificates git
echo "::error::git is not available in the job image. Use a runner image that includes git, such as docker:27-git."
exit 1
fi
WORKSPACE="${GITHUB_WORKSPACE:-$PWD}"
@@ -70,8 +75,8 @@ jobs:
- name: Ensure Docker CLI is available
run: |
if ! command -v docker >/dev/null 2>&1; then
apt-get update -qq
apt-get install -y -qq docker.io
echo "::error::docker is not available in the job image. Use a runner image that includes Docker CLI and Buildx."
exit 1
fi
docker --version
docker info >/dev/null
@@ -116,7 +121,7 @@ jobs:
fi
- name: Validate public URLs
shell: bash
shell: sh
env:
NEXT_PUBLIC_API_URL: ${{ secrets.NEXT_PUBLIC_API_URL }}
NEXT_PUBLIC_HOMEPAGE_URL: ${{ secrets.NEXT_PUBLIC_HOMEPAGE_URL }}
@@ -125,27 +130,28 @@ jobs:
NEXT_PUBLIC_ADMIN_URL: ${{ secrets.NEXT_PUBLIC_ADMIN_URL }}
SITE_ORIGIN: ${{ secrets.SITE_ORIGIN }}
run: |
for variable in \
NEXT_PUBLIC_API_URL \
NEXT_PUBLIC_HOMEPAGE_URL \
NEXT_PUBLIC_STOREFRONT_URL \
NEXT_PUBLIC_DASHBOARD_URL \
NEXT_PUBLIC_ADMIN_URL \
SITE_ORIGIN
do
value="${!variable}"
validate_url() {
name="$1"
value="$2"
if [ -z "$value" ]; then
echo "::error::$variable is missing — add it to Gitea Actions secrets"
echo "::error::$name is missing — add it to Gitea Actions secrets"
exit 1
fi
case "$value" in
http://*|https://*) ;;
*)
echo "::error::$variable must be an absolute URL (got: $value)"
echo "::error::$name must be an absolute URL (got: $value)"
exit 1
;;
esac
done
}
validate_url NEXT_PUBLIC_API_URL "$NEXT_PUBLIC_API_URL"
validate_url NEXT_PUBLIC_HOMEPAGE_URL "$NEXT_PUBLIC_HOMEPAGE_URL"
validate_url NEXT_PUBLIC_STOREFRONT_URL "$NEXT_PUBLIC_STOREFRONT_URL"
validate_url NEXT_PUBLIC_DASHBOARD_URL "$NEXT_PUBLIC_DASHBOARD_URL"
validate_url NEXT_PUBLIC_ADMIN_URL "$NEXT_PUBLIC_ADMIN_URL"
validate_url SITE_ORIGIN "$SITE_ORIGIN"
- name: Log in to Gitea Container Registry
if: steps.registry-check.outputs.available == 'true'
@@ -210,8 +216,8 @@ jobs:
run: |
set -euo pipefail
if ! command -v git >/dev/null 2>&1; then
apt-get update -qq
apt-get install -y -qq ca-certificates git
echo "::error::git must be available in the runner image; this workflow cannot install git while runner DNS is unavailable."
exit 1
fi
WORKSPACE="${GITHUB_WORKSPACE:-$PWD}"
@@ -255,7 +261,10 @@ jobs:
- name: Install SSH client
if: steps.check-creds.outputs.skip == 'false'
run: |
apt-get update -qq && apt-get install -y -qq openssh-client
if ! command -v ssh >/dev/null 2>&1 || ! command -v scp >/dev/null 2>&1; then
echo "::error::ssh and scp must be available in the runner image; this workflow cannot install openssh-client while runner DNS is unavailable."
exit 1
fi
- name: Set up SSH key
if: steps.check-creds.outputs.skip == 'false'