name: Build on FreeBSD

on:
  push:
    branches:
    - '*'
    paths:
    - .github/workflows/build-freebsd.yml
    - build/CMakeLists.txt
    - build/cmake_modules/**
    - daemon/**
    - i18n/**
    - libi2pd/**
    - libi2pd_client/**
    - Makefile
    - Makefile.bsd
    tags:
    - '*'
  pull_request:
    branches:
    - '*'

jobs:
  build:
    runs-on: ubuntu-latest
    name: with UPnP

    steps:
    - name: Checkout
      uses: actions/checkout@v4

    - name: Test in FreeBSD
      id: test
      uses: vmactions/freebsd-vm@v1
      with:
        usesh: true
        mem: 2048
        sync: rsync
        copyback: true
        prepare: pkg install -y devel/cmake devel/gmake devel/boost-libs security/openssl net/miniupnpc
        run: |
          cd build
          cmake -DWITH_UPNP=ON -DCMAKE_BUILD_TYPE=Release .
          gmake -j2

    - name: Upload artifacts
      uses: actions/upload-artifact@v4
      with:
        name: i2pd-freebsd
        path: build/i2pd