image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-amd64-ubuntu:latest stages: - build-prepare - build - prepare-for-static-cores - trigger-static-cores build-retroarch-windows-x64: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-mxe-win64-cross:gcc10 stage: build variables: MEDIA_PATH: .media before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch.exe - ${MEDIA_PATH} expire_in: 1 month dependencies: [] script: - "MOC=/usr/lib/mxe/usr/x86_64-w64-mingw32.shared/qt5/bin/moc ./configure --host=x86_64-w64-mingw32.shared" - "make -j$NUMPROC" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/redist" - "cd libretro-common/audio/dsp_filters && make -j$NUMPROC platform=win compiler=x86_64-w64-mingw32.static-gcc build=release && make -j$NUMPROC platform=win compiler=x86_64-w64-mingw32.static-gcc build=release strip && cd -" - "cp -f libretro-common/audio/dsp_filters/*.dll ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "cd gfx/video_filters && make -j$NUMPROC platform=win compiler=x86_64-w64-mingw32.static-gcc build=release && make -j$NUMPROC platform=win compiler=x86_64-w64-mingw32.static-gcc build=release strip && cd -" - "cp -f gfx/video_filters/*.dll ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -f retroarch.cfg ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/retroarch.default.cfg" - "echo -e '[Paths]\nPlugins = ./' > ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/qt.conf" - "/bin/bash /usr/lib/mxe/tools/copydlldeps.sh --infile retroarch.exe --destdir ${MEDIA_PATH}/${CI_PROJECT_NAME}/redist/ --recursivesrcdir /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/ --enforcedir /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/qt5/plugins/bearer/ --enforcedir /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/qt5/plugins/iconengines/ --enforcedir /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/qt5/plugins/imageformats/ --enforcedir /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/qt5/plugins/platforms/ --enforcedir /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/qt5/plugins/styles/ --copy --objdump x86_64-w64-mingw32.shared-objdump" - "rm -f ${MEDIA_PATH}/${CI_PROJECT_NAME}/redist/opengl32.dll" build-retroarch-linux-x64: stage: build before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch expire_in: 1 month dependencies: [] script: - "./configure" - "make -j$NUMPROC" build-retroarch-dingux-mips32: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-dingux:latest stage: build variables: MEDIA_PATH: .media before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch_rg350.opk - ${MEDIA_PATH} expire_in: 1 month dependencies: [] script: - "make -j$NUMPROC -f Makefile.rg350" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" build-retroarch-android-normal: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-android:latest stage: build artifacts: paths: - ./ exclude: - .git/**/* expire_in: 1 day script: - "cd pkg/android/phoenix" - "./gradlew assembleNormalRelease" build-retroarch-android-aarch64: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-android:latest stage: build artifacts: paths: - ./ exclude: - .git/**/* expire_in: 1 day script: - "cd pkg/android/phoenix" - "./gradlew assembleAarch64Release" build-retroarch-android-ra32: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-android:latest stage: build artifacts: paths: - ./ exclude: - .git/**/* expire_in: 1 day script: - "cd pkg/android/phoenix" - "./gradlew assembleRa32Release" build-retroarch-android-playstore-normal: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-android:latest stage: build artifacts: paths: - ./ exclude: - .git/**/* expire_in: 1 day script: - "cd pkg/android/phoenix" - "./gradlew bundlePlayStoreNormalRelease" build-retroarch-android-playstore-aarch64: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-android:latest stage: build artifacts: paths: - ./ exclude: - .git/**/* expire_in: 1 day script: - "cd pkg/android/phoenix" - "./gradlew bundlePlayStoreAarch64Release" build-static-retroarch-libnx-aarch64: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-libnx-devkitpro:latest stage: prepare-for-static-cores before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch-precompiled/ expire_in: 1 day dependencies: [] needs: # Static dummy builds without a core so its a good check if it properly builds - build-static-retroarch-dummy-libnx-aarch64 script: # Allow failure since we don't have a core - "make -f Makefile.libnx -j$NUMPROC ||:" - "mkdir .retroarch-precompiled" - "cp -r ./* .retroarch-precompiled/" - "mv .retroarch-precompiled/ retroarch-precompiled/" build-static-retroarch-dummy-libnx-aarch64: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-libnx-devkitpro:latest stage: build variables: MEDIA_PATH: .media before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch_switch.nro - retroarch_switch.elf - ${MEDIA_PATH} expire_in: 1 month dependencies: [] script: - "make -f Makefile.libnx -j$NUMPROC HAVE_STATIC_DUMMY=1" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" - "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -f pkg/libnx/retroarch.jpg ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" build-static-retroarch-vita: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-vita:latest stage: prepare-for-static-cores before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch-precompiled/ expire_in: 1 day dependencies: [] needs: # Dummy build requires no core - build-static-retroarch-dummy-vita script: # Allow failure since we don't have a core - "make -f Makefile.vita -j$NUMPROC ||:" - "mkdir .retroarch-precompiled" - "cp -r ./* .retroarch-precompiled/" - "mv .retroarch-precompiled/ retroarch-precompiled/" build-static-retroarch-dummy-vita: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-vita:latest stage: build variables: MEDIA_PATH: .media before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - eboot.bin - param.sfo - ${MEDIA_PATH} expire_in: 1 month dependencies: [] script: - "make -f Makefile.vita.salamander -j$NUMPROC" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" - "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -fr pkg/vita/* ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" build-static-retroarch-ps2: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-ps2:latest stage: prepare-for-static-cores artifacts: paths: - retroarch-precompiled/ expire_in: 1 day dependencies: [] needs: # Dummy build requires no core - build-static-retroarch-dummy-ps2 script: # Allow failure since we don't have a core # PS2 makefile for now doesn't allow -jX so this is why is hardcoded to -j1 - "make -f Makefile.ps2 -j1 ||:" - "mkdir .retroarch-precompiled" - "cp -r ./* .retroarch-precompiled/" - "mv .retroarch-precompiled/ retroarch-precompiled/" build-static-retroarch-dummy-ps2: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-ps2:latest stage: build before_script: # PS2 doesn't allow to use -jX for now - export NUMPROC=1 artifacts: paths: - raboot.elf expire_in: 1 month dependencies: [] script: - "make -f Makefile.ps2.salamander -j$NUMPROC release" build-static-retroarch-psp: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-psp:latest stage: prepare-for-static-cores before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch-precompiled/ expire_in: 1 day dependencies: [] needs: # Dummy build requires no core - build-static-retroarch-dummy-psp script: # We need to boostrap before compile - "(cd bootstrap/psp1/kernel_functions_prx/ && make && cd -)" # Allow failure since we don't have a core - "make -f Makefile.psp1 -j$NUMPROC ||:" - "mkdir .retroarch-precompiled" - "cp -r ./* .retroarch-precompiled/" - "mv .retroarch-precompiled/ retroarch-precompiled/" build-static-retroarch-dummy-psp: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-psp:latest stage: build variables: MEDIA_PATH: .media before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - EBOOT.PBP - kernel_functions.prx - ${MEDIA_PATH} expire_in: 1 month dependencies: [] script: - "(cd bootstrap/psp1/kernel_functions_prx/ && make && cd -)" - "make -f Makefile.psp1.salamander -j$NUMPROC" - "make -C bootstrap/psp1/kernel_functions_prx/" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" - "cp -f pkg/psp1/ICON0.PNG ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" - "cp -f pkg/psp1/PIC1.PNG ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" build-static-retroarch-ctr: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-devkitpro:latest stage: prepare-for-static-cores before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch-precompiled/ expire_in: 1 day dependencies: [] needs: # Dummy build requires no core - build-static-retroarch-dummy-ctr script: # Allow failure since we don't have a core - "make -f Makefile.ctr -j$NUMPROC USE_CTRULIB_2=1 ||:" - "mkdir .retroarch-precompiled" - "cp -r ./* .retroarch-precompiled/" - "mv .retroarch-precompiled/ retroarch-precompiled/" build-static-retroarch-dummy-ctr: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-devkitpro:latest stage: build variables: MEDIA_PATH: .media before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch_3ds.cia - RetroArch.3dsx - RetroArch.smdh - ${MEDIA_PATH} expire_in: 1 month dependencies: [] script: - "make -f Makefile.ctr.salamander -j$NUMPROC USE_CTRULIB_2=1" - "mv -f retroarch_3ds_salamander.cia retroarch_3ds.cia" - "mv -f retroarch_3ds_salamander.3dsx RetroArch.3dsx" - "mv -f retroarch_3ds_salamander.smdh RetroArch.smdh" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" build-static-retroarch-wiiu: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-wiiu:latest stage: prepare-for-static-cores before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch-precompiled/ expire_in: 1 day dependencies: [] needs: # Dummy build requires no core - build-static-retroarch-dummy-wiiu script: # Allow failure since we don't have a core - "make -f Makefile.wiiu -j$NUMPROC ||:" - "mkdir .retroarch-precompiled" - "cp -r ./* .retroarch-precompiled/" - "mv .retroarch-precompiled/ retroarch-precompiled/" build-static-retroarch-dummy-wiiu: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-devkitpro:latest stage: build variables: MEDIA_PATH: .media before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch.rpx - ${MEDIA_PATH} expire_in: 1 month dependencies: [] script: - "make -f Makefile.wiiu -j$NUMPROC SALAMANDER_BUILD=1" - "mv -f retroarch_wiiu_salamander.rpx retroarch.rpx" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" - "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -f pkg/wiiu/icon.png ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" - "cp -f pkg/wiiu/meta.xml ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" build-static-retroarch-wii: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-devkitpro:latest stage: prepare-for-static-cores before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch-precompiled/ expire_in: 1 day dependencies: [] needs: # Dummy build requires no core - build-static-retroarch-dummy-wii script: # Allow failure since we don't have a core - "make -f Makefile.wii -j$NUMPROC EXTERNAL_LIBOGC=1 GX_PTHREAD_LEGACY=0 ||:" - "mkdir .retroarch-precompiled" - "cp -r ./* .retroarch-precompiled/" - "mv .retroarch-precompiled/ retroarch-precompiled/" build-static-retroarch-dummy-wii: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-devkitpro:latest stage: build variables: MEDIA_PATH: .media before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - boot.dol - ${MEDIA_PATH} expire_in: 1 month dependencies: [] script: - "make -f Makefile.wii.salamander -j$NUMPROC EXTERNAL_LIBOGC=1 GX_PTHREAD_LEGACY=0" - "mv -f retroarch-salamander_wii.dol boot.dol" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" - "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -f pkg/wii/icon.png ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" - "cp -f pkg/wii/meta.xml ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" build-static-retroarch-ngc: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-devkitpro:latest stage: prepare-for-static-cores before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch-precompiled/ expire_in: 1 day dependencies: [] needs: # Dummy build requires no core - build-static-retroarch-dummy-ngc script: # Allow failure since we don't have a core - "make -f Makefile.ngc -j$NUMPROC EXTERNAL_LIBOGC=1 GX_PTHREAD_LEGACY=0 ||:" - "mkdir .retroarch-precompiled" - "cp -r ./* .retroarch-precompiled/" - "mv .retroarch-precompiled/ retroarch-precompiled/" build-static-retroarch-dummy-ngc: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-devkitpro:latest stage: build variables: MEDIA_PATH: .media before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - ${MEDIA_PATH} expire_in: 1 month dependencies: [] script: - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" trigger_static-cores: stage: trigger-static-cores needs: - build-static-retroarch-libnx-aarch64 - build-static-retroarch-vita - build-static-retroarch-ps2 - build-static-retroarch-psp - build-static-retroarch-ctr - build-static-retroarch-wiiu - build-static-retroarch-wii - build-static-retroarch-ngc dependencies: [] script: # Dummy for now - /bin/true