name: Continuous Integration

on: [push]

jobs:
  Nix:
    name: Nix
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2.4.0
    - uses: cachix/install-nix-action@v15
      with:
        nix_path: nixpkgs=channel:nixos-unstable
    - run: nix build

  macOS:
    name: macOS
    runs-on: macOS-latest
    strategy:
      matrix:
        action:
          - check
          - build
          - test
          - cargo-publish
    steps:
    - uses: actions/checkout@v2
    - name: Action
      run: make ${{ matrix.action }}
    - name: Check Carge.lock
      run: git diff --exit-code

  Ubuntu:
    name: Ubuntu
    runs-on: ubuntu-latest
    strategy:
      matrix:
        action:
          - check
          - build
          - test
          - cargo-publish
          - check-version
    steps:
    - uses: actions/checkout@v2
    - name: Action
      run: make ${{ matrix.action }} && git diff --exit-code

  Windows:
    runs-on: windows-2019
    strategy:
      matrix:
        action:
          - check
          - build
          - test
          - cargo-publish
    steps:
    - uses: actions/checkout@v2
    - name: Action
      run: make ${{ matrix.action }}

  WindowsInstaller:
    runs-on: windows-latest
    env:
      RUSTFLAGS: '-C target-feature=+crt-static'
    name: WindowsInstaller
    steps:
    - uses: actions/checkout@v2
    - uses: actions-rs/toolchain@v1
      with:
        toolchain: stable
    - uses: actions-rs/install@v0.1
      with:
        crate: cargo-wix
        version: latest
    - run: cargo wix init
    - run: cargo wix -v --nocapture -o .