name: Rust

on:
  push:
    branches: [ master ]

jobs:
  build:

    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Sync submodules
      run: git submodule sync --recursive && git submodule update --init --recursive
    - name: Download DEVKITPRO
      run: wget https://github.com/devkitPro/pacman/releases/download/devkitpro-pacman-1.0.1/devkitpro-pacman.deb
    - name: Install DEVKITPRO
      run: sudo dpkg -i devkitpro-pacman.deb
    - name: Install dkp-pacman
      run: printf "\nY" | sudo dkp-pacman -S switch-dev
    - name: Make Tesla overlay
      working-directory: TrainingModpackOverlay
      run: DEVKITPRO=/opt/devkitpro make
    - name: Install cargo-skyline
      run: cargo install --git https://github.com/jam1garner/cargo-skyline
    - name: Install rust-std-skyline-squashed
      run: cd .. && git clone https://github.com/jam1garner/rust-std-skyline-squashed && cd -
    - name: Attempt to build
      run: PATH=$PATH:/usr/share/rust/.rustup/toolchains/nightly-2020-04-10-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin cargo skyline build --release
    - name: Prepare zip
      run: | 
        mkdir -p atmosphere/contents/01006A800016E000/romfs/skyline/plugins/ 
        cp ./target/aarch64-skyline-switch/release/libtraining_modpack.nro atmosphere/contents/01006A800016E000/romfs/skyline/plugins/libtraining_modpack.nro
        mkdir -p switch/.overlays/
        cp TrainingModpackOverlay/ovlTrainingModpack.ovl switch/.overlays/ovlTrainingModpack.ovl
        zip -r training_modpack_beta.zip atmosphere switch 
    - name: Upload Release
      uses: majkrzak/create-release@latest
      with:
        token: ${{ secrets.GITHUB_TOKEN }}
        name: beta
        code: beta
        body: >
          Beta built off of the latest code in the repository. 
          
          Use the files on the ZIP to replace your existing files from a full Release zip.
          
          - `atmosphere/contents/01006A800016E000/romfs/skyline/plugins/libtraining_modpack.nro` is the mod for the game itself

          - `switch/.overlays/ovlTrainingModpack.ovl` is the Tesla submenu
        prerelease: true
        recreate: true
        assets: training_modpack_beta.zip:training_modpack_beta.zip:application/zip