---
name: test nix/develop

on:
  push:
    paths:
      - '.forgejo/workflows/nix-develop.yaml'
      - 'develop/**'

jobs:
  nix/develop:
    runs-on: nixos-latest
    steps:
      - name: checkout
        uses: actions/checkout@v3

      - name: run a command within a dev environment
        uses: ./develop
        with:
          flake: ./develop/test
          package: "hello"
          run: |
            hello

      - name: run multiple commands within a dev environment
        uses: ./develop
        with:
          flake: ./develop/test
          package: "hello"
          run: |
            gcc --version
            hello
            if [ -n "${CI}" ]; then
                echo "I'm running in CI!"
            fi

      - name: no commands should still work
        uses: ./develop
        with:
          flake: ./develop/test
          package: "hello"

      - name: errors within the script should propagate
        id: error-check
        continue-on-error: true
        uses: ./develop
        with:
          flake: ./develop/test
          package: "hello"
          run: |
            set -x
            this-command-does-not-exist | cat
            this-command-does-not-exist

      - name: make sure the previous step failed
        run: |
          [ "${{ steps.error-check.outcome }}" = "failure" ]