diff --git a/templates/academic-cv/.github/workflows/build.yml b/templates/academic-cv/.github/workflows/build.yml index f76ec93b..c52d926a 100644 --- a/templates/academic-cv/.github/workflows/build.yml +++ b/templates/academic-cv/.github/workflows/build.yml @@ -51,8 +51,31 @@ jobs: - name: Get Hugo Version id: hugo-version run: | - VERSION=$(grep "hugo_version" hugoblox.yaml | awk '{print $2}' | tr -d "'\""") + # Install pinned yq version for robust YAML parsing + YQ_VERSION="v4.44.1" + if ! wget -q --tries=3 --waitretry=1 -O /tmp/yq \ + "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64"; then + echo "::error::Failed to download yq" + exit 1 + fi + sudo mv /tmp/yq /usr/local/bin/yq + sudo chmod +x /usr/local/bin/yq + + # Read hugo_version from hugoblox.yaml + VERSION=$(yq '.hugo_version // ""' hugoblox.yaml 2>/dev/null | grep -v '^null$' || true) + + # Fallback to a known stable version if not specified + DEFAULT_VERSION="0.154.5" + VERSION=${VERSION:-$DEFAULT_VERSION} + + # Validate version format (basic check) + if [[ ! "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "::warning::Invalid hugo_version format '$VERSION', using default $DEFAULT_VERSION" + VERSION="$DEFAULT_VERSION" + fi + echo "HUGO_VERSION=$VERSION" >> $GITHUB_ENV + echo "Using Hugo version: $VERSION" - name: Install dependencies run: | diff --git a/templates/academic-cv/.github/workflows/deploy.yml b/templates/academic-cv/.github/workflows/deploy.yml index 14d51016..f9131645 100644 --- a/templates/academic-cv/.github/workflows/deploy.yml +++ b/templates/academic-cv/.github/workflows/deploy.yml @@ -34,9 +34,26 @@ jobs: - name: Check deploy host id: check run: | + # Install pinned yq version for robust YAML parsing + YQ_VERSION="v4.44.1" + if ! wget -q --tries=3 --waitretry=1 -O /tmp/yq \ + "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64"; then + echo "::error::Failed to download yq" + exit 1 + fi + sudo mv /tmp/yq /usr/local/bin/yq + sudo chmod +x /usr/local/bin/yq + # Read deploy.host from hugoblox.yaml, default to github-pages - HOST=$(grep -A5 "^deploy:" hugoblox.yaml 2>/dev/null | grep "host:" | awk '{print $2}' | tr -d "'\""" || echo "github-pages") + HOST=$(yq '.deploy.host // ""' hugoblox.yaml 2>/dev/null | grep -v '^null$' || true) HOST=${HOST:-github-pages} + + # Validate known hosts + if [[ ! "$HOST" =~ ^(github-pages|netlify|vercel|cloudflare|none)$ ]]; then + echo "::warning::Unknown deploy host '$HOST', defaulting to github-pages" + HOST="github-pages" + fi + echo "host=$HOST" >> $GITHUB_OUTPUT echo "Deployment target: $HOST" diff --git a/templates/data-science-blog/.github/workflows/build.yml b/templates/data-science-blog/.github/workflows/build.yml index f76ec93b..c52d926a 100644 --- a/templates/data-science-blog/.github/workflows/build.yml +++ b/templates/data-science-blog/.github/workflows/build.yml @@ -51,8 +51,31 @@ jobs: - name: Get Hugo Version id: hugo-version run: | - VERSION=$(grep "hugo_version" hugoblox.yaml | awk '{print $2}' | tr -d "'\""") + # Install pinned yq version for robust YAML parsing + YQ_VERSION="v4.44.1" + if ! wget -q --tries=3 --waitretry=1 -O /tmp/yq \ + "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64"; then + echo "::error::Failed to download yq" + exit 1 + fi + sudo mv /tmp/yq /usr/local/bin/yq + sudo chmod +x /usr/local/bin/yq + + # Read hugo_version from hugoblox.yaml + VERSION=$(yq '.hugo_version // ""' hugoblox.yaml 2>/dev/null | grep -v '^null$' || true) + + # Fallback to a known stable version if not specified + DEFAULT_VERSION="0.154.5" + VERSION=${VERSION:-$DEFAULT_VERSION} + + # Validate version format (basic check) + if [[ ! "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "::warning::Invalid hugo_version format '$VERSION', using default $DEFAULT_VERSION" + VERSION="$DEFAULT_VERSION" + fi + echo "HUGO_VERSION=$VERSION" >> $GITHUB_ENV + echo "Using Hugo version: $VERSION" - name: Install dependencies run: | diff --git a/templates/data-science-blog/.github/workflows/deploy.yml b/templates/data-science-blog/.github/workflows/deploy.yml index 14d51016..f9131645 100644 --- a/templates/data-science-blog/.github/workflows/deploy.yml +++ b/templates/data-science-blog/.github/workflows/deploy.yml @@ -34,9 +34,26 @@ jobs: - name: Check deploy host id: check run: | + # Install pinned yq version for robust YAML parsing + YQ_VERSION="v4.44.1" + if ! wget -q --tries=3 --waitretry=1 -O /tmp/yq \ + "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64"; then + echo "::error::Failed to download yq" + exit 1 + fi + sudo mv /tmp/yq /usr/local/bin/yq + sudo chmod +x /usr/local/bin/yq + # Read deploy.host from hugoblox.yaml, default to github-pages - HOST=$(grep -A5 "^deploy:" hugoblox.yaml 2>/dev/null | grep "host:" | awk '{print $2}' | tr -d "'\""" || echo "github-pages") + HOST=$(yq '.deploy.host // ""' hugoblox.yaml 2>/dev/null | grep -v '^null$' || true) HOST=${HOST:-github-pages} + + # Validate known hosts + if [[ ! "$HOST" =~ ^(github-pages|netlify|vercel|cloudflare|none)$ ]]; then + echo "::warning::Unknown deploy host '$HOST', defaulting to github-pages" + HOST="github-pages" + fi + echo "host=$HOST" >> $GITHUB_OUTPUT echo "Deployment target: $HOST" diff --git a/templates/dev-portfolio/.github/workflows/build.yml b/templates/dev-portfolio/.github/workflows/build.yml index f76ec93b..c52d926a 100644 --- a/templates/dev-portfolio/.github/workflows/build.yml +++ b/templates/dev-portfolio/.github/workflows/build.yml @@ -51,8 +51,31 @@ jobs: - name: Get Hugo Version id: hugo-version run: | - VERSION=$(grep "hugo_version" hugoblox.yaml | awk '{print $2}' | tr -d "'\""") + # Install pinned yq version for robust YAML parsing + YQ_VERSION="v4.44.1" + if ! wget -q --tries=3 --waitretry=1 -O /tmp/yq \ + "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64"; then + echo "::error::Failed to download yq" + exit 1 + fi + sudo mv /tmp/yq /usr/local/bin/yq + sudo chmod +x /usr/local/bin/yq + + # Read hugo_version from hugoblox.yaml + VERSION=$(yq '.hugo_version // ""' hugoblox.yaml 2>/dev/null | grep -v '^null$' || true) + + # Fallback to a known stable version if not specified + DEFAULT_VERSION="0.154.5" + VERSION=${VERSION:-$DEFAULT_VERSION} + + # Validate version format (basic check) + if [[ ! "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "::warning::Invalid hugo_version format '$VERSION', using default $DEFAULT_VERSION" + VERSION="$DEFAULT_VERSION" + fi + echo "HUGO_VERSION=$VERSION" >> $GITHUB_ENV + echo "Using Hugo version: $VERSION" - name: Install dependencies run: | diff --git a/templates/dev-portfolio/.github/workflows/deploy.yml b/templates/dev-portfolio/.github/workflows/deploy.yml index 14d51016..f9131645 100644 --- a/templates/dev-portfolio/.github/workflows/deploy.yml +++ b/templates/dev-portfolio/.github/workflows/deploy.yml @@ -34,9 +34,26 @@ jobs: - name: Check deploy host id: check run: | + # Install pinned yq version for robust YAML parsing + YQ_VERSION="v4.44.1" + if ! wget -q --tries=3 --waitretry=1 -O /tmp/yq \ + "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64"; then + echo "::error::Failed to download yq" + exit 1 + fi + sudo mv /tmp/yq /usr/local/bin/yq + sudo chmod +x /usr/local/bin/yq + # Read deploy.host from hugoblox.yaml, default to github-pages - HOST=$(grep -A5 "^deploy:" hugoblox.yaml 2>/dev/null | grep "host:" | awk '{print $2}' | tr -d "'\""" || echo "github-pages") + HOST=$(yq '.deploy.host // ""' hugoblox.yaml 2>/dev/null | grep -v '^null$' || true) HOST=${HOST:-github-pages} + + # Validate known hosts + if [[ ! "$HOST" =~ ^(github-pages|netlify|vercel|cloudflare|none)$ ]]; then + echo "::warning::Unknown deploy host '$HOST', defaulting to github-pages" + HOST="github-pages" + fi + echo "host=$HOST" >> $GITHUB_OUTPUT echo "Deployment target: $HOST" diff --git a/templates/documentation/.github/workflows/build.yml b/templates/documentation/.github/workflows/build.yml index f76ec93b..c52d926a 100644 --- a/templates/documentation/.github/workflows/build.yml +++ b/templates/documentation/.github/workflows/build.yml @@ -51,8 +51,31 @@ jobs: - name: Get Hugo Version id: hugo-version run: | - VERSION=$(grep "hugo_version" hugoblox.yaml | awk '{print $2}' | tr -d "'\""") + # Install pinned yq version for robust YAML parsing + YQ_VERSION="v4.44.1" + if ! wget -q --tries=3 --waitretry=1 -O /tmp/yq \ + "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64"; then + echo "::error::Failed to download yq" + exit 1 + fi + sudo mv /tmp/yq /usr/local/bin/yq + sudo chmod +x /usr/local/bin/yq + + # Read hugo_version from hugoblox.yaml + VERSION=$(yq '.hugo_version // ""' hugoblox.yaml 2>/dev/null | grep -v '^null$' || true) + + # Fallback to a known stable version if not specified + DEFAULT_VERSION="0.154.5" + VERSION=${VERSION:-$DEFAULT_VERSION} + + # Validate version format (basic check) + if [[ ! "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "::warning::Invalid hugo_version format '$VERSION', using default $DEFAULT_VERSION" + VERSION="$DEFAULT_VERSION" + fi + echo "HUGO_VERSION=$VERSION" >> $GITHUB_ENV + echo "Using Hugo version: $VERSION" - name: Install dependencies run: | diff --git a/templates/documentation/.github/workflows/deploy.yml b/templates/documentation/.github/workflows/deploy.yml index 14d51016..f9131645 100644 --- a/templates/documentation/.github/workflows/deploy.yml +++ b/templates/documentation/.github/workflows/deploy.yml @@ -34,9 +34,26 @@ jobs: - name: Check deploy host id: check run: | + # Install pinned yq version for robust YAML parsing + YQ_VERSION="v4.44.1" + if ! wget -q --tries=3 --waitretry=1 -O /tmp/yq \ + "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64"; then + echo "::error::Failed to download yq" + exit 1 + fi + sudo mv /tmp/yq /usr/local/bin/yq + sudo chmod +x /usr/local/bin/yq + # Read deploy.host from hugoblox.yaml, default to github-pages - HOST=$(grep -A5 "^deploy:" hugoblox.yaml 2>/dev/null | grep "host:" | awk '{print $2}' | tr -d "'\""" || echo "github-pages") + HOST=$(yq '.deploy.host // ""' hugoblox.yaml 2>/dev/null | grep -v '^null$' || true) HOST=${HOST:-github-pages} + + # Validate known hosts + if [[ ! "$HOST" =~ ^(github-pages|netlify|vercel|cloudflare|none)$ ]]; then + echo "::warning::Unknown deploy host '$HOST', defaulting to github-pages" + HOST="github-pages" + fi + echo "host=$HOST" >> $GITHUB_OUTPUT echo "Deployment target: $HOST" diff --git a/templates/link-in-bio/.github/workflows/build.yml b/templates/link-in-bio/.github/workflows/build.yml index f76ec93b..c52d926a 100644 --- a/templates/link-in-bio/.github/workflows/build.yml +++ b/templates/link-in-bio/.github/workflows/build.yml @@ -51,8 +51,31 @@ jobs: - name: Get Hugo Version id: hugo-version run: | - VERSION=$(grep "hugo_version" hugoblox.yaml | awk '{print $2}' | tr -d "'\""") + # Install pinned yq version for robust YAML parsing + YQ_VERSION="v4.44.1" + if ! wget -q --tries=3 --waitretry=1 -O /tmp/yq \ + "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64"; then + echo "::error::Failed to download yq" + exit 1 + fi + sudo mv /tmp/yq /usr/local/bin/yq + sudo chmod +x /usr/local/bin/yq + + # Read hugo_version from hugoblox.yaml + VERSION=$(yq '.hugo_version // ""' hugoblox.yaml 2>/dev/null | grep -v '^null$' || true) + + # Fallback to a known stable version if not specified + DEFAULT_VERSION="0.154.5" + VERSION=${VERSION:-$DEFAULT_VERSION} + + # Validate version format (basic check) + if [[ ! "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "::warning::Invalid hugo_version format '$VERSION', using default $DEFAULT_VERSION" + VERSION="$DEFAULT_VERSION" + fi + echo "HUGO_VERSION=$VERSION" >> $GITHUB_ENV + echo "Using Hugo version: $VERSION" - name: Install dependencies run: | diff --git a/templates/link-in-bio/.github/workflows/deploy.yml b/templates/link-in-bio/.github/workflows/deploy.yml index 14d51016..f9131645 100644 --- a/templates/link-in-bio/.github/workflows/deploy.yml +++ b/templates/link-in-bio/.github/workflows/deploy.yml @@ -34,9 +34,26 @@ jobs: - name: Check deploy host id: check run: | + # Install pinned yq version for robust YAML parsing + YQ_VERSION="v4.44.1" + if ! wget -q --tries=3 --waitretry=1 -O /tmp/yq \ + "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64"; then + echo "::error::Failed to download yq" + exit 1 + fi + sudo mv /tmp/yq /usr/local/bin/yq + sudo chmod +x /usr/local/bin/yq + # Read deploy.host from hugoblox.yaml, default to github-pages - HOST=$(grep -A5 "^deploy:" hugoblox.yaml 2>/dev/null | grep "host:" | awk '{print $2}' | tr -d "'\""" || echo "github-pages") + HOST=$(yq '.deploy.host // ""' hugoblox.yaml 2>/dev/null | grep -v '^null$' || true) HOST=${HOST:-github-pages} + + # Validate known hosts + if [[ ! "$HOST" =~ ^(github-pages|netlify|vercel|cloudflare|none)$ ]]; then + echo "::warning::Unknown deploy host '$HOST', defaulting to github-pages" + HOST="github-pages" + fi + echo "host=$HOST" >> $GITHUB_OUTPUT echo "Deployment target: $HOST" diff --git a/templates/markdown-slides/.github/workflows/build.yml b/templates/markdown-slides/.github/workflows/build.yml index f76ec93b..c52d926a 100644 --- a/templates/markdown-slides/.github/workflows/build.yml +++ b/templates/markdown-slides/.github/workflows/build.yml @@ -51,8 +51,31 @@ jobs: - name: Get Hugo Version id: hugo-version run: | - VERSION=$(grep "hugo_version" hugoblox.yaml | awk '{print $2}' | tr -d "'\""") + # Install pinned yq version for robust YAML parsing + YQ_VERSION="v4.44.1" + if ! wget -q --tries=3 --waitretry=1 -O /tmp/yq \ + "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64"; then + echo "::error::Failed to download yq" + exit 1 + fi + sudo mv /tmp/yq /usr/local/bin/yq + sudo chmod +x /usr/local/bin/yq + + # Read hugo_version from hugoblox.yaml + VERSION=$(yq '.hugo_version // ""' hugoblox.yaml 2>/dev/null | grep -v '^null$' || true) + + # Fallback to a known stable version if not specified + DEFAULT_VERSION="0.154.5" + VERSION=${VERSION:-$DEFAULT_VERSION} + + # Validate version format (basic check) + if [[ ! "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "::warning::Invalid hugo_version format '$VERSION', using default $DEFAULT_VERSION" + VERSION="$DEFAULT_VERSION" + fi + echo "HUGO_VERSION=$VERSION" >> $GITHUB_ENV + echo "Using Hugo version: $VERSION" - name: Install dependencies run: | diff --git a/templates/markdown-slides/.github/workflows/deploy.yml b/templates/markdown-slides/.github/workflows/deploy.yml index 14d51016..f9131645 100644 --- a/templates/markdown-slides/.github/workflows/deploy.yml +++ b/templates/markdown-slides/.github/workflows/deploy.yml @@ -34,9 +34,26 @@ jobs: - name: Check deploy host id: check run: | + # Install pinned yq version for robust YAML parsing + YQ_VERSION="v4.44.1" + if ! wget -q --tries=3 --waitretry=1 -O /tmp/yq \ + "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64"; then + echo "::error::Failed to download yq" + exit 1 + fi + sudo mv /tmp/yq /usr/local/bin/yq + sudo chmod +x /usr/local/bin/yq + # Read deploy.host from hugoblox.yaml, default to github-pages - HOST=$(grep -A5 "^deploy:" hugoblox.yaml 2>/dev/null | grep "host:" | awk '{print $2}' | tr -d "'\""" || echo "github-pages") + HOST=$(yq '.deploy.host // ""' hugoblox.yaml 2>/dev/null | grep -v '^null$' || true) HOST=${HOST:-github-pages} + + # Validate known hosts + if [[ ! "$HOST" =~ ^(github-pages|netlify|vercel|cloudflare|none)$ ]]; then + echo "::warning::Unknown deploy host '$HOST', defaulting to github-pages" + HOST="github-pages" + fi + echo "host=$HOST" >> $GITHUB_OUTPUT echo "Deployment target: $HOST" diff --git a/templates/resume/.github/workflows/build.yml b/templates/resume/.github/workflows/build.yml index f76ec93b..c52d926a 100644 --- a/templates/resume/.github/workflows/build.yml +++ b/templates/resume/.github/workflows/build.yml @@ -51,8 +51,31 @@ jobs: - name: Get Hugo Version id: hugo-version run: | - VERSION=$(grep "hugo_version" hugoblox.yaml | awk '{print $2}' | tr -d "'\""") + # Install pinned yq version for robust YAML parsing + YQ_VERSION="v4.44.1" + if ! wget -q --tries=3 --waitretry=1 -O /tmp/yq \ + "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64"; then + echo "::error::Failed to download yq" + exit 1 + fi + sudo mv /tmp/yq /usr/local/bin/yq + sudo chmod +x /usr/local/bin/yq + + # Read hugo_version from hugoblox.yaml + VERSION=$(yq '.hugo_version // ""' hugoblox.yaml 2>/dev/null | grep -v '^null$' || true) + + # Fallback to a known stable version if not specified + DEFAULT_VERSION="0.154.5" + VERSION=${VERSION:-$DEFAULT_VERSION} + + # Validate version format (basic check) + if [[ ! "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "::warning::Invalid hugo_version format '$VERSION', using default $DEFAULT_VERSION" + VERSION="$DEFAULT_VERSION" + fi + echo "HUGO_VERSION=$VERSION" >> $GITHUB_ENV + echo "Using Hugo version: $VERSION" - name: Install dependencies run: | diff --git a/templates/resume/.github/workflows/deploy.yml b/templates/resume/.github/workflows/deploy.yml index 14d51016..f9131645 100644 --- a/templates/resume/.github/workflows/deploy.yml +++ b/templates/resume/.github/workflows/deploy.yml @@ -34,9 +34,26 @@ jobs: - name: Check deploy host id: check run: | + # Install pinned yq version for robust YAML parsing + YQ_VERSION="v4.44.1" + if ! wget -q --tries=3 --waitretry=1 -O /tmp/yq \ + "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64"; then + echo "::error::Failed to download yq" + exit 1 + fi + sudo mv /tmp/yq /usr/local/bin/yq + sudo chmod +x /usr/local/bin/yq + # Read deploy.host from hugoblox.yaml, default to github-pages - HOST=$(grep -A5 "^deploy:" hugoblox.yaml 2>/dev/null | grep "host:" | awk '{print $2}' | tr -d "'\""" || echo "github-pages") + HOST=$(yq '.deploy.host // ""' hugoblox.yaml 2>/dev/null | grep -v '^null$' || true) HOST=${HOST:-github-pages} + + # Validate known hosts + if [[ ! "$HOST" =~ ^(github-pages|netlify|vercel|cloudflare|none)$ ]]; then + echo "::warning::Unknown deploy host '$HOST', defaulting to github-pages" + HOST="github-pages" + fi + echo "host=$HOST" >> $GITHUB_OUTPUT echo "Deployment target: $HOST" diff --git a/templates/startup-landing-page/.github/workflows/build.yml b/templates/startup-landing-page/.github/workflows/build.yml index f76ec93b..c52d926a 100644 --- a/templates/startup-landing-page/.github/workflows/build.yml +++ b/templates/startup-landing-page/.github/workflows/build.yml @@ -51,8 +51,31 @@ jobs: - name: Get Hugo Version id: hugo-version run: | - VERSION=$(grep "hugo_version" hugoblox.yaml | awk '{print $2}' | tr -d "'\""") + # Install pinned yq version for robust YAML parsing + YQ_VERSION="v4.44.1" + if ! wget -q --tries=3 --waitretry=1 -O /tmp/yq \ + "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64"; then + echo "::error::Failed to download yq" + exit 1 + fi + sudo mv /tmp/yq /usr/local/bin/yq + sudo chmod +x /usr/local/bin/yq + + # Read hugo_version from hugoblox.yaml + VERSION=$(yq '.hugo_version // ""' hugoblox.yaml 2>/dev/null | grep -v '^null$' || true) + + # Fallback to a known stable version if not specified + DEFAULT_VERSION="0.154.5" + VERSION=${VERSION:-$DEFAULT_VERSION} + + # Validate version format (basic check) + if [[ ! "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "::warning::Invalid hugo_version format '$VERSION', using default $DEFAULT_VERSION" + VERSION="$DEFAULT_VERSION" + fi + echo "HUGO_VERSION=$VERSION" >> $GITHUB_ENV + echo "Using Hugo version: $VERSION" - name: Install dependencies run: | diff --git a/templates/startup-landing-page/.github/workflows/deploy.yml b/templates/startup-landing-page/.github/workflows/deploy.yml index 14d51016..f9131645 100644 --- a/templates/startup-landing-page/.github/workflows/deploy.yml +++ b/templates/startup-landing-page/.github/workflows/deploy.yml @@ -34,9 +34,26 @@ jobs: - name: Check deploy host id: check run: | + # Install pinned yq version for robust YAML parsing + YQ_VERSION="v4.44.1" + if ! wget -q --tries=3 --waitretry=1 -O /tmp/yq \ + "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64"; then + echo "::error::Failed to download yq" + exit 1 + fi + sudo mv /tmp/yq /usr/local/bin/yq + sudo chmod +x /usr/local/bin/yq + # Read deploy.host from hugoblox.yaml, default to github-pages - HOST=$(grep -A5 "^deploy:" hugoblox.yaml 2>/dev/null | grep "host:" | awk '{print $2}' | tr -d "'\""" || echo "github-pages") + HOST=$(yq '.deploy.host // ""' hugoblox.yaml 2>/dev/null | grep -v '^null$' || true) HOST=${HOST:-github-pages} + + # Validate known hosts + if [[ ! "$HOST" =~ ^(github-pages|netlify|vercel|cloudflare|none)$ ]]; then + echo "::warning::Unknown deploy host '$HOST', defaulting to github-pages" + HOST="github-pages" + fi + echo "host=$HOST" >> $GITHUB_OUTPUT echo "Deployment target: $HOST"