* Update hxvlc to 2.2.6 * Remove `arch -x86_64` as no longer needed Since `cne-lime` got rebased with FunkinCrew's, which includes Apple Silicon (ARM64) support. * Wtf * Rename **Mac OS x64** to **Mac OS Universal** in the ReadME Reason: **x64** is only powered by Intel/AMD, not ARM, so it will make the macOS users to think macOS builds still uses Intel. * Enable videos for iOS Since hxvlc 2.0.0 or newer, it fixed the video playback for iOS. * Fixed the extension-androidtools import, when using extension-androidtools 2.2.X. * Replace `start` with `wait` in `VideoCutscene.hx` * Revert * Nvm I think I found out why I guess * Will this fix some actions deprecations? * Oops * F#CK * I'm gonna lose it * I forgot again I'm going to scream into the pillow, If I keep forgetting to update those. * Update macOS version to 26 in the macOS workflow * Remove old hxvlc apis from the `VideoCutscene.hx` class, since hxvlc got updated to the latest * Fix the f#cking conflicts * Now it works --------- Co-authored-by: Ralty <78720179+Raltyro@users.noreply.github.com>
198 lines
7.1 KiB
YAML
198 lines
7.1 KiB
YAML
name: Create Release Builds
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
tag_name:
|
|
description: "Release name (e.g. v1.0.5 or v1.2-rc1)"
|
|
required: true
|
|
prerelease:
|
|
description: "Is this a prerelease?"
|
|
required: true
|
|
type: boolean
|
|
custom_message:
|
|
description: "Optional pre-changelog message"
|
|
required: false
|
|
|
|
jobs:
|
|
collect-release:
|
|
name: Release ${{ github.event.inputs.tag_name }} Builds
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Download Windows Full Build
|
|
uses: dawidd6/action-download-artifact@v8
|
|
with:
|
|
workflow: windows.yml
|
|
name: Codename Engine
|
|
path: artifacts/windows/full_build
|
|
allow_forks: false
|
|
|
|
- name: Download Windows Executable
|
|
uses: dawidd6/action-download-artifact@v8
|
|
with:
|
|
workflow: windows.yml
|
|
name: Codename Engine (Executable Only)
|
|
path: artifacts/windows/executable
|
|
allow_forks: false
|
|
|
|
- name: Download Mac OS Full Build
|
|
uses: dawidd6/action-download-artifact@v8
|
|
with:
|
|
workflow: macos.yml
|
|
name: Codename Engine
|
|
path: artifacts/macos/full_build
|
|
allow_forks: false
|
|
|
|
- name: Download Mac OS Executable
|
|
uses: dawidd6/action-download-artifact@v8
|
|
with:
|
|
workflow: macos.yml
|
|
name: Codename Engine (Executable Only)
|
|
path: artifacts/macos/executable
|
|
allow_forks: false
|
|
|
|
- name: Download Linux Full Build
|
|
uses: dawidd6/action-download-artifact@v8
|
|
with:
|
|
workflow: linux.yml
|
|
name: Codename Engine
|
|
path: artifacts/linux/full_build
|
|
allow_forks: false
|
|
|
|
- name: Download Linux Executable
|
|
uses: dawidd6/action-download-artifact@v8
|
|
with:
|
|
workflow: linux.yml
|
|
name: Codename Engine (Executable Only)
|
|
path: artifacts/linux/executable
|
|
allow_forks: false
|
|
|
|
- name: Prepare artifacts
|
|
run: |
|
|
mkdir -p renamed
|
|
|
|
# Windows
|
|
mv artifacts/windows/executable/CodenameEngine.exe renamed/update-windows.exe
|
|
cd artifacts/windows/full_build
|
|
zip -r ../../../renamed/"Codename Engine-Windows.zip" *
|
|
cd -
|
|
|
|
# Mac OS
|
|
mv artifacts/macos/executable/CodenameEngine renamed/update-mac
|
|
cd artifacts/macos/full_build
|
|
if [ -f CodenameEngine.tar.gz ]; then
|
|
# Keep tar.gz as-is
|
|
cp CodenameEngine.tar.gz ../../../renamed/"Codename Engine-Mac.tar.gz"
|
|
else
|
|
# Zip contents at root
|
|
zip -r ../../../renamed/"Codename Engine-Mac.zip" *
|
|
fi
|
|
cd -
|
|
|
|
# Linux
|
|
mv artifacts/linux/executable/CodenameEngine renamed/update-linux
|
|
cd artifacts/linux/full_build
|
|
zip -r ../../../renamed/"Codename Engine-Linux.zip" *
|
|
cd -
|
|
|
|
- name: Find Base Release
|
|
id: get_base_release
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: |
|
|
echo "Looking for base release..."
|
|
PRERELEASE="${{ github.event.inputs.prerelease }}"
|
|
|
|
if [[ "$PRERELEASE" == "true" ]]; then
|
|
BASE=$(gh release list --repo ${{ github.repository }} --json tagName,isPrerelease,isDraft \
|
|
-L 50 -q '.[] | select(.isPrerelease==false and .isDraft==false) | .tagName' | head -n 1)
|
|
|
|
if [ -z "$BASE" ]; then
|
|
echo "No stable release found, resorting to prereleases."
|
|
BASE=$(gh release list --repo ${{ github.repository }} --json tagName,isDraft \
|
|
-L 1 -q '.[] | select(.isDraft==false) | .tagName')
|
|
fi
|
|
else
|
|
BASE=$(gh release list --repo ${{ github.repository }} --json tagName,isPrerelease,isDraft \
|
|
-L 50 -q '.[] | select(.isPrerelease==false and .isDraft==false) | .tagName' | head -n 1)
|
|
fi
|
|
|
|
if [ -z "$BASE" ]; then
|
|
echo "No older release found; please make sure to have at least one older release containing the 'update-assets.zip' file in order to generate the differences."
|
|
exit 1
|
|
else
|
|
echo "Base release: $BASE"
|
|
echo "base_release=$BASE" >> $GITHUB_OUTPUT
|
|
fi
|
|
|
|
- name: Prepare update-assets.zip
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: |
|
|
echo "Looking for 'update-assets.zip' from release '${{ steps.get_base_release.outputs.base_release }}'"
|
|
ASSETS=$(gh release view "${{ steps.get_base_release.outputs.base_release }}" \
|
|
--repo "${{ github.repository }}" \
|
|
--json assets \
|
|
| jq -r '.assets[].name')
|
|
|
|
if echo "$ASSETS" | grep -xq "update-assets.zip"; then
|
|
mkdir -p update_assets_temp renamed
|
|
echo "Downloading assets from release '${{ steps.get_base_release.outputs.base_release }}'"
|
|
gh release download "${{ steps.get_base_release.outputs.base_release }}" \
|
|
--repo ${{ github.repository }} \
|
|
--pattern "update-assets.zip" \
|
|
-D update_assets_temp
|
|
|
|
unzip -q update_assets_temp/update-assets.zip -d update_assets_temp
|
|
cd update_assets_temp
|
|
zip -r ../renamed/update-assets.zip . -i assets
|
|
else
|
|
echo "No 'update-assets.zip' file found in release '${{ steps.get_base_release.outputs.base_release }}'; please make sure to have this file in that older release in order to generate the differences."
|
|
exit 1
|
|
fi
|
|
|
|
- name: Prepare pre-changelog message
|
|
id: pre_changelog_message
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: |
|
|
echo "Preparing a pre-changelog message..."
|
|
|
|
BODY="If you would like to download the full builds of the engine from this release, please ignore the files starting with 'update-' as they're needed for the engine's internal autoupdater.\n\n"
|
|
|
|
if [ -n "${{ github.event.inputs.custom_message }}" ]; then
|
|
BODY="${{ github.event.inputs.custom_message }}\n${BODY}"
|
|
fi
|
|
|
|
{
|
|
echo "body<<EOF"
|
|
echo -e "$BODY"
|
|
echo "EOF"
|
|
} >> $GITHUB_OUTPUT
|
|
echo -e "Final pre-changelog message:\n\n$BODY"
|
|
|
|
- name: Create GitHub Release with Assets
|
|
uses: softprops/action-gh-release@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
tag_name: ${{ github.event.inputs.tag_name }}
|
|
name: Release ${{ github.event.inputs.tag_name }}
|
|
draft: true
|
|
prerelease: ${{ github.event.inputs.prerelease }}
|
|
body: ${{ steps.build_body.outputs.body }}
|
|
generate_release_notes: true
|
|
files: |
|
|
renamed/Codename Engine-Windows.zip
|
|
renamed/Codename Engine-Mac.zip
|
|
renamed/Codename Engine-Mac.tar.gz
|
|
renamed/Codename Engine-Linux.zip
|
|
renamed/update-assets.zip
|
|
renamed/update-windows.exe
|
|
renamed/update-mac
|
|
renamed/update-linux
|