[pull] master from slackhq:master #359
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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-libvirt: | |
| if: github.ref == 'refs/heads/master' || contains(github.event.pull_request.labels.*.name, 'smoke-test-extra') | |
| name: ${{ matrix.target }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| target: | |
| - freebsd-amd64 | |
| - openbsd-amd64 | |
| - netbsd-amd64 | |
| - linux-amd64-ipv6disable | |
| env: | |
| VAGRANT_DEFAULT_PROVIDER: libvirt | |
| 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 and libvirt | |
| run: | | |
| sudo apt-get update && sudo apt-get install -y vagrant libvirt-daemon-system libvirt-dev | |
| sudo chmod 666 /dev/kvm | |
| sudo usermod -aG libvirt $(whoami) | |
| sudo chmod 666 /var/run/libvirt/libvirt-sock | |
| vagrant plugin install vagrant-libvirt | |
| - name: ${{ matrix.target }} | |
| run: make smoke-vagrant/${{ matrix.target }} | |
| timeout-minutes: 30 | |
| # linux-386 needs VirtualBox, which conflicts with KVM/libvirt -- isolated job. | |
| smoke-extra-virtualbox: | |
| if: github.ref == 'refs/heads/master' || contains(github.event.pull_request.labels.*.name, 'smoke-test-extra') | |
| name: linux-386 | |
| runs-on: ubuntu-latest | |
| env: | |
| VAGRANT_DEFAULT_PROVIDER: virtualbox | |
| 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 and virtualbox | |
| run: | | |
| sudo apt-get update && sudo apt-get install -y vagrant virtualbox | |
| sudo rmmod kvm_amd kvm_intel kvm 2>/dev/null || true | |
| - name: linux-386 | |
| run: make smoke-vagrant/linux-386 | |
| timeout-minutes: 30 | |
| smoke-windows: | |
| if: github.ref == 'refs/heads/master' || contains(github.event.pull_request.labels.*.name, 'smoke-test-extra') | |
| name: Run windows smoke test | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-go@v6 | |
| with: | |
| go-version: '1.25' | |
| check-latest: true | |
| # WSL2 + Ubuntu so the smoke can run a real linux peer with its own | |
| # netns. iputils-ping is needed for the in-WSL ping check. WSL1 has no | |
| # real kernel and would lack /dev/net/tun, so we have to force WSL2. | |
| - uses: Vampire/setup-wsl@v3 | |
| with: | |
| distribution: Ubuntu-24.04 | |
| additional-packages: iputils-ping iproute2 | |
| # Vampire/setup-wsl provisions WSL1 even when the WSL2 platform is present. | |
| # Convert the distro to WSL2 explicitly before we try to use /dev/net/tun. | |
| - name: convert distro to WSL2 | |
| shell: pwsh | |
| run: | | |
| wsl --set-version Ubuntu-24.04 2 | |
| wsl --shutdown | |
| wsl --list --verbose | |
| - name: build windows nebula | |
| run: make bin-windows | |
| - name: build linux nebula for WSL | |
| shell: bash | |
| env: | |
| GOOS: linux | |
| GOARCH: amd64 | |
| run: | | |
| mkdir -p build/linux-amd64 | |
| go build -o build/linux-amd64/nebula ./cmd/nebula | |
| - name: run smoke-windows | |
| shell: pwsh | |
| working-directory: ./.github/workflows/smoke | |
| run: ./smoke-windows.ps1 | |
| timeout-minutes: 15 |