Better publish script
Some checks failed
Build Godot Engine / Build Windows ${{ matrix.name }} (godot-windows-debug, Debug Template, no, template_debug) (push) Successful in 21m43s
Build Godot Engine / Build Windows ${{ matrix.name }} (godot-windows-editor, Editor, yes, editor) (push) Successful in 33m49s
Build Godot Engine / Build Windows ${{ matrix.name }} (godot-windows-release, Release Template, yes, template_release) (push) Successful in 22m51s
Build Godot Engine / publish (push) Failing after 18s
Some checks failed
Build Godot Engine / Build Windows ${{ matrix.name }} (godot-windows-debug, Debug Template, no, template_debug) (push) Successful in 21m43s
Build Godot Engine / Build Windows ${{ matrix.name }} (godot-windows-editor, Editor, yes, editor) (push) Successful in 33m49s
Build Godot Engine / Build Windows ${{ matrix.name }} (godot-windows-release, Release Template, yes, template_release) (push) Successful in 22m51s
Build Godot Engine / publish (push) Failing after 18s
This commit is contained in:
@ -58,53 +58,23 @@ jobs:
|
|||||||
|
|
||||||
# --- JOB 2: PUBLISH (Serial) ---
|
# --- JOB 2: PUBLISH (Serial) ---
|
||||||
publish:
|
publish:
|
||||||
# Only run if all builds succeed
|
|
||||||
needs: build-windows
|
needs: build-windows
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
# 1. Download ALL artifacts from the matrix jobs
|
|
||||||
- name: Download All Artifacts
|
- name: Download All Artifacts
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
path: dist
|
path: dist
|
||||||
|
|
||||||
- name: Organize and Publish
|
- name: Package and Publish
|
||||||
|
uses: docker://alpine:latest
|
||||||
env:
|
env:
|
||||||
|
# Pass config & secrets
|
||||||
API_URL: https://gitea.212.63.210.91.nip.io/api/packages/${{ gitea.repository_owner }}/generic
|
API_URL: https://gitea.212.63.210.91.nip.io/api/packages/${{ gitea.repository_owner }}/generic
|
||||||
TOKEN: ${{ secrets.USER_PACKAGE_PASSWORD }}
|
TOKEN: ${{ secrets.USER_PACKAGE_PASSWORD }}
|
||||||
|
ACTOR: ${{ gitea.actor }}
|
||||||
VERSION: ${{ gitea.sha }}
|
VERSION: ${{ gitea.sha }}
|
||||||
run: |
|
with:
|
||||||
echo "Organizing artifacts..."
|
entrypoint: /bin/sh
|
||||||
ls -R dist/
|
# The workspace (containing 'dist' and 'scripts') is automatically mounted
|
||||||
|
args: .gitea/workflows/scripts/publish.sh
|
||||||
# Structure after download will look like:
|
|
||||||
# dist/godot-windows-editor/godot.windows.editor...exe
|
|
||||||
# dist/godot-windows-debug/godot.windows.template_debug...exe
|
|
||||||
|
|
||||||
# --- 1. PUBLISH EDITOR ---
|
|
||||||
echo "Publishing Editor..."
|
|
||||||
# Find the editor exe (using wildcard to be safe)
|
|
||||||
EDITOR_EXE=$(find dist/godot-windows-editor -name "*.exe")
|
|
||||||
|
|
||||||
curl --fail --user "${{ gitea.actor }}:$TOKEN" \
|
|
||||||
--upload-file "$EDITOR_EXE" \
|
|
||||||
"$API_URL/godot-editor-windows/$VERSION/godot-editor.exe"
|
|
||||||
|
|
||||||
# --- 2. PACKAGE TEMPLATES ---
|
|
||||||
echo "Zipping Templates..."
|
|
||||||
mkdir -p templates
|
|
||||||
|
|
||||||
# Copy debug and release templates to a single folder
|
|
||||||
# We rename them to simple names for the zip
|
|
||||||
cp dist/godot-windows-debug/*.exe templates/windows_debug_x86_64.exe
|
|
||||||
cp dist/godot-windows-release/*.exe templates/windows_release_x86_64.exe
|
|
||||||
|
|
||||||
# Zip them up
|
|
||||||
zip -j templates.tpz templates/*
|
|
||||||
|
|
||||||
echo "Publishing Templates..."
|
|
||||||
curl --fail --user "${{ gitea.actor }}:$TOKEN" \
|
|
||||||
--upload-file "templates.tpz" \
|
|
||||||
"$API_URL/godot-templates/$VERSION/windows_templates.tpz"
|
|
||||||
|
|
||||||
echo "✅ All packages published!"
|
|
||||||
47
.gitea/workflows/scripts/publish.sh
Normal file
47
.gitea/workflows/scripts/publish.sh
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# --- 0. SETUP ---
|
||||||
|
# We install dependencies because we are running in a minimal Alpine container
|
||||||
|
echo "Installing tools..."
|
||||||
|
apk add --no-cache curl zip
|
||||||
|
|
||||||
|
echo "------------------------------------------------"
|
||||||
|
echo "Publishing Packages for: $VERSION"
|
||||||
|
echo "Registry API: $API_URL"
|
||||||
|
echo "------------------------------------------------"
|
||||||
|
|
||||||
|
# --- 1. PUBLISH EDITOR ---
|
||||||
|
echo "Processing Editor..."
|
||||||
|
# Zip both .exe and .console.exe
|
||||||
|
zip -j godot-editor-windows.zip dist/godot-windows-editor/*.exe
|
||||||
|
|
||||||
|
echo "Uploading Editor..."
|
||||||
|
curl --fail --user "$ACTOR:$TOKEN" \
|
||||||
|
--upload-file "godot-editor-windows.zip" \
|
||||||
|
"$API_URL/godot-editor-windows/$VERSION/godot-editor-windows.zip"
|
||||||
|
|
||||||
|
# --- 2. PUBLISH TEMPLATES ---
|
||||||
|
echo "Processing Templates..."
|
||||||
|
mkdir -p templates
|
||||||
|
|
||||||
|
# Select specific binaries (ignoring console wrapper)
|
||||||
|
DEBUG_SRC=$(find dist/godot-windows-debug -name "*.exe" | grep -v "console.exe" | head -n 1)
|
||||||
|
RELEASE_SRC=$(find dist/godot-windows-release -name "*.exe" | grep -v "console.exe" | head -n 1)
|
||||||
|
|
||||||
|
echo "Found Debug: $DEBUG_SRC"
|
||||||
|
echo "Found Release: $RELEASE_SRC"
|
||||||
|
|
||||||
|
# Rename to standard Godot export names
|
||||||
|
cp "$DEBUG_SRC" templates/windows_debug_x86_64.exe
|
||||||
|
cp "$RELEASE_SRC" templates/windows_release_x86_64.exe
|
||||||
|
|
||||||
|
# Zip into TPZ
|
||||||
|
zip -j templates.tpz templates/*
|
||||||
|
|
||||||
|
echo "Uploading Templates..."
|
||||||
|
curl --fail --user "$ACTOR:$TOKEN" \
|
||||||
|
--upload-file "templates.tpz" \
|
||||||
|
"$API_URL/godot-templates/$VERSION/windows_templates.tpz"
|
||||||
|
|
||||||
|
echo "✅ Success! All packages published."
|
||||||
Reference in New Issue
Block a user