name: smoke-extra
on:
  push:
    branches:
      - master
  pull_request:
    types: [opened, synchronize, labeled, reopened]
    paths:
      - '.github/workflows/smoke**'
      - '**Makefile'
      - '**.go'
      - '**.proto'
      - 'go.mod'
      - 'go.sum'
jobs:

  smoke-extra:
    if: github.ref == 'refs/heads/master' || contains(github.event.pull_request.labels.*.name, 'smoke-test-extra')
    name: Run extra smoke tests
    runs-on: ubuntu-latest
    steps:

    - uses: actions/checkout@v6

    - uses: actions/setup-go@v6
      with:
        go-version: '1.25'
        check-latest: true

    - name: add hashicorp source
      run: wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg && echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list

    - name: install vagrant
      run: sudo apt-get update && sudo apt-get install -y vagrant virtualbox

    - name: freebsd-amd64
      run: make smoke-vagrant/freebsd-amd64

    - name: openbsd-amd64
      run: make smoke-vagrant/openbsd-amd64

    - name: netbsd-amd64
      run: make smoke-vagrant/netbsd-amd64

    - name: linux-386
      run: make smoke-vagrant/linux-386

    - name: linux-amd64-ipv6disable
      run: make smoke-vagrant/linux-amd64-ipv6disable

    timeout-minutes: 30
