version: 2 jobs: linux_x86_64: docker: - image: debian:stretch-backports working_directory: ~/repo steps: - checkout - run: echo deb http://deb.debian.org/debian stretch-backports-sloppy main >> /etc/apt/sources.list.d/debian-backports.list - run: apt update -y - run: apt install -y g++ libsdl2-dev libsdl2-ttf-dev git rpm wget - run: apt install -y -t 'stretch-backports*' cmake libsodium-dev - run: cmake -S. -Bbuild .. -DNIGHTLY_BUILD=ON -DCMAKE_INSTALL_PREFIX=/usr - run: cmake --build build -j 2 --target package - store_artifacts: {path: ./build/devilutionx, destination: devilutionx_linux_x86_64} - run: Packaging/nix/LinuxReleasePackaging.sh - run: Packaging/nix/AppImage.sh - store_artifacts: {path: ./devilutionx.appimage, destination: devilutionx_linux_x86_64.appimage} - store_artifacts: {path: ./devilutionx.tar.xz, destination: devilutionx_linux_x86_64.tar.xz} linux_x86_64_test: docker: - image: debian:testing working_directory: ~/repo steps: - checkout - run: apt-get update -y - run: apt-get install -y cmake curl g++ git lcov libgtest-dev libfmt-dev libsdl2-dev libsdl2-ttf-dev libsodium-dev - run: cmake -S. -Bbuild -DRUN_TESTS=ON -DENABLE_CODECOVERAGE=ON - run: cmake --build build -j 2 - run: cmake --build build -j 2 --target test - run: bash <(curl -s https://codecov.io/bash) environment: CTEST_OUTPUT_ON_FAILURE: 1 switch: docker: - image: devkitpro/devkita64:latest working_directory: ~/repo steps: - checkout - run: /opt/devkitpro/portlibs/switch/bin/aarch64-none-elf-cmake -S. -Bbuild .. -DNIGHTLY_BUILD=ON - run: cmake --build build -j 2 - store_artifacts: {path: ./build/devilutionx.nro, destination: devilutionx.nro} android: docker: - image: circleci/android:api-28-ndk working_directory: ~/repo steps: - checkout - run: sudo apt update -y - run: sudo apt install -y g++ cmake ninja-build - run: cd android-project && ./gradlew assembleDebug - store_artifacts: {path: ./android-project/app/build/outputs/apk/debug/app-debug.apk, destination: devilutionx-debug.apk} 3ds: docker: - image: devkitpro/devkitarm:latest working_directory: ~/repo steps: - checkout - run: wget https://github.com/Steveice10/bannertool/releases/download/1.2.0/bannertool.zip - run: unzip -j "bannertool.zip" "linux-x86_64/bannertool" -d "/opt/devkitpro/tools/bin" - run: wget https://github.com/jakcron/Project_CTR/releases/download/v0.16/makerom_016_ctrtool.zip - run: unzip -j "makerom_016_ctrtool.zip" "Ubuntu/makerom" -d "/opt/devkitpro/tools/bin" - run: sudo chmod +rx /opt/devkitpro/tools/bin/makerom - run: cmake -S. -Bbuild -DNIGHTLY_BUILD=ON -DCMAKE_TOOLCHAIN_FILE=/opt/devkitpro/cmake/3DS.cmake - run: cmake --build build -j 2 - store_artifacts: {path: ./build/devilutionx.3dsx, destination: devilutionx.3dsx} - store_artifacts: {path: ./build/devilutionx.cia, destination: devilutionx.cia} amigaos-m68k: docker: - image: amigadev/crosstools:m68k-amigaos working_directory: ~/repo steps: - checkout - run: Packaging/amiga/prep.sh - run: PKG_CONFIG_PATH=/opt/m68k-amigaos/lib/pkgconfig/:/opt/m68k-amigaos/share/pkgconfig/ cmake -S. -Bbuild -DM68K_CPU=68040 -DM68K_FPU=hard -DM68K_COMMON="-s -ffast-math -O3 -noixemul -D__BIG_ENDIAN__ -D__AMIGA__ -fpermissive" .. - run: cd build && make -j2 - store_artifacts: {path: ./build/devilutionx, destination: devilutionx_m68k} vita: docker: - image: vitasdk/vitasdk:latest working_directory: ~/repo steps: - checkout # Work around https://github.com/vitasdk/vdpm/issues/69 - run: mkdir -p /usr/local && ln -sf /home/user/vitasdk /usr/local/vitasdk - run: apk --no-cache add git cmake ninja bash pkgconfig - run: cmake -S. -Bbuild -GNinja -DCMAKE_TOOLCHAIN_FILE=${VITASDK}/share/vita.toolchain.cmake -DNIGHTLY_BUILD=ON - run: cmake --build build -j 2 - store_artifacts: {path: ./build/devilutionx.vpk, destination: devilutionx.vpk} workflows: version: 2 testflow: jobs: - linux_x86_64 - linux_x86_64_test - switch - android - 3ds - amigaos-m68k - vita