From cd2275c129aaa95402c3f60f15cee5f7d537e9c1 Mon Sep 17 00:00:00 2001 From: Lior Halphon Date: Fri, 8 Mar 2024 19:04:28 +0200 Subject: [PATCH] Build the version-correct boot ROMs rather than the latest, add libretro GitLab CI --- .github/actions/update_libretro.sh | 15 ++- libretro/gitlab-ci.yml | 181 +++++++++++++++++++++++++++++ 2 files changed, 190 insertions(+), 6 deletions(-) create mode 100644 libretro/gitlab-ci.yml diff --git a/.github/actions/update_libretro.sh b/.github/actions/update_libretro.sh index 19a291a..a33633e 100755 --- a/.github/actions/update_libretro.sh +++ b/.github/actions/update_libretro.sh @@ -8,19 +8,22 @@ if [ $(git tag -l "$LATEST"-libretro) ]; then exit 0 fi -echo "Building boot ROMs..." -make -j bootroms -mv build/bin/BootROMs BootROMs/prebuilt - -echo "Updating branch" git config --global --add --bool push.autoSetupRemote true git config --global user.name 'Libretro Updater' git config --global user.email '<>' +cp libretro/gitlab-ci.yml .gitlab-ci.yml + +echo "Switching to tag $LATEST" git branch --delete libretro || true git checkout tags/$LATEST -b libretro -git add BootROMs/prebuilt/* +echo "Building boot ROMs..." +make -j bootroms + +echo "Updating branch" +mv build/bin/BootROMs BootROMs/prebuilt +git add BootROMs/prebuilt/* .gitlab-ci.yml git commit -m "Update libretro branch to $LATEST" git tag "$LATEST"-libretro git push --force diff --git a/libretro/gitlab-ci.yml b/libretro/gitlab-ci.yml new file mode 100644 index 0000000..e0fced5 --- /dev/null +++ b/libretro/gitlab-ci.yml @@ -0,0 +1,181 @@ +# DESCRIPTION: GitLab CI/CD for libRetro (NOT FOR GitLab-proper) + +############################################################################## +################################# BOILERPLATE ################################ +############################################################################## + +# Core definitions +.core-defs: + variables: + JNI_PATH: libretro + MAKEFILE_PATH: libretro + CORENAME: sameboy + BOOTROMS_DIR: BootROMs/prebuilt + +# Inclusion templates, required for the build to work +include: + ################################## DESKTOPS ################################ + # Windows 64-bit + - project: 'libretro-infrastructure/ci-templates' + file: '/windows-x64-mingw.yml' + + # Windows 32-bit + - project: 'libretro-infrastructure/ci-templates' + file: '/windows-i686-mingw.yml' + + # Linux 64-bit + - project: 'libretro-infrastructure/ci-templates' + file: '/linux-x64.yml' + + # Linux 32-bit + - project: 'libretro-infrastructure/ci-templates' + file: '/linux-i686.yml' + + # MacOS 64-bit + - project: 'libretro-infrastructure/ci-templates' + file: '/osx-x64.yml' + + # MacOS ARM 64-bit + - project: 'libretro-infrastructure/ci-templates' + file: '/osx-arm64.yml' + + ################################## CELLULAR ################################ + # Android + - project: 'libretro-infrastructure/ci-templates' + file: '/android-jni.yml' + + # iOS + - project: 'libretro-infrastructure/ci-templates' + file: '/ios-arm64.yml' + + # iOS (armv7) + - project: 'libretro-infrastructure/ci-templates' + file: '/ios9.yml' + + ################################## CONSOLES ################################ + # Nintendo WiiU + - project: 'libretro-infrastructure/ci-templates' + file: '/wiiu-static.yml' + + # Nintendo Switch + - project: 'libretro-infrastructure/ci-templates' + file: '/libnx-static.yml' + + # PlayStation Vita + - project: 'libretro-infrastructure/ci-templates' + file: '/vita-static.yml' + + # tvOS (AppleTV) + - project: 'libretro-infrastructure/ci-templates' + file: '/tvos-arm64.yml' + + #################################### MISC ################################## + +# Stages for building +stages: + - build-prepare + - build-shared + - build-static + +############################################################################## +#################################### STAGES ################################## +############################################################################## +# +################################### DESKTOPS ################################# +# Windows 64-bit +libretro-build-windows-x64: + extends: + - .libretro-windows-x64-mingw-make-default + - .core-defs + +# Windows 32-bit +libretro-build-windows-i686: + extends: + - .libretro-windows-i686-mingw-make-default + - .core-defs + +# Linux 64-bit +libretro-build-linux-x64: + extends: + - .libretro-linux-x64-make-default + - .core-defs + +# Linux 32-bit +libretro-build-linux-i686: + extends: + - .libretro-linux-i686-make-default + - .core-defs + +# MacOS 64-bit +libretro-build-osx-x64: + extends: + - .libretro-osx-x64-make-10-7 + - .core-defs + +# MacOS ARM 64-bit +libretro-build-osx-arm64: + extends: + - .libretro-osx-arm64-make-default + - .core-defs + +################################### CELLULAR ################################# +# Android ARMv7a +android-armeabi-v7a: + extends: + - .libretro-android-jni-armeabi-v7a + - .core-defs + +# Android ARMv8a +android-arm64-v8a: + extends: + - .libretro-android-jni-arm64-v8a + - .core-defs + +# Android 64-bit x86 +android-x86_64: + extends: + - .libretro-android-jni-x86_64 + - .core-defs + +# Android 32-bit x86 +android-x86: + extends: + - .libretro-android-jni-x86 + - .core-defs + +# iOS +libretro-build-ios-arm64: + extends: + - .libretro-ios-arm64-make-default + - .core-defs + +# iOS (armv7) [iOS 9 and up] +libretro-build-ios9: + extends: + - .libretro-ios9-make-default + - .core-defs + +# tvOS +libretro-build-tvos-arm64: + extends: + - .libretro-tvos-arm64-make-default + - .core-defs + +################################### CONSOLES ################################# +# Nintendo WiiU +libretro-build-wiiu: + extends: + - .libretro-wiiu-static-retroarch-master + - .core-defs + +# Nintendo Switch +libretro-build-libnx-aarch64: + extends: + - .libretro-libnx-static-retroarch-master + - .core-defs + +# PlayStation Vita +libretro-build-vita: + extends: + - .libretro-vita-static-retroarch-master + - .core-defs \ No newline at end of file