Skip to content

IPX, Netbeui Protocol + NetBIOS + SMB Support #12

IPX, Netbeui Protocol + NetBIOS + SMB Support

IPX, Netbeui Protocol + NetBIOS + SMB Support #12

Workflow file for this run

name: PR CI
on:
pull_request:
branches:
- main
- master
permissions:
contents: read
jobs:
test:
name: Test (ubuntu)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
- name: Install libpcap headers (Linux)
run: |
sudo apt-get update
sudo apt-get install -y libpcap-dev
- name: Run unit tests
shell: bash
run: bash scripts/ci/test.sh
quality:
name: Quality (vet + race + lint + vuln)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
- name: Install libpcap headers
run: |
sudo apt-get update
sudo apt-get install -y libpcap-dev
- name: go vet
run: go vet ./...
- name: Race-enabled tests
run: go test -tags all -race -count=1 ./...
- name: golangci-lint
uses: golangci/golangci-lint-action@v8
with:
version: latest
args: --build-tags=all
- name: govulncheck
run: |
go install golang.org/x/vuln/cmd/govulncheck@latest
govulncheck -tags all ./...
- name: gosec (untrusted-input paths)
run: |
go install github.com/securego/gosec/v2/cmd/gosec@latest
gosec -tags all ./service/macip/... ./service/macgarden/... ./service/afpfs/macgarden/...
build-tags:
name: Build-tag matrix
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
tags:
- ""
- "afp"
- "afp macgarden"
- "afp macip"
- "afp macgarden macip"
- "afp sqlite_cnid"
- "all"
- "ipx netbeui smb"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
- name: Install libpcap headers
run: |
sudo apt-get update
sudo apt-get install -y libpcap-dev
- name: Build with tags="${{ matrix.tags }}"
run: go build -tags "${{ matrix.tags }}" ./...
build:
name: Build (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
script: bash scripts/ci/build.sh
output: out/classicstack
- os: macos-latest
script: bash scripts/ci/build.sh
output: out/classicstack
- os: windows-latest
script: ./scripts/ci/build.ps1
output: out/classicstack.exe
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
- name: Install libpcap headers (Linux)
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y libpcap-dev
- name: Build classicstack (Linux/macOS)
if: runner.os != 'Windows'
shell: bash
env:
BUILD_VERSION: 0.0.0-pr.${{ github.run_number }}
BUILD_COMMIT: ${{ github.sha }}
OUTPUT: ${{ matrix.output }}
run: ${{ matrix.script }}
- name: Build classicstack (Windows)
if: runner.os == 'Windows'
shell: pwsh
env:
BUILD_VERSION: 0.0.0-pr.${{ github.run_number }}
BUILD_COMMIT: ${{ github.sha }}
OUTPUT: ${{ matrix.output }}
run: ${{ matrix.script }}