refactor: move json/ to top-level, remove frontend/, update workflows

- Move frontend/public/json/ to json/ (top-level)
- Update all workflow path references to json/
- Delete frontend-cicd.yml workflow
- Delete frontend/ directory entirely
- Clean up .gitattributes (remove frontend entries)
This commit is contained in:
CanbiZ (MickLesk)
2026-03-12 14:11:07 +01:00
parent aacbe238ba
commit c87e326387
169 changed files with 31 additions and 18049 deletions

2
.github/autolabeler-config.json generated vendored
View File

@@ -97,7 +97,7 @@
{
"fileStatus": "modified",
"includeGlobs": [
"frontend/public/json/**"
"json/**"
],
"excludeGlobs": []
}

View File

@@ -47,7 +47,7 @@ jobs:
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git config --global user.name "GitHub Actions[bot]"
git checkout -b update_versions || git checkout update_versions
git add frontend/public/json/versions.json
git add json/versions.json
if git diff --cached --quiet; then
echo "No changes detected."
echo "changed=false" >> "$GITHUB_ENV"

View File

@@ -46,7 +46,7 @@ jobs:
run: |
page=1
projects_file="project_json"
output_file="frontend/public/json/versions.json"
output_file="json/versions.json"
echo "[]" > $output_file
@@ -95,7 +95,7 @@ jobs:
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git config --global user.name "GitHub Actions[bot]"
git checkout -b update_versions || git checkout update_versions
git add frontend/public/json/versions.json
git add json/versions.json
if git diff --cached --quiet; then
echo "No changes detected."
echo "changed=false" >> "$GITHUB_ENV"

View File

@@ -11,8 +11,8 @@ permissions:
pull-requests: write
env:
SOURCES_FILE: frontend/public/json/version-sources.json
VERSIONS_FILE: frontend/public/json/versions.json
SOURCES_FILE: json/version-sources.json
VERSIONS_FILE: json/versions.json
jobs:
update-versions:

View File

@@ -59,19 +59,19 @@ jobs:
FILES=(
"ct/${TITLE}.sh"
"install/${TITLE}-install.sh"
"frontend/public/json/${TITLE}.json"
"json/${TITLE}.json"
)
;;
vm)
FILES=(
"vm/${TITLE}.sh"
"frontend/public/json/${TITLE}.json"
"json/${TITLE}.json"
)
;;
addon)
FILES=(
"tools/addon/${TITLE}.sh"
"frontend/public/json/${TITLE}.json"
"json/${TITLE}.json"
)
;;
pve)
@@ -122,7 +122,7 @@ jobs:
JSON_FILE=""
case "$SCRIPT_TYPE" in
ct|vm|addon)
JSON_FILE="frontend/public/json/${TITLE}.json"
JSON_FILE="json/${TITLE}.json"
;;
esac

View File

@@ -124,20 +124,20 @@ jobs:
rm -f "ct/${TITLE}.sh"
rm -f "ct/headers/${TITLE}"
rm -f "install/${TITLE}-install.sh"
rm -f "frontend/public/json/${TITLE}.json"
rm -f "json/${TITLE}.json"
# Also try alpine variant
if [[ "$TITLE" == alpine-* ]]; then
stripped="${TITLE#alpine-}"
rm -f "frontend/public/json/${stripped}.json"
rm -f "json/${stripped}.json"
fi
;;
vm)
rm -f "vm/${TITLE}.sh"
rm -f "frontend/public/json/${TITLE}.json"
rm -f "json/${TITLE}.json"
;;
addon)
rm -f "tools/addon/${TITLE}.sh"
rm -f "frontend/public/json/${TITLE}.json"
rm -f "json/${TITLE}.json"
;;
pve)
rm -f "tools/pve/${TITLE}.sh"

77
.github/workflows/frontend-cicd.yml generated vendored
View File

@@ -1,77 +0,0 @@
# Based on https://github.com/actions/starter-workflows/blob/main/pages/nextjs.yml
name: Frontend CI/CD
on:
push:
branches: ["main"]
paths:
- frontend/**
pull_request:
branches: ["main"]
types: [opened, synchronize, reopened, edited]
paths:
- frontend/**
workflow_dispatch:
permissions:
contents: read
concurrency:
group: pages-${{ github.ref }}
cancel-in-progress: false
jobs:
build:
if: github.repository == 'community-scripts/ProxmoxVED'
runs-on: ubuntu-latest
defaults:
run:
working-directory: frontend # Set default working directory for all run steps
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm
cache-dependency-path: frontend/package-lock.json
- name: Install dependencies
run: npm ci --prefer-offline --legacy-peer-deps
- name: Run tests
run: npm run test
- name: Configure Next.js for pages
uses: actions/configure-pages@v5
with:
static_site_generator: next
- name: Build with Next.js
run: npm run build
- name: Upload artifact
if: github.ref == 'refs/heads/main'
uses: actions/upload-pages-artifact@v3
with:
path: frontend/out
deploy:
runs-on: ubuntu-latest
needs: build
if: github.ref == 'refs/heads/main' && github.repository == 'community-scripts/ProxmoxVED'
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

View File

@@ -101,11 +101,11 @@ jobs:
missing_files+="install/${script_name}-install.sh "
fi
# JSON check with alpine fallback
json_file="frontend/public/json/${script_name}.json"
json_file="json/${script_name}.json"
if [[ ! -f "$json_file" ]]; then
if [[ "$script_name" == alpine-* ]]; then
stripped_name="${script_name#alpine-}"
alt_json="frontend/public/json/${stripped_name}.json"
alt_json="json/${stripped_name}.json"
if [[ -f "$alt_json" ]]; then
echo "Using alpine fallback JSON: $alt_json"
echo "json_fallback=$alt_json" >> $GITHUB_OUTPUT
@@ -128,7 +128,7 @@ jobs:
missing_files+="vm/${script_name}.sh "
fi
# JSON is optional for VMs but check anyway
json_file="frontend/public/json/${script_name}.json"
json_file="json/${script_name}.json"
if [[ ! -f "$json_file" ]]; then
echo "json file not found (optional): $json_file"
fi
@@ -140,7 +140,7 @@ jobs:
missing_files+="tools/addon/${script_name}.sh "
fi
# JSON is optional for addons
json_file="frontend/public/json/${script_name}.json"
json_file="json/${script_name}.json"
if [[ ! -f "$json_file" ]]; then
echo "json file not found (optional): $json_file"
fi
@@ -231,7 +231,7 @@ jobs:
if [[ -n "$json_fallback" ]]; then
cp ../${json_fallback} frontend/public/json/ || true
else
cp ../frontend/public/json/${script_name}.json frontend/public/json/ 2>/dev/null || true
cp ../json/${script_name}.json frontend/public/json/ 2>/dev/null || true
fi
# Update URLs in ct script
@@ -242,7 +242,7 @@ jobs:
;;
vm)
cp ../vm/${script_name}.sh vm/
cp ../frontend/public/json/${script_name}.json frontend/public/json/ 2>/dev/null || true
cp ../json/${script_name}.json frontend/public/json/ 2>/dev/null || true
# Update URLs in vm script
sed -i "s|https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func|https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func|" vm/${script_name}.sh
@@ -251,7 +251,7 @@ jobs:
addon)
mkdir -p tools/addon
cp ../tools/addon/${script_name}.sh tools/addon/
cp ../frontend/public/json/${script_name}.json frontend/public/json/ 2>/dev/null || true
cp ../json/${script_name}.json frontend/public/json/ 2>/dev/null || true
# Update URLs in addon script
sed -i "s|community-scripts/ProxmoxVED|community-scripts/ProxmoxVE|g" tools/addon/${script_name}.sh

View File

@@ -5,7 +5,7 @@ on:
branches:
- main
paths:
- "frontend/public/json/**"
- "json/**"
jobs:
push-json:
@@ -19,7 +19,7 @@ jobs:
- name: Get changed JSON files with slug
id: changed
run: |
changed=$(git diff --name-only "${{ github.event.before }}" "${{ github.event.after }}" -- frontend/public/json/ | grep '\.json$' || true)
changed=$(git diff --name-only "${{ github.event.before }}" "${{ github.event.after }}" -- json/ | grep '\.json$' || true)
with_slug=""
for f in $changed; do
[[ -f "$f" ]] || continue
@@ -96,7 +96,7 @@ jobs:
const recordsUrl = apiBase + '/collections/' + encodeURIComponent(coll) + '/records';
let categoryIdToName = {};
try {
const metadata = JSON.parse(fs.readFileSync('frontend/public/json/metadata.json', 'utf8'));
const metadata = JSON.parse(fs.readFileSync('json/metadata.json', 'utf8'));
(metadata.categories || []).forEach(function(cat) { categoryIdToName[cat.id] = cat.name; });
} catch (e) { console.warn('Could not load metadata.json:', e.message); }
let typeValueToId = {};

View File

@@ -1,7 +1,7 @@
#!/bin/bash
INPUT_FILE=".github/workflows/scripts/repos.txt"
OUTPUT_FILE="frontend/public/json/versions.json"
OUTPUT_FILE="json/versions.json"
TMP_FILE="releases_tmp.json"
if [ -f "$OUTPUT_FILE" ]; then

View File

@@ -11,7 +11,7 @@ permissions:
pull-requests: write
env:
VERSIONS_FILE: frontend/public/json/github-versions.json
VERSIONS_FILE: json/github-versions.json
jobs:
update-github-versions:
@@ -58,7 +58,7 @@ jobs:
echo ""
echo "=== Scanning JSON files for slugs ==="
for json_file in frontend/public/json/*.json; do
for json_file in json/*.json; do
[[ ! -f "$json_file" ]] && continue
# Skip non-app JSON files
@@ -200,7 +200,7 @@ jobs:
--body "This PR updates version information from GitHub releases.
## How it works
1. Scans all JSON files in \`frontend/public/json/\` for slugs
1. Scans all JSON files in \`json/\` for slugs
2. Finds corresponding \`install/{slug}-install.sh\` scripts
3. Extracts \`fetch_and_deploy_gh_release\` calls
4. Fetches latest (or pinned) version from GitHub