name: Nix

on:
  push:
    branches:
      - main
  pull_request:
    types: [ labeled ]

# Setting the shell option, it will run 'bash --noprofile --norc -eo pipefail {0}'
defaults:
  run:
    shell: bash

jobs:

  build-docker:
    name: Build Docker image
    if: ${{ github.ref == 'refs/heads/main' }} || ${{ github.event.label.name == 'nix' }}
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: cachix/install-nix-action@v20
      - uses: cachix/cachix-action@v12
        with:
          name: surrealdb
          authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
          extraPullNames: nix-community
      - run: nix build .#docker-image
      - run: docker load --input ./result

  build-native-linux:
    name: Build native Linux binary
    if: ${{ github.ref == 'refs/heads/main' }} || ${{ github.event.label.name == 'nix' }}
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: cachix/install-nix-action@v20
      - uses: cachix/cachix-action@v12
        with:
          name: surrealdb
          authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
          extraPullNames: nix-community
      - run: nix build .#x86_64-unknown-linux-gnu
      - run: ./result/bin/surreal help