name: debian9.12

on:
  push:
    branches:
    - master
  pull_request:
    branches:
    - master


jobs:
  build:
    strategy:
      fail-fast: false
    runs-on: "ubuntu-latest"
    container: "debian:9.12"
    steps:
    - name: "Update APT"
      shell: bash
      run: "apt update"
    - name: "Install Sudo"
      shell: bash
      run: "apt-get install -y sudo"
    - name: "Cache Git installation"
      uses: actions/cache@v1
      with:
         path: "/usr/local/git"
         key: "debian9.12-git-2.25.0"
    - name: "Install Git from source"
      shell: bash
      run: |
            
            apt-get install -y wget libcurl4-openssl-dev libexpat-dev gettext libssl-dev libz-dev gcc libextutils-autoinstall-perl make
            
            if test ! -x /usr/local/git/bin/git ; then
                cd /tmp
                wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.25.0.tar.gz
                tar xzf git-2.25.0.tar.gz
                cd git-2.25.0
                make prefix=/usr/local/git install
            fi
            
            ln -s /usr/local/git/bin/git /usr/local/bin/git
                    

    - name: "Install Curl"
      shell: bash
      run: "apt-get install -y curl"
    - name: "checkout repo"
      uses: actions/checkout@v2
      with:
         submodules: "recursive"
    - name: "Fetch tags"
      shell: bash
      run: "git fetch --depth=1 origin +refs/tags/*:refs/tags/*"
    - name: "Fetch tag/branch history"
      shell: bash
      run: "git fetch --prune --unshallow"
    - name: "Install Rust"
      uses: actions-rs/toolchain@v1
      with:
         profile: "minimal"
         toolchain: "stable"
         override: true
         components: "rustfmt"
    - name: "Cache cargo registry"
      uses: actions/cache@v1
      with:
         path: "~/.cargo/registry"
         key: "debian9.12-None-${{ hashFiles('Cargo.lock') }}-cargo-registry"
    - name: "Cache cargo index"
      uses: actions/cache@v1
      with:
         path: "~/.cargo/git"
         key: "debian9.12-None-${{ hashFiles('Cargo.lock') }}-cargo-index"
    - name: "Cache cargo build"
      uses: actions/cache@v1
      with:
         path: "target"
         key: "debian9.12-None-${{ hashFiles('Cargo.lock') }}-cargo-build-target"
    - name: "Install System Deps"
      shell: bash
      run: "sudo -n ./get-deps"
    - name: "Check formatting"
      shell: bash
      run: "cargo fmt --all -- --check"
    - name: "Build (Release mode)"
      shell: bash
      run: "cargo build --all --release"
    - name: "Test (Release mode)"
      shell: bash
      run: "cargo test --all --release"
    - name: "Package"
      shell: bash
      run: "bash ci/deploy.sh"
    - name: "Move Package for artifact upload"
      shell: bash
      run: |
            mkdir pkg_
            mv *.deb *.xz pkg_
            

    - name: "Upload artifact"
      uses: actions/upload-artifact@master
      with:
         name: "debian9.12"
         path: "pkg_"