version: 2
jobs:
  build:
    working_directory: /home/circleci/SRB2
    docker:
      - image: cimg/base:current
        environment:
          CC: ccache gcc
          CCACHE_COMPRESS: true
          CFLAGS: -Wno-error=unused-result
      #- image: ubuntu:trusty
      #  environment:
      #    CC: ccache gcc -m32
      #    PKG_CONFIG_LIBDIR: /usr/lib/i386-linux-gnu/pkgconfig
      #    LIBGME_CFLAGS: -I/usr/include
      #    LIBGME_LDFLAGS: -lgme
      #    CCACHE_COMPRESS: true
      #    WFLAGS: -Wno-unsuffixed-float-constants
      #    GCC48: true
    resource_class: large
    steps:
      - run:
          name: Add STJr PPA
          command: |
            sudo apt-get -qq update
            sudo apt-get -qq install apt-utils
      - run:
          name: Make APT cache folder
          command: mkdir -p /home/circleci/.cache/apt/archives/partial
      - run:
          name: Make APT cache usage by _apt
          command: sudo chown -Rv _apt:root /home/circleci/.cache/apt/archives/partial
      - run:
          name: Update APT listing
          command: sudo apt-get -qq update
      - run:
          name: Support S3 upload
          command: sudo apt-get -qq -y install ca-certificates
      - restore_cache:
          keys:
            - v1-SRB2-APT
      - run:
          name: Install SDK
          command: sudo apt-get -o Dir::Cache="/home/circleci/.cache/apt" -qq -y --no-install-recommends install git build-essential libpng-dev libsdl2-mixer-dev libgme-dev libcurl4-openssl-dev libopenmpt-dev libminiupnpc-dev gettext ccache wget gcc-multilib upx openssh-client
      - run:
          name: make md5sum
          command: sudo find /home/circleci/.cache/apt/archives -type f -print0 | sort -z | sudo xargs -r0 md5sum > /home/circleci/.cache/apt_archives.md5
      - save_cache:
          key: v1-SRB2-APT-{{ checksum "/home/circleci/.cache/apt_archives.md5" }}
          paths:
            - /home/circleci/.cache/apt
      - checkout
      - run:
         name: Create deps folder as needed
         command: mkdir -p make/linux/64/SDL/deps/
      - run:
          name: make master depend file
          command: find make/linux/64/SDL/deps/ -type f -print0 | sort -z | xargs -r0 cat > make/linux/64/SDL.deps
      - restore_cache:
          keys:
            - v1-SRB2-{{ .Branch }}-{{ checksum "make/linux/64/SDL.deps" }}
      - run:
          name: Compile
          command: make -C src LINUX64=1 ERRORMODE=1 -k -j4
      - store_artifacts:
          path: /home/circleci/SRB2/bin/
          destination: bin
      - save_cache:
          key: v1-SRB2-{{ .Branch }}-{{ checksum "make/linux/64/SDL.deps" }}
          paths:
            - /home/circleci/.ccache
