1
0
mirror of https://github.com/nmap/nmap.git synced 2026-01-30 10:09:03 +00:00
Files
nmap/.github/workflows/build.yml

207 lines
5.9 KiB
YAML

name: nmap multiplatform autobuilds
on:
push:
paths:
- ".github/workflows/build.yml"
- "**/*.c"
- "**/*.cc"
- "**/*.cpp"
- "**/*.h"
- "**/*.H"
- "**/*.in"
- "**/*.am"
- "**/*.ac"
- "**/*.lua"
- "**/*.cmakein"
- "**/configure"
- "**/*.pl"
- "**/*.py"
- "**/*.awk"
- "**/*.sh"
- "**/*.toml"
branches:
- master
pull_request:
workflow_dispatch:
inputs:
deploymentName:
description: "Name for this deployment"
required: true
default: "Manual Deployment"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
MAKEFLAGS: -j3
jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- name: ubuntu-latest-gcc
os: ubuntu-latest
cc: gcc
- name: ubuntu-latest-gcc-arm64
os: ubuntu-latest
cc: gcc
arch: arm64
- name: ubuntu-latest-clang
os: ubuntu-latest
cc: clang
- name: macos-15-clang
os: macos-15
cc: clang
- name: macos-26-clang
os: macos-26
cc: clang
- name: freebsd-15-gcc
os: ubuntu-latest
cc: gcc
- name: freebsd-15-clang
os: ubuntu-latest
cc: clang
- name: openbsd-7-gcc
os: ubuntu-latest
cc: egcc
- name: openbsd-7-clang
os: ubuntu-latest
cc: clang
- name: netbsd-10-gcc
os: ubuntu-latest
cc: gcc
- name: netbsd-10-clang
os: ubuntu-latest
cc: clang
- name: solaris-11-gcc
os: ubuntu-latest
cc: gcc
- name: solaris-11-clang
os: ubuntu-latest
cc: clang
- name: windows-latest-msvc
os: windows-latest
cc: msvc
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Set up QEMU for ARM64
if: matrix.arch == 'arm64'
uses: docker/setup-qemu-action@v3
with:
platforms: linux/arm64
- name: Build Linux
if: startsWith(matrix.name,'ubuntu') && matrix.arch != 'arm64'
run: |
sudo apt-get update
sudo apt-get install -y build-essential clang tree libpcap-dev libnet-dev libpcre2-dev
./configure
make
make install DESTDIR=/tmp
tree /tmp/usr
- name: Build Linux ARM64
if: startsWith(matrix.name,'ubuntu') && matrix.arch == 'arm64'
run: |
docker run --rm --platform linux/arm64 -v $PWD:/work -w /work ubuntu:latest bash -c "
apt-get update -q -y &&
apt-get install -q -y build-essential tree libpcap-dev libnet-dev libpcre2-dev autoconf automake &&
./configure
make &&
make install DESTDIR=/tmp &&
tree /tmp/usr
"
- name: Build MacOS
if: startsWith(matrix.name,'macos')
run: |
brew update
# PCRE2 is already installed
brew install tree libpcap libnet
./configure
make
make install DESTDIR=/tmp
tree /tmp/usr
- name: Build FreeBSD
if: startsWith(matrix.name,'freebsd')
uses: vmactions/freebsd-vm@v1
with:
release: "15.0"
usesh: true
prepare: |
# OS has libpcap already installed (and adding puts a second in /usr/local)
pkg install -y gcc llvm autotools tree pkgconf libnet pcre2 gmake dbus
run: |
./configure
gmake
gmake install DESTDIR=/tmp
tree /tmp/usr
- name: Build OpenBSD
if: startsWith(matrix.name,'openbsd')
uses: vmactions/openbsd-vm@v1
with:
usesh: true
prepare: |
export PKG_PATH=https://cdn.openbsd.org/pub/OpenBSD/$(uname -r)/packages/$(uname -m)/
pkg_add -I autoconf%2.72 automake%1.17 gcc%11 llvm%19 tree pkgconf libnet%1.1 pcre2 gmake dbus
run: |
export AUTOCONF_VERSION=2.72
export AUTOMAKE_VERSION=1.17
./configure
gmake
gmake install DESTDIR=/tmp
tree /tmp/usr
- name: Build NetBSD
if: startsWith(matrix.name,'netbsd')
uses: vmactions/netbsd-vm@v1
with:
usesh: true
prepare: |
export PATH=/usr/sbin:/usr/pkg/sbin:/usr/pkg/bin:$PATH
export PKG_PATH="http://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/$(uname -p)/$(uname -r | cut -d_ -f1)/All"
pkg_add gcc13 clang autoconf automake pkgconf libpcap libnet gmake dbus
run: |
./configure
gmake
gmake install DESTDIR=/tmp
tree /tmp/usr
- name: Build Solaris
if: startsWith(matrix.name,'solaris')
uses: vmactions/solaris-vm@v1
with:
usesh: true
prepare: |
pkg install gcc-c clang autoconf automake pcre2 libpcap libnet developer/build/gnu-make
run: |
./configure
gmake
gmake install DESTDIR=/tmp
tree /tmp/usr
- name: Install Subversion
if: startsWith(matrix.name,'windows')
shell: powershell
run: |
choco install svn -y --no-progress
$env:PATH = "C:\Program Files (x86)\Subversion\bin;C:\Program Files\Subversion\bin;$env:PATH"
echo "C:\Program Files (x86)\Subversion\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
echo "C:\Program Files\Subversion\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Build Windows
if: startsWith(matrix.name,'windows')
shell: cmd
run: |
cd mswin32
Build.bat