name: Nutshell integration

on: [push, pull_request]

jobs:
  nutshell-integration-tests:
    name: Nutshell Mint Integration Tests
    runs-on: ubuntu-latest
    timeout-minutes: 30
    steps:
      - name: checkout
        uses: actions/checkout@v4
      - name: Free Disk Space (Ubuntu)
        uses: jlumbroso/free-disk-space@main
        with:
          tool-cache: false
          android: true
          dotnet: true
          haskell: true
          large-packages: true
          docker-images: true
          swap-storage: true
      - name: Install Nix
        uses: DeterminateSystems/nix-installer-action@v17
      - name: Nix Cache
        uses: DeterminateSystems/magic-nix-cache-action@main
      - name: Rust Cache
        uses: Swatinem/rust-cache@v2
      - name: Test Nutshell
        run: nix develop -i -L .#integration --command just test-nutshell
      - name: Show logs if tests fail
        if: failure()
        run: docker logs nutshell

  nutshell-wallet-integration-tests:
    name: Nutshell Wallet Integration Tests
    runs-on: ubuntu-latest
    timeout-minutes: 30
    steps:
      - name: checkout
        uses: actions/checkout@v4
      - name: Free Disk Space (Ubuntu)
        uses: jlumbroso/free-disk-space@main
        with:
          tool-cache: false
          android: true
          dotnet: true
          haskell: true
          large-packages: true
          docker-images: true
          swap-storage: true
      - name: Pull Nutshell Docker image
        run: docker pull cashubtc/nutshell:latest
      - name: Install Nix
        uses: DeterminateSystems/nix-installer-action@v17
      - name: Nix Cache
        uses: DeterminateSystems/magic-nix-cache-action@main
      - name: Rust Cache
        uses: Swatinem/rust-cache@v2
      - name: Test Nutshell Wallet
        run: |
          nix develop -i -L .#integration --command just nutshell-wallet-itest
      - name: Show Docker logs if tests fail
        if: failure()
        run: docker logs nutshell-wallet || true
