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