Compare commits

...

14 Commits

Author SHA1 Message Date
Arctis Fireblight
e36cb51763 Merge pull request #1118 from Arctis-Fireblight/Bump-Version-4.4-Stable
Bump Version: 4.4-stable
2025-12-03 18:32:44 -06:00
Arctis_Fireblight
bce02f1c26 Bump Version: 4.4-stable 2025-12-03 18:29:55 -06:00
Arctis Fireblight
aef429fa0e Merge pull request #1117 from Arctis-Fireblight/Fix-build-system-issues
Fixes various issues with the new release build pipeline.

fixes #1110
fixes #1111
fixes #1112
fixes #1113
fixes #1114
fixes #1115
fixes #1116
2025-12-03 18:09:34 -06:00
Arctis_Fireblight
4e9db2ca05 Fix: Ensure IOS templates are packaged correctly, issue #1115 2025-12-02 23:21:20 -06:00
Arctis_Fireblight
80f83a7cf2 Fix: Ensure SHA512-SUMS.txt is created by the new build system, issue #1114 2025-11-19 13:25:23 -06:00
Arctis_Fireblight
155f5edaa3 Fix: Ensure tarball is created by the new build system, issue #1113 2025-11-19 13:24:18 -06:00
Arctis_Fireblight
f1ce693c4c Fix: ensured correct file names for export templates, issue #1111 2025-11-19 12:49:23 -06:00
Arctis_Fireblight
693599d229 Fix: removed duplicate mac release templates, issue #1112 2025-11-19 11:55:06 -06:00
Arctis_Fireblight
3e573e515e Fix: ensure paths are correct for export templates, issue #1116 2025-11-19 11:51:23 -06:00
Arctis_Fireblight
037d0af456 Fix: ensure version.txt is included in release templates, issue #1110 2025-11-19 08:11:32 -06:00
Arctis Fireblight
b8d529fac8 Merge pull request #1109 from Arctis-Fireblight/Fix-Incorrect-Nuget-Versions
Fix incorrect version on pre-release Nuget packages
2025-11-15 22:40:39 -06:00
Arctis Fireblight
4d9e24d511 Merge pull request #1108 from Arctis-Fireblight/Updates-to-Gitlab-ci
Refactor .gitlab-ci.yml file for release build pipeline.
2025-11-15 22:39:55 -06:00
Arctis Fireblight
b47b9876cb Fix incorrect version on pre-release Nuget packages
Added additional logic to `build_assemblies.py` to append the status_version number to the version number for non-stable packages.
2025-11-15 22:08:15 -06:00
Arctis Fireblight
60164fcbf8 Refactor .gitlab-ci.yml file
Moved all build steps to a single stage.
Fixed various typos.
Reordered the Mac stages so that they occur earlier in the pipeline maximizing efficiency.
Bug fixes to the Mac signing jobs.
Added packaging stage to create a single download file from artifacts.
Fixed the nuget push command.
2025-11-15 19:29:04 -06:00
3 changed files with 349 additions and 75 deletions

View File

@@ -1,13 +1,11 @@
stages:
- build
- merge_mac
- sign
- push_nuget
- package
.template-build:
tags: [ docker ]
rules:
- if: $DO_RELEASE == "True"
- if: $DO_RELEASE == "true"
before_script:
- export SCONS="scons -j$(nproc) verbose=no warnings=no progress=no"
- export BUILD_NAME="official"
@@ -17,7 +15,8 @@ stages:
- $SCONS platform=$PLATFORM arch=$ARCH $OPTIONS target=$TARGET
- cp -r bin/* out/$PLATFORM/$ARCH/$TYPE/
artifacts:
expire_in: 3 hours
expire_in: 3 days
public: false
paths:
- out/$PLATFORM/$ARCH/$TYPE
@@ -92,19 +91,28 @@ stages:
- if: $DO_RELEASE == "true"
script:
- !reference [.build-release-template, script]
after_script:
- if [ "$TARGET" == "template_debug" ]; then export FRIENDLY_TARGET="debug"; else export FRIENDLY_TARGET="release"; fi
- mv "out/templates/redot.${PLATFORM}.${TARGET}.${ARCH}" "out/templates/linux_${FRIENDLY_TARGET}.${ARCH}"
artifacts:
expire_in: 3 hours
public: false
expire_in: 3 days
paths:
- out/templates
.Template-Release-Template-Linux-Mono:
extends: .Template-Linux
needs: [ linux-editor-x64-mono ]
rules:
- if: $DO_RELEASE == "true"
script:
- !reference [.build-release-template-mono, script]
after_script:
- if [ "$TARGET" == "template_debug" ]; then export FRIENDLY_TARGET="debug"; else export FRIENDLY_TARGET="release"; fi
- mv "out/templates-mono/redot.${PLATFORM}.${TARGET}.${ARCH}.mono" "out/templates-mono/linux_${FRIENDLY_TARGET}.${ARCH}"
artifacts:
expire_in: 3 hours
public: false
expire_in: 3 days
paths:
- out/templates-mono
@@ -140,10 +148,21 @@ stages:
- export OPTIONS="production=yes use_mingw=yes angle_libs=$(pwd)/deps/angle mesa_libs=$(pwd)/deps/mesa"
script:
- !reference [ .build-release-template, script ]
after_script:
- if [ "$TARGET" == "template_debug" ]; then export FRIENDLY_TARGET="debug"; else export FRIENDLY_TARGET="release"; fi
- |
if [ "$ARCH" == "arm64" ]; then
mv "out/templates/redot.${PLATFORM}.${TARGET}.${ARCH}.llvm.exe" "out/templates/windows_${FRIENDLY_TARGET}_${ARCH}.exe"
mv "out/templates/redot.${PLATFORM}.${TARGET}.${ARCH}.llvm.console.exe" "out/templates/windows_${FRIENDLY_TARGET}_${ARCH}_console.exe"
else
mv "out/templates/redot.${PLATFORM}.${TARGET}.${ARCH}.exe" "out/templates/windows_${FRIENDLY_TARGET}_${ARCH}.exe"
mv "out/templates/redot.${PLATFORM}.${TARGET}.${ARCH}.console.exe" "out/templates/windows_${FRIENDLY_TARGET}_${ARCH}_console.exe"
fi
variables:
PLATFORM: "windows"
artifacts:
expire_in: 3 hours
public: false
expire_in: 3 days
paths:
- out/templates
@@ -157,10 +176,21 @@ stages:
- export OPTIONS="production=yes use_mingw=yes angle_libs=$(pwd)/deps/angle mesa_libs=$(pwd)/deps/mesa"
script:
- !reference [ .build-release-template-mono, script ]
after_script:
- if [ "$TARGET" == "template_debug" ]; then export FRIENDLY_TARGET="debug"; else export FRIENDLY_TARGET="release"; fi
- |
if [ "$ARCH" == "arm64" ]; then
mv "out/templates-mono/redot.${PLATFORM}.${TARGET}.${ARCH}.llvm.mono.exe" "out/templates-mono/windows_${FRIENDLY_TARGET}_${ARCH}.exe"
mv "out/templates-mono/redot.${PLATFORM}.${TARGET}.${ARCH}.llvm.mono.console.exe" "out/templates-mono/windows_${FRIENDLY_TARGET}_${ARCH}_console.exe"
else
mv "out/templates-mono/redot.${PLATFORM}.${TARGET}.${ARCH}.mono.exe" "out/templates-mono/windows_${FRIENDLY_TARGET}_${ARCH}.exe"
mv "out/templates-mono/redot.${PLATFORM}.${TARGET}.${ARCH}.mono.console.exe" "out/templates-mono/windows_${FRIENDLY_TARGET}_${ARCH}_console.exe"
fi
variables:
PLATFORM: "windows"
artifacts:
expire_in: 3 hours
public: false
expire_in: 3 days
paths:
- out/templates-mono
@@ -168,7 +198,7 @@ stages:
.Template-macos:
extends: .template-build
rules:
- if: $DO_RELEASE == "True"
- if: $DO_RELEASE == "true"
image: $CI_REGISTRY/redot-engine/redot-production-containers/redot-osx:latest
before_script:
- !reference [ .template-build, before_script ]
@@ -179,7 +209,7 @@ stages:
.Template-macos-mono:
extends: .template-build-mono
rules:
- if: $DO_RELEASE == "True"
- if: $DO_RELEASE == "true"
image: $CI_REGISTRY/redot-engine/redot-production-containers/redot-osx:latest
before_script:
- !reference [ .template-build-mono, before_script ]
@@ -190,7 +220,7 @@ stages:
.Template-Release-Template-macos:
extends: .template-build
rules:
- if: $DO_RELEASE == "True"
- if: $DO_RELEASE == "true"
image: $CI_REGISTRY/redot-engine/redot-production-containers/redot-osx:latest
before_script:
- !reference [ .template-build, before_script ]
@@ -200,14 +230,15 @@ stages:
variables:
PLATFORM: "macos"
artifacts:
expire_in: 3 hours
public: false
expire_in: 3 days
paths:
- out/templates
.Template-Release-Template-macos-mono:
extends: .template-build-mono
rules:
- if: $DO_RELEASE == "True"
- if: $DO_RELEASE == "true"
image: $CI_REGISTRY/redot-engine/redot-production-containers/redot-osx:latest
before_script:
- !reference [ .template-build-mono, before_script ]
@@ -217,7 +248,8 @@ stages:
variables:
PLATFORM: "macos"
artifacts:
expire_in: 3 hours
public: false
expire_in: 3 days
paths:
- out/templates-mono
@@ -250,7 +282,8 @@ stages:
script:
- !reference [ .build-release-template, script ]
artifacts:
expire_in: 3 hours
public: false
expire_in: 3 days
paths:
- out/templates/
@@ -282,7 +315,8 @@ stages:
script:
- !reference [ .build-release-template-mono, script ]
artifacts:
expire_in: 3 hours
public: false
expire_in: 3 days
paths:
- out/templates-mono/
@@ -300,17 +334,66 @@ stages:
- ./modules/mono/build_scripts/build_assemblies.py --godot-output-dir=./bin --godot-platform=$PLATFORM
- cp -r bin/* out/$PLATFORM/$ARCH/$TYPE-mono/
artifacts:
expire_in: 3 hours
public: false
expire_in: 3 days
paths:
- out/$PLATFORM/$ARCH/$TYPE-mono
- mono-glue/
# create tarball for release
create-tarball:
tags: [ docker ]
stage: build
image: $CI_REGISTRY/redot-engine/redot-production-containers/redot-linux:latest
rules:
- when: always
script:
- major=$(grep -E '^major\s*=' version.py | sed -E "s/.*=\s*([0-9]+).*/\1/")
- minor=$(grep -E '^minor\s*=' version.py | sed -E "s/.*=\s*([0-9]+).*/\1/")
- patch=$(grep -E '^patch\s*=' version.py | sed -E "s/.*=\s*([0-9]+).*/\1/")
- status=$(grep -E '^status\s*=' version.py | sed -E "s/.*=\s*\"([^\"]+)\".*/\1/")
- status_version=$(grep -E '^status_version\s*=' version.py | sed -E "s/.*=\s*([0-9]+).*/\1/")
- echo "$major.$minor.$patch-$status.$status_version"
- |
if [ "$status" == "stable" ]
then
if [ "$patch" == "0" ]
then
export VERSIONSTRING="${major}.${minor}-stable"
export VERSIONTXT="${major}.${minor}.stable"
else
export VERSIONSTRING="${major}.${minor}.${patch}-stable"
export VERSIONTXT="${major}.${minor}.${patch}.stable"
fi
else
if [ "$patch" == "0" ]
then
export VERSIONSTRING="${major}.${minor}-${status}.${status_version}"
export VERSIONTXT="${major}.${minor}.${status}.${status_version}"
else
export VERSIONSTRING="${major}.${minor}.${patch}-${status}.${status_version}"
export VERSIONTXT="${major}.${minor}.${patch}.${status}.${status_version}"
fi
fi
- echo $VERSIONSTRING
- TARBALL_NAME="redot-${VERSIONSTRING}.tar.xz"
- FOLDER_NAME="redot-${VERSIONSTRING}"
- mkdir $FOLDER_NAME
- rsync -a --exclude="${FOLDER_NAME}" ./ "${FOLDER_NAME}/"
- mkdir -p out/
- tar -cJf "out/${TARBALL_NAME}" "${FOLDER_NAME}"
- sha256sum "out/${TARBALL_NAME}" > "out/${TARBALL_NAME}.sha256"
artifacts:
public: false
expire_in: 3 days
paths:
- out/
# -- Build the Linux Editors --
linux-editor-x64-mono:
tags: [ docker ]
image: $CI_REGISTRY/redot-engine/redot-production-containers/redot-linux:latest
rules:
- if: $DO_RELEASE == "True"
- when: always
stage: build
before_script:
- export SCONS="scons -j$(nproc) verbose=no warnings=no progress=no"
@@ -356,7 +439,8 @@ linux-editor-x64-mono:
TARGET: "editor"
MONO: "-mono"
artifacts:
expire_in: 3 hours
public: false
expire_in: 3 days
paths:
- out/$PLATFORM/$ARCH/$TYPE-mono
- mono-glue/
@@ -846,19 +930,66 @@ build-Macos-Debug-Template-arm64-Mono:
TYPE: "template"
TARGET: "template_debug"
Merge-Mac-Editor:
stage: build
needs: [macos-editor-x64, macos-editor-arm64, macos-editor-arm64-mono, macos-editor-x64-mono]
tags: [docker]
image: $CI_REGISTRY/redot-engine/redot-production-containers/redot-osx:latest
rules:
- if: $DO_RELEASE == "true"
script:
- LOCTOOLS="out/macos/universal/tools"
- LOCMONO="out/macos/universal/tools-mono"
- mkdir -p $LOCTOOLS
- mkdir -p "out/macos/universal/tools-mono"
- lipo -create "out/macos/x86_64/tools/redot.macos.editor.x86_64" "out/macos/arm64/tools/redot.macos.editor.arm64" -output "$LOCTOOLS/redot.macos.editor.universal"
- lipo -create "out/macos/x86_64/tools-mono/redot.macos.editor.x86_64.mono" "out/macos/arm64/tools-mono/redot.macos.editor.arm64.mono" -output "$LOCMONO/redot.macos.editor.universal.mono"
- cp -r out/macos/arm64/tools-mono/GodotSharp "$LOCMONO/"
artifacts:
public: false
paths:
- out/macos/*
Merge-Mac-Templates:
stage: build
needs: [build-Macos-Debug-Template-arm64, build-Macos-Debug-Template-arm64-Mono, build-Macos-Debug-Template-x64, build-Macos-Debug-Template-x64-Mono, build-Macos-Release-Template-arm64, build-Macos-Release-Template-arm64-Mono, build-Macos-Release-Template-x64, build-Macos-Release-Template-x64-Mono]
tags: [docker]
rules:
- if: $DO_RELEASE == "true"
image: $CI_REGISTRY/redot-engine/redot-production-containers/redot-osx:latest
script:
- lipo -create out/templates/redot.macos.template_debug.x86_64 out/templates/redot.macos.template_debug.arm64 -output out/templates/redot.macos.template_debug.universal
- lipo -create out/templates/redot.macos.template_release.x86_64 out/templates/redot.macos.template_release.arm64 -output out/templates/redot.macos.template_release.universal
- lipo -create out/templates-mono/redot.macos.template_debug.x86_64.mono out/templates-mono/redot.macos.template_debug.arm64.mono -output out/templates-mono/redot.macos.template_debug.universal.mono
- lipo -create out/templates-mono/redot.macos.template_release.x86_64.mono out/templates-mono/redot.macos.template_release.arm64.mono -output out/templates-mono/redot.macos.template_release.universal.mono
artifacts:
public: false
paths:
- out/templates/*
- out/templates-mono/*
# -- Build Web Template
Web-Release-Template:
stage: build
tags: [docker]
rules:
- if: $DO_RELEASE == "True"
- if: $DO_RELEASE == "true"
image: $CI_REGISTRY/redot-engine/redot-production-containers/redot-web:latest
script:
- export BUILD_NAME="official"
- /root/scripts/buildWeb.sh
- mv "out/templates/godot.web.template_debug.wasm32.zip" "out/templates/web_debug.zip"
- mv "out/templates/godot.web.template_release.wasm32.zip" "out/templates/web_release.zip"
- mv "out/templates/godot.web.template_debug.wasm32.dlink.zip" "out/templates/web_dlink_debug.zip"
- mv "out/templates/godot.web.template_release.wasm32.dlink.zip" "out/templates/web_dlink_release.zip"
- mv "out/templates/godot.web.template_debug.wasm32.nothreads.zip" "out/templates/web_nothreads_debug.zip"
- mv "out/templates/godot.web.template_release.wasm32.nothreads.zip" "out/templates/web_nothreads_release.zip"
- mv "out/templates/godot.web.template_debug.wasm32.nothreads.dlink.zip" "out/templates/web_dlink_nothreads_debug.zip"
- mv "out/templates/godot.web.template_release.wasm32.nothreads.dlink.zip" "out/templates/web_dlink_nothreads_release.zip"
artifacts:
expire_in: 3 hours
public: false
expire_in: 3 days
paths:
- out/templates/
# --Build Android Targets --
@@ -895,7 +1026,8 @@ Android-Release-Template:
- cp bin/*.apk out/templates/
- cp bin/*.aar out/templates/
artifacts:
expire_in: 3 hours
public: false
expire_in: 3 days
paths:
- out/templates
@@ -933,10 +1065,12 @@ Android-Release-Template-Mono:
- popd
- ls bin/
- cp bin/*.zip out/templates-mono/
- cp bin/*.apk out/templates-mono/
- cp bin/android_monoDebug.apk out/templates-mono/android_debug.apk
- cp bin/android_monoRelease.apk out/templates-mono/android_release.apk
- cp bin/*.aar out/templates-mono/
artifacts:
expire_in: 3 hours
public: false
expire_in: 3 days
paths:
- out/templates-mono
@@ -1006,48 +1140,63 @@ build-ios-Release-Template-arm64-Mono:
build-ios-Debug-Template-arm64-Mono:
stage: build
extends: .Template-Ios
extends: .Template-Ios-Mono
variables:
ARCH: "arm64"
TYPE: "iPhoneOS"
TARGET: "template_debug"
# MERGE STAGE
Merge-Mac-Editor:
stage: merge_mac
tags: [docker]
image: $CI_REGISTRY/redot-engine/redot-production-containers/redot-osx:latest
script:
- LOCTOOLS="out/macos/universal/tools"
- LOCMONO="out/macos/universal/tools-mono"
- mkdir -p $LOCTOOLS
- mkdir -p "out/macos/universal/tools-mono"
- lipo -create "out/macos/x86_64/tools/redot.macos.editor.x86_64" "out/macos/arm64/tools/redot.macos.editor.arm64" -output "$LOCTOOLS/redot.macos.editor.universal"
- lipo -create "out/macos/x86_64/tools-mono/redot.macos.editor.x86_64.mono" "out/macos/arm64/tools-mono/redot.macos.editor.arm64.mono" -output "$LOCMONO/redot.macos.editor.universal.mono"
- cp -r out/macos/arm64/tools-mono/GodotSharp "$LOCMONO/"
artifacts:
paths:
- out/macos/*
Merge-Mac-Templates:
stage: merge_mac
package-ios:
stage: build
tags: [docker]
image: $CI_REGISTRY/redot-engine/redot-production-containers/redot-linux:latest
needs:
- build-ios-Release-Template-arm64
- build-ios-Release-Template-arm64-Mono
- build-ios-Release-Template-x64
- build-ios-Release-Template-x64-Mono
- build-ios-Debug-Template-arm64
- build-ios-Debug-Template-arm64-Mono
- build-ios-Debug-Template-x64
- build-ios-Debug-Template-x64-Mono
rules:
- if: $DO_RELEASE == "true"
image: $CI_REGISTRY/redot-engine/redot-production-containers/redot-osx:latest
script:
- lipo -create out/templates/redot.macos.template_debug.x86_64 out/templates/redot.macos.template_debug.arm64 -output out/templates/redot.macos.template_debug.universal
- lipo -create out/templates/redot.macos.template_release.x86_64 out/templates/redot.macos.template_release.arm64 -output out/templates/redot.macos.template_release.universal
- lipo -create out/templates-mono/redot.macos.template_debug.x86_64.mono out/templates-mono/redot.macos.template_debug.arm64.mono -output out/templates-mono/redot.macos.template_debug.universal.mono
- lipo -create out/templates-mono/redot.macos.template_release.x86_64.mono out/templates-mono/redot.macos.template_release.arm64.mono -output out/templates-mono/redot.macos.template_release.universal.mono
- /root/scripts/Fetch_Deps.sh "ios"
- echo "Packaging IOS"
- cp -r misc/dist/ios_xcode ios_xcode
- cp out/templates/libgodot.ios.template_release.x86_64.simulator.a ios_xcode/libgodot.ios.release.xcframework/ios-arm64_x86_64-simulator/libgodot.a
- cp out/templates/libgodot.ios.template_debug.x86_64.simulator.a ios_xcode/libgodot.ios.debug.xcframework/ios-arm64_x86_64-simulator/libgodot.a
- cp out/templates/libgodot.ios.template_release.arm64.a ios_xcode/libgodot.ios.release.xcframework/ios-arm64/libgodot.a
- cp out/templates/libgodot.ios.template_debug.arm64.a ios_xcode/libgodot.ios.debug.xcframework/ios-arm64/libgodot.a
- cp -r deps/moltenvk/MoltenVK/MoltenVK.xcframework ios_xcode/
- rm -rf ios_xcode/MoltenVK.xcframework/{macos,tvos}*
- cd ios_xcode
- zip -q -9 -r "../out/templates/ios.zip" *
- cd ..
- rm -rf ios_xcode
- echo "Done packaging IOS"
- echo "Packaging IOS Mono"
- cp -r misc/dist/ios_xcode ios_xcode
- cp out/templates-mono/libgodot.ios.template_release.x86_64.simulator.a ios_xcode/libgodot.ios.release.xcframework/ios-arm64_x86_64-simulator/libgodot.a
- cp out/templates-mono/libgodot.ios.template_debug.x86_64.simulator.a ios_xcode/libgodot.ios.debug.xcframework/ios-arm64_x86_64-simulator/libgodot.a
- cp out/templates-mono/libgodot.ios.template_release.arm64.a ios_xcode/libgodot.ios.release.xcframework/ios-arm64/libgodot.a
- cp out/templates-mono/libgodot.ios.template_debug.arm64.a ios_xcode/libgodot.ios.debug.xcframework/ios-arm64/libgodot.a
- cp -r deps/moltenvk/MoltenVK/MoltenVK.xcframework ios_xcode/
- rm -rf ios_xcode/MoltenVK.xcframework/{macos,tvos}*
- cd ios_xcode
- zip -q -9 -r "../out/templates-mono/ios.zip" *
- cd ..
- rm -rf ios_xcode
artifacts:
paths:
- out/templates/*
- out/templates-mono/*
expire_in: 3 days,
paths: [ out/templates/ios.zip, out/templates-mono/ios.zip ]
sign-mac-editor:
stage: sign
stage: build
needs: [Merge-Mac-Editor]
rules:
- if: $DO_RELEASE == "true"
- if: $SIGN_MAC == "true"
tags: [macos]
script:
@@ -1074,12 +1223,12 @@ sign-mac-editor:
_macos_tmpdir="$(pwd)/tmp"
_app_path="${_macos_tmpdir}/${_appname}"
echo $_macos_tmpdir
echo $__app_path
echo $_app_path
cp -r "misc/dist/macos/editor.entitlements" "${_macos_tmpdir}/"
rm -rf "${_macos_tmpdir}/${_appname}"
cp -r "misc/dist/macos_tools.app" "${_macos_tmpdir}/${_appname}"
if [[ "${_is_mono}" == "1" ]]; then
cp -r "${_reldir}/GodotSharp/ " "${_macos_tmpdir}/${_appname}/Contents/Resources/GodotSharp"
cp -r "${_reldir}/GodotSharp/" "${_macos_tmpdir}/${_appname}/Contents/Resources/GodotSharp"
fi
ls "${_reldir}/"
ls "${_macos_tmpdir}/${_appname}/"
@@ -1133,18 +1282,20 @@ sign-mac-editor:
echo "✅ ${_app_path} signed and notarized."
}
# Example: sign the universal binaries
- sign_macos "$(pwd)/out/macos/universal/tools" "redot.macos.editor.universal" 0
artifacts:
public: false
paths:
- out/macos/*
expire_in: 3 hours
- out/macos/universal/tools/signed/*
expire_in: 3 days
sign-mac-editor-mono:
stage: sign
stage: build
needs: [Merge-Mac-Editor]
rules:
- if: $SIGN_MAC == "true"
- if: $DO_RELEASE == "true"
- if: $SIGN_MAC == "true"
tags: [macos]
script:
- set -e
@@ -1236,14 +1387,17 @@ sign-mac-editor-mono:
- sign_macos "$(pwd)/out/macos/universal/tools-mono" "redot.macos.editor.universal.mono" 1
artifacts:
public: false
paths:
- out/macos/*
expire_in: 3 hours
- out/macos/universal/tools-mono/signed/*
expire_in: 3 days
sign-mac-templates:
stage: sign
stage: build
needs: [Merge-Mac-Templates]
rules:
- if: $SIGN_MAC == "true"
- if: $DO_RELEASE == "true"
- if: $SIGN_MAC == "true"
tags: [ macos ]
script:
- set -e
@@ -1271,7 +1425,7 @@ sign-mac-templates:
codesign --force -s - \
--options=linker-signed \
-v macos_template.app/Contents/MacOS/*
zip -r ../out/templates${_mono_prefix}/macos_signed.zip macos_template.app
zip -r ../out/templates${_mono_prefix}/macos.zip macos_template.app
popd
rm -rf tmp/
}
@@ -1281,14 +1435,131 @@ sign-mac-templates:
- sign_macos 1
artifacts:
public: false
paths:
- out/macos/*
expire_in: 3 hours
- out/templates/*
- out/templates-mono/*
expire_in: 3 days
pushNuget:
image: $CI_REGISTRY/redot-engine/redot-production-containers/redot-linux:latest
package-builds:
stage: package
rules:
- if: $DO_RELEASE == "true"
before_script:
- cd out/linuxbsd/x86_64/tools-mono/GodotSharp/Tools
- dotnet nuget push YourPackage.nupkg --api-key $NUGET_API_KEY --source https://api.nuget.org/v3/index.json
tags:
- docker
image: $CI_REGISTRY/redot-engine/redot-production-containers/redot-linux:latest
script:
- major=$(grep -E '^major\s*=' version.py | sed -E "s/.*=\s*([0-9]+).*/\1/")
- minor=$(grep -E '^minor\s*=' version.py | sed -E "s/.*=\s*([0-9]+).*/\1/")
- patch=$(grep -E '^patch\s*=' version.py | sed -E "s/.*=\s*([0-9]+).*/\1/")
- status=$(grep -E '^status\s*=' version.py | sed -E "s/.*=\s*\"([^\"]+)\".*/\1/")
- status_version=$(grep -E '^status_version\s*=' version.py | sed -E "s/.*=\s*([0-9]+).*/\1/")
- |
if [ "$status" == "stable" ]
then
if [ "$patch" == "0" ]
then
export VERSIONSTRING="${major}.${minor}-stable"
export VERSIONTXT="${major}.${minor}.stable"
else
export VERSIONSTRING="${major}.${minor}.${patch}-stable"
export VERSIONTXT="${major}.${minor}.${patch}.stable"
fi
else
if [ "$patch" == "0" ]
then
export VERSIONSTRING="${major}.${minor}-${status}.${status_version}"
export VERSIONTXT="${major}.${minor}.${status}.${status_version}"
else
export VERSIONSTRING="${major}.${minor}.${patch}-${status}.${status_version}"
export VERSIONTXT="${major}.${minor}.${patch}.${status}.${status_version}"
fi
fi
- mkdir releases/
- RELEASE_DIR="$(pwd)/releases"
- TARBALL_NAME="redot-${VERSIONSTRING}.tar.xz"
- cp "out/${TARBALL_NAME}" "${RELEASE_DIR}/${TARBALL_NAME}"
- cp "out/${TARBALL_NAME}.sha256" "${RELEASE_DIR}/${TARBALL_NAME}.sha256"
- pushd out/linuxbsd/x86_64/tools/
- zip -r "${RELEASE_DIR}/Redot_v${VERSIONSTRING}_linux_x64.zip" ./*
- popd
- pushd out/linuxbsd/arm64/tools/
- zip -r "${RELEASE_DIR}/Redot_v${VERSIONSTRING}_linux_arm64.zip" ./*
- popd
- pushd out/linuxbsd/x86_32/tools/
- zip -r "${RELEASE_DIR}/Redot_v${VERSIONSTRING}_linux_x86.zip" ./*
- popd
- pushd out/linuxbsd/arm32/tools/
- zip -r "${RELEASE_DIR}/Redot_v${VERSIONSTRING}_linux_arm32.zip" ./*
- popd
- pushd out/linuxbsd/x86_64/tools-mono/
- zip -r "${RELEASE_DIR}/Redot_v${VERSIONSTRING}_linux_mono_x64.zip" ./*
- popd
- pushd out/linuxbsd/arm64/tools-mono/
- zip -r "${RELEASE_DIR}/Redot_v${VERSIONSTRING}_linux_mono_arm64.zip" ./*
- popd
- pushd out/linuxbsd/x86_32/tools-mono/
- zip -r "${RELEASE_DIR}/Redot_v${VERSIONSTRING}_linux_mono_x86.zip" ./*
- popd
- pushd out/linuxbsd/arm32/tools-mono/
- zip -r "${RELEASE_DIR}/Redot_v${VERSIONSTRING}_linux_mono_arm32.zip" ./*
- popd
- pushd out/windows/x86_64/tools/
- zip -r "${RELEASE_DIR}/Redot_v${VERSIONSTRING}_windows_win64.zip" ./*
- popd
- pushd out/windows/arm64/tools/
- zip -r "${RELEASE_DIR}/Redot_v${VERSIONSTRING}_windows_arm64.zip" ./*
- popd
- pushd out/windows/x86_32/tools/
- zip -r "${RELEASE_DIR}/Redot_v${VERSIONSTRING}_windows_win32.zip" ./*
- popd
- pushd out/windows/x86_64/tools-mono/
- zip -r "${RELEASE_DIR}/Redot_v${VERSIONSTRING}_windows_mono_win64.zip" ./*
- popd
- pushd out/windows/arm64/tools-mono/
- zip -r "${RELEASE_DIR}/Redot_v${VERSIONSTRING}_windows_mono_arm64.zip" ./*
- popd
- pushd out/windows/x86_32/tools-mono/
- zip -r "${RELEASE_DIR}/Redot_v${VERSIONSTRING}_windows_mono_win32.zip" ./*
- popd
- mv out/macos/universal/tools/signed/redot.macos.editor.universal_stapled.zip releases/Redot_v${VERSIONSTRING}_macos_universal.zip
- mv out/macos/universal/tools-mono/signed/redot.macos.editor.universal.mono_stapled.zip releases/Redot_v${VERSIONSTRING}_macos_mono_universal.zip
- pushd out/
- touch ./templates/version.txt
- echo "${VERSIONTXT}" | cat >> ./templates/version.txt
- rm ./templates/redot.macos.template*
- rm ./templates/libgodot.ios*
- zip -r ${RELEASE_DIR}/Redot_v${VERSIONSTRING}_export_templates.zip ./templates/*
- rm -rf ./templates/
- mv ./templates-mono ./templates/
- touch ./templates/version.txt
- echo "${VERSIONTXT}.mono" | cat >> ./templates/version.txt
- rm ./templates/redot.macos.template*
- rm ./templates/libgodot.ios*
- zip -r ${RELEASE_DIR}/Redot_v${VERSIONSTRING}_mono_export_templates.zip ./templates/*
- popd
- mv releases/Redot_v${VERSIONSTRING}_mono_export_templates.zip releases/Redot_v${VERSIONSTRING}_mono_export_templates.tpz
- mv releases/Redot_v${VERSIONSTRING}_export_templates.zip releases/Redot_v${VERSIONSTRING}_export_templates.tpz
- touch SHA512-SUMS.txt
- |
for f in releases/*; do
# Only process regular files
[ -f "$f" ] || continue
# Compute the hash and append it
sha512sum "$f" >> SHA512-SUMS.txt
done
- mv SHA512-SUMS.txt releases/SHA512-SUMS.txt
artifacts:
expire_in: 3 days
paths:
- releases/*
pushNuget:
stage: package
image: $CI_REGISTRY/redot-engine/redot-production-containers/redot-linux:latest
tags: [docker]
rules:
- if: $DO_RELEASE == "true"
script:
- cd out/linuxbsd/x86_64/tools-mono/GodotSharp/Tools/nupkgs
- dotnet nuget push "./*.nupkg" --api-key $NUGET_API_KEY --source https://api.nuget.org/v3/index.json --skip-duplicate

View File

@@ -285,6 +285,9 @@ def generate_sdk_package_versions():
if match:
pos = match.start()
version_status = version_status[:pos] + "." + version_status[pos:]
else:
version_status = f"{version_status}.{version_info['status_version']}"
version_str += "-" + version_status
import version

View File

@@ -3,8 +3,8 @@ name = "Redot Engine"
major = 4
minor = 4
patch = 0
status = "rc"
status_version = 1
status = "stable"
status_version = 0
module_config = ""
website = "https://redotengine.org"
docs = "latest"