forked from FunkinCrew/Funkin
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'origin/rewrite/master' into input-offsets
- Loading branch information
Showing
68 changed files
with
2,707 additions
and
1,157 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,144 @@ | ||
name: setup-haxeshit | ||
description: "sets up haxe shit, using HMM!" | ||
|
||
inputs: | ||
haxe: | ||
description: 'Version of haxe to install' | ||
required: true | ||
default: '4.3.4' | ||
hxcpp-cache: | ||
description: 'Whether to use a shared hxcpp compile cache' | ||
required: true | ||
default: 'true' | ||
hxcpp-cache-path: | ||
description: 'Path to create hxcpp cache in' | ||
required: true | ||
default: ${{ runner.temp }}/hxcpp_cache | ||
targets: | ||
description: 'Targets we plan to compile to. Installs native dependencies needed.' | ||
required: true | ||
gh-token: | ||
description: 'GitHub secret for private repos as dependencies' | ||
|
||
runs: | ||
using: "composite" | ||
steps: | ||
|
||
- name: Setup timers | ||
shell: bash | ||
run: | | ||
echo "TIMER_HAXE=$(date +%s)" >> "$GITHUB_ENV" | ||
- name: Install Haxe | ||
uses: funkincrew/ci-haxe@v3.1.0 | ||
with: | ||
haxe-version: ${{ inputs.haxe }} | ||
|
||
- name: Install native dependencies | ||
if: ${{ runner.os == 'Linux' }} | ||
shell: bash | ||
run: | | ||
ls -lah /usr/lib/x86_64-linux-gnu/ | ||
apt-get update | ||
apt-get install -y \ | ||
g++ \ | ||
libx11-dev libxi-dev libxext-dev libxinerama-dev libxrandr-dev \ | ||
libgl-dev libgl1-mesa-dev \ | ||
libasound2-dev | ||
ln -s /usr/lib/x86_64-linux-gnu/libffi.so.8 /usr/lib/x86_64-linux-gnu/libffi.so.6 || true | ||
- name: Install linux-specific dependencies | ||
if: ${{ runner.os == 'Linux' && contains(inputs.targets, 'linux') }} | ||
shell: bash | ||
run: | | ||
apt-get install -y libvlc-dev libvlccore-dev | ||
- name: Config haxelib | ||
shell: bash | ||
run: | | ||
echo "TIMER_HAXELIB=$(date +%s)" >> "$GITHUB_ENV" | ||
haxelib --debug --never install haxelib 4.1.0 --global | ||
haxelib --debug --never deleterepo || true | ||
haxelib --debug --never newrepo | ||
echo "HAXEPATH=$(haxelib config)" >> "$GITHUB_ENV" | ||
haxelib --debug --never git haxelib https://github.com/HaxeFoundation/haxelib.git master | ||
haxelib --debug --global install hmm | ||
echo "TIMER_DEPS=$(date +%s)" >> "$GITHUB_ENV" | ||
- name: Restore cached dependencies | ||
id: cache-hmm | ||
uses: actions/cache@v4 | ||
with: | ||
path: .haxelib | ||
key: haxe-hmm-${{ runner.os }}-${{ hashFiles('**/hmm.json') }} | ||
|
||
- if: ${{ steps.cache-hmm.outputs.cache-hit != 'true' }} | ||
name: Prep git for dependency install | ||
uses: gacts/run-and-post-run@v1 | ||
with: | ||
run: git config --global 'url.https://x-access-token:${{ inputs.gh-token }}@github.com/.insteadOf' https://github.com/ | ||
post: git config --global --unset 'url.https://x-access-token:${{ inputs.gh-token }}@github.com/.insteadOf' | ||
|
||
- if: ${{ steps.cache-hmm.outputs.cache-hit != 'true' }} | ||
name: Install dependencies | ||
shell: bash | ||
run: | | ||
haxelib --global run hmm install -q | ||
echo "TIMER_DONE=$(date +%s)" >> "$GITHUB_ENV" | ||
# by default use a shared hxcpp cache | ||
- if: ${{ inputs.hxcpp-cache == 'true' }} | ||
name: Restore hxcpp cache | ||
uses: actions/cache@v4 | ||
with: | ||
path: ${{ inputs.hxcpp-cache-path }} | ||
key: haxe-hxcpp-${{ runner.os }}-${{ github.ref_name }}-${{ github.sha }} | ||
restore-keys: haxe-hxcpp-${{ runner.os }}-${{ github.ref_name }} | ||
# export env for it to reuse in builds | ||
- if: ${{ inputs.hxcpp-cache == 'true' }} | ||
name: Persist env for hxcpp cache | ||
shell: bash | ||
run: | | ||
echo "HXCPP_COMPILE_CACHE=${{ inputs.hxcpp-cache-path }}" >> "$GITHUB_ENV" | ||
echo 'HXCPP_CACHE_MB="4096"' >> "$GITHUB_ENV" | ||
# if it's explicitly disabled, still cache export/ since that then contains the builds | ||
- if: ${{ inputs.hxcpp-cache != 'true' }} | ||
name: Restore export cache | ||
uses: actions/cache@v4 | ||
with: | ||
path: ${{ inputs.hxcpp-cache-path }} | ||
key: haxe-export-${{ runner.os }}-${{ github.ref_name }}-${{ github.sha }} | ||
restore-keys: haxe-export-${{ runner.os }}-${{ github.ref_name }} | ||
|
||
- name: Print debug info | ||
shell: bash | ||
run: | | ||
cat << EOF | ||
runner: | ||
kernel: $(uname -a) | ||
haxe: | ||
version: $(haxe -version) | ||
which: $(which haxe) | ||
haxepath: $HAXEPATH | ||
took: $((TIMER_HAXELIB - TIMER_HAXE))s | ||
haxelib: | ||
version: $(haxelib version) | ||
which: $(which haxelib) | ||
local: | ||
config: $(haxelib config) | ||
path: $(haxelib path haxelib || true) | ||
global | ||
config: $(haxelib config --global) | ||
path: $(haxelib path haxelib --global || true) | ||
system | ||
version: $(haxelib --system version) | ||
local: | ||
config: $(haxelib --system config) | ||
global: | ||
config: $(haxelib --system config --global) | ||
took: $((TIMER_DEPS - TIMER_HAXELIB))s | ||
deps: | ||
took: $((TIMER_DONE - TIMER_DEPS))s | ||
hxcpp_cache: | | ||
$(haxelib run hxcpp cache list || true) | ||
EOF |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,44 +1,124 @@ | ||
name: upload-itch | ||
description: "installs Butler, and uploads to itch.io!" | ||
|
||
inputs: | ||
butler-key: | ||
description: "Butler API secret key" | ||
required: true | ||
itch-repo: | ||
description: "Where to upload the game to" | ||
required: true | ||
default: "ninja-muffin24/funkin-secret" | ||
build-dir: | ||
description: "Directory of the game build" | ||
required: true | ||
required: false | ||
target: | ||
description: "Target (html5, win, linux, mac)" | ||
description: "Target (html5, windows, linux, macos)" | ||
required: true | ||
|
||
runs: | ||
using: "composite" | ||
steps: | ||
- name: Install butler Windows | ||
if: runner.os == 'Windows' | ||
run: | | ||
curl -L -o butler.zip https://broth.itch.ovh/butler/windows-amd64/LATEST/archive/default | ||
7z x butler.zip | ||
./butler -v | ||
shell: bash | ||
- name: Install butler Mac | ||
if: runner.os == 'macOS' | ||
run: | | ||
curl -L -o butler.zip https://broth.itch.ovh/butler/darwin-amd64/LATEST/archive/default | ||
unzip butler.zip | ||
./butler -V | ||
shell: bash | ||
- name: Install butler Linux | ||
if: runner.os == 'Linux' | ||
run: | | ||
curl -L -o butler.zip https://broth.itch.ovh/butler/linux-amd64/LATEST/archive/default | ||
unzip butler.zip | ||
chmod +x butler | ||
./butler -V | ||
shell: bash | ||
- name: Upload game to itch.io | ||
env: | ||
BUTLER_API_KEY: ${{inputs.butler-key}} | ||
run: | | ||
./butler login | ||
./butler push ${{inputs.build-dir}} ninja-muffin24/funkin-secret:${{inputs.target}}-${GITHUB_REF_NAME} | ||
shell: bash | ||
|
||
# RUNNER_OS = Windows | macOS | Linux | ||
# TARGET_BUILD = windows | macos | linux | ||
# TARGET_ITCH = win | macos | linux | ||
# TARGET_BUTLER_DOWNLOAD = windows-amd64 | darwin-amd64 | linux-amd64 | ||
- name: Setup variables | ||
shell: bash | ||
run: | | ||
TARGET_OS=${{ inputs.target }} | ||
RUNNER=${RUNNER_OS@L} | ||
TARGET=${TARGET_OS@L} | ||
case "$TARGET" in | ||
"windows") | ||
TARGET_ITCH=win | ||
;; | ||
*) | ||
TARGET_ITCH=$TARGET | ||
;; | ||
esac | ||
case "$RUNNER" in | ||
"macos") | ||
OS_NODE=darwin | ||
;; | ||
*) | ||
OS_NODE=$RUNNER | ||
;; | ||
esac | ||
BUTLER_PATH=$RUNNER_TEMP/butler | ||
echo BUILD_DIR="export/release/$TARGET/bin" >> "$GITHUB_ENV" | ||
echo ITCH_TAG=${{ inputs.itch-repo }}:$TARGET_ITCH-$GITHUB_REF_NAME >> "$GITHUB_ENV" | ||
echo OS_AND_ARCH=$OS_NODE-amd64 >> "$GITHUB_ENV" | ||
echo BUTLER_API_KEY=${{ inputs.butler-key }} >> "$GITHUB_ENV" | ||
echo BUTLER_INSTALL_PATH=$BUTLER_PATH >> "$GITHUB_ENV" | ||
echo TIMER_BUTLER=$(date +%s) >> "$GITHUB_ENV" | ||
echo TARGET_ITCH=$TARGET_ITCH >> "$GITHUB_ENV" | ||
echo "$BUTLER_PATH" >> "$GITHUB_PATH" | ||
- name: Get latest butler version | ||
shell: bash | ||
run: | | ||
LATEST=$(curl -sfL https://broth.itch.ovh/butler/$OS_AND_ARCH/LATEST) | ||
echo BUTLER_LATEST=$LATEST >> "$GITHUB_ENV" | ||
command -v butler \ | ||
&& echo BUTLER_CURRENT=$(butler -V 2>&1 | cut -d ',' -f 1) >> "$GITHUB_ENV" \ | ||
|| echo BUTLER_CURRENT=none >> "$GITHUB_ENV" | ||
- name: Try to get butler from cache | ||
id: cache-butler | ||
uses: actions/cache@v4 | ||
with: | ||
path: ${{ env.BUTLER_INSTALL_PATH }} | ||
key: butler-${{ runner.os }}-${{ env.BUTLER_LATEST }} | ||
|
||
- if: steps.cache-butler.outputs.cache-hit == 'true' | ||
name: Make sure butler is executable | ||
shell: bash | ||
run: | | ||
chmod +x $BUTLER_INSTALL_PATH/butler | ||
- if: steps.cache-butler.outputs.cache-hit != 'true' | ||
name: Install butler | ||
shell: bash | ||
run: | | ||
mkdir -p $BUTLER_INSTALL_PATH | ||
cd $BUTLER_INSTALL_PATH | ||
curl -L -o butler.zip https://broth.itch.ovh/butler/$OS_AND_ARCH/LATEST/archive/default | ||
unzip butler.zip | ||
chmod +x butler | ||
- name: Upload game to itch.io | ||
shell: bash | ||
run: | | ||
echo "TIMER_UPLOAD=$(date +%s)" >> "$GITHUB_ENV" | ||
butler login | ||
butler push $BUILD_DIR $ITCH_TAG | ||
echo "TIMER_DONE=$(date +%s)" >> "$GITHUB_ENV" | ||
- name: Print debug info | ||
shell: bash | ||
run: | | ||
cat << EOF | ||
butler: | ||
version: $( | ||
if [[ "$BUTLER_CURRENT" == "$BUTLER_LATEST" ]] | ||
then | ||
echo $BUTLER_CURRENT | ||
else | ||
echo $BUTLER_CURRENT -> $BUTLER_LATEST | ||
fi | ||
) | ||
install: | ||
took: $(($TIMER_UPLOAD-$TIMER_BUTLER))s | ||
upload: | ||
tag: $TARGET_ITCH/$GITHUB_REF_NAME | ||
took: $(($TIMER_DONE-$TIMER_UPLOAD))s | ||
EOF | ||
cat << EOF >> "$GITHUB_STEP_SUMMARY" | ||
### open in launcher: [$TARGET_ITCH/$GITHUB_REF_NAME](https://run.funkin.me/$TARGET_ITCH/$GITHUB_REF_NAME) | ||
EOF |
Oops, something went wrong.