name: Build

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 2

      - name: Get changed files
        id: changed-files
        uses: tj-actions/changed-files@v34
        with:
          files: |
            *.nix
            go.*
            **/*.go
            integration_test/
            config-example.yaml

      - uses: cachix/install-nix-action@v16
        if: steps.changed-files.outputs.any_changed == 'true'

      - name: Run build
        if: steps.changed-files.outputs.any_changed == 'true'
        run: nix build

      - uses: actions/upload-artifact@v2
        if: steps.changed-files.outputs.any_changed == 'true'
        with:
          name: headscale-linux
          path: result/bin/headscale