language: rust
sudo: false

cache:
  - cargo

rust:
  - nightly

before_script:
  - rustup component add rust-src
  - (test -x $HOME/.cargo/bin/cargo-install-update || cargo install cargo-update)
  - (test -x $HOME/.cargo/bin/cargo-xbuild || cargo install cargo-xbuild)
  - (test -x $HOME/.cargo/bin/cargo-make || cargo install cargo-make)
  - (test -x $HOME/.cargo/bin/mdbook || cargo install mdbook)
  - cargo install-update -a

script:
  # Obtain the devkitPro tools, using `target/` as a temp directory
  - mkdir -p target
  - cd target
  - wget https://github.com/devkitPro/pacman/releases/download/devkitpro-pacman-1.0.1/devkitpro-pacman.deb
  - sudo dpkg -i devkitpro-pacman.deb
  - sudo dkp-pacman -Sy
  - sudo dkp-pacman -Syu
  - sudo dkp-pacman -S -v --noconfirm gba-tools devkitARM
  - export PATH="$PATH:/opt/devkitpro/devkitARM/bin"
  - export PATH="$PATH:/opt/devkitpro/tools/bin"
  - cd ..
  # Test the lib and then compile all examples with `cargo make`
  - cargo test --lib && cargo test --lib --release
  - cargo make
  # Test build the book so that a failed book build kills this run
  - cd book && mdbook build

deploy:
  provider: pages
  skip-cleanup: true
  github-token: $GITHUB_TOKEN
  target-branch: master
  keep-history: true
  name: DocsBot
  verbose: true
  on:
    branch: master