Some checks failed
NATS Server Tests / Lint (push) Failing after 3s
NATS Server Tests / Build (Latest Go) (push) Has been skipped
NATS Server Tests / Build (Minimum Go) (push) Has been skipped
NATS Server Tests / Build (Minimum Go, windows-2022) (push) Has been skipped
NATS Server Tests / Build (Minimum Go, windows-2025) (push) Has been skipped
NATS Server Tests / Test Stores (push) Has been skipped
NATS Server Tests / Test JetStream (push) Has been skipped
NATS Server Tests / Test Raft (push) Has been skipped
NATS Server Tests / Test JetStream Consumers (push) Has been skipped
NATS Server Tests / Test JetStream Cluster 1 (push) Has been skipped
NATS Server Tests / Test JetStream Cluster 2 (push) Has been skipped
NATS Server Tests / Test JetStream Cluster 3 (push) Has been skipped
NATS Server Tests / Test JetStream Cluster 4 (push) Has been skipped
NATS Server Tests / Test JetStream Supercluster (push) Has been skipped
NATS Server Tests / Test No-Race 1 (push) Has been skipped
NATS Server Tests / Test No-Race 2 (push) Has been skipped
NATS Server Tests / Test MQTT (push) Has been skipped
NATS Server Tests / Test Message Tracing (push) Has been skipped
NATS Server Tests / Test JWT (push) Has been skipped
NATS Server Tests / Test Remaining Server Tests (push) Has been skipped
NATS Server Tests / Test Other Packages (push) Has been skipped
Vulnerability Scan / govulncheck (push) Failing after 12m2s
373 lines
9.4 KiB
YAML
373 lines
9.4 KiB
YAML
name: NATS Server Tests
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
env:
|
|
RACE: ${{ (github.ref != 'refs/heads/main' && !startsWith(github.ref, 'refs/heads/release/') && github.event_name != 'pull_request') && '-race' || '' }}
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: ${{ github.ref != 'refs/heads/main' && !startsWith(github.ref, 'refs/heads/release/') }}
|
|
|
|
jobs:
|
|
lint:
|
|
name: Lint
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Install Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version-file: "go.mod"
|
|
|
|
- name: Run golangci-lint
|
|
# Use commit hash here to avoid a re-tagging attack, as this is a third-party action
|
|
# Commit 82606bf257cbaff209d206a39f5134f0cfbfd2ee = tag v9.2.1
|
|
uses: golangci/golangci-lint-action@82606bf257cbaff209d206a39f5134f0cfbfd2ee
|
|
with:
|
|
version: v2.13.0
|
|
skip-cache: true
|
|
skip-save-cache: true
|
|
args: --timeout=5m --config=.golangci.yml
|
|
|
|
build-latest:
|
|
name: Build (Latest Go)
|
|
needs: [lint]
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Install Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: stable
|
|
|
|
- name: Build NATS Server 64-bit
|
|
run: GOARCH=amd64 GOOS=linux go build
|
|
|
|
- name: Build NATS Server 32-bit
|
|
run: GOARCH=386 GOOS=linux go build
|
|
|
|
build-supported:
|
|
name: Build (Minimum Go)
|
|
needs: [lint]
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Install Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version-file: "go.mod"
|
|
|
|
- name: Build NATS Server 64-bit
|
|
run: GOARCH=amd64 GOOS=linux go build
|
|
|
|
- name: Build NATS Server 32-bit
|
|
run: GOARCH=386 GOOS=linux go build
|
|
|
|
# Using GitHub-supplied workers for Windows for now.
|
|
# Note that the below testing steps depend on the Linux build
|
|
# only, as the Windows builds take a fair bit longer to set up.
|
|
build-windows:
|
|
name: Build (Minimum Go, ${{ matrix.os }})
|
|
needs: [lint]
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [windows-2022, windows-2025]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Install Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version-file: "go.mod"
|
|
|
|
- name: Build NATS Server
|
|
run: go build
|
|
|
|
store:
|
|
name: Test Stores
|
|
needs: [build-latest, build-supported, lint]
|
|
runs-on: ${{ vars.GHA_WORKER_MEDIUM || 'ubuntu-latest' }}
|
|
timeout-minutes: 30
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Install Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: stable
|
|
|
|
- name: Run unit tests
|
|
run: ./scripts/runTestsOnTravis.sh store_tests
|
|
|
|
js-no-cluster:
|
|
name: Test JetStream
|
|
needs: [build-latest, build-supported, lint]
|
|
runs-on: ${{ vars.GHA_WORKER_LARGE || 'ubuntu-latest' }}
|
|
timeout-minutes: 30
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Install Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: stable
|
|
|
|
- name: Run unit tests
|
|
run: ./scripts/runTestsOnTravis.sh js_tests
|
|
|
|
raft:
|
|
name: Test Raft
|
|
needs: [build-latest, build-supported, lint]
|
|
runs-on: ${{ vars.GHA_WORKER_LARGE || 'ubuntu-latest' }}
|
|
timeout-minutes: 30
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Install Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: stable
|
|
|
|
- name: Run unit tests
|
|
run: ./scripts/runTestsOnTravis.sh raft_tests
|
|
|
|
js-consumers:
|
|
name: Test JetStream Consumers
|
|
needs: [build-latest, build-supported, lint]
|
|
runs-on: ${{ vars.GHA_WORKER_LARGE || 'ubuntu-latest' }}
|
|
timeout-minutes: 30
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Install Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: stable
|
|
|
|
- name: Run unit tests
|
|
run: ./scripts/runTestsOnTravis.sh js_consumer_tests
|
|
|
|
js-cluster-1:
|
|
name: Test JetStream Cluster 1
|
|
needs: [build-latest, build-supported, lint]
|
|
runs-on: ${{ vars.GHA_WORKER_LARGE || 'ubuntu-latest' }}
|
|
timeout-minutes: 30
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Install Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: stable
|
|
|
|
- name: Run unit tests
|
|
run: ./scripts/runTestsOnTravis.sh js_cluster_tests_1
|
|
|
|
js-cluster-2:
|
|
name: Test JetStream Cluster 2
|
|
needs: [build-latest, build-supported, lint]
|
|
runs-on: ${{ vars.GHA_WORKER_LARGE || 'ubuntu-latest' }}
|
|
timeout-minutes: 30
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Install Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: stable
|
|
|
|
- name: Run unit tests
|
|
run: ./scripts/runTestsOnTravis.sh js_cluster_tests_2
|
|
|
|
js-cluster-3:
|
|
name: Test JetStream Cluster 3
|
|
needs: [build-latest, build-supported, lint]
|
|
runs-on: ${{ vars.GHA_WORKER_LARGE || 'ubuntu-latest' }}
|
|
timeout-minutes: 30
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Install Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: stable
|
|
|
|
- name: Run unit tests
|
|
run: ./scripts/runTestsOnTravis.sh js_cluster_tests_3
|
|
|
|
js-cluster-4:
|
|
name: Test JetStream Cluster 4
|
|
needs: [build-latest, build-supported, lint]
|
|
runs-on: ${{ vars.GHA_WORKER_LARGE || 'ubuntu-latest' }}
|
|
timeout-minutes: 30
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Install Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: stable
|
|
|
|
- name: Run unit tests
|
|
run: ./scripts/runTestsOnTravis.sh js_cluster_tests_4
|
|
|
|
js-supercluster:
|
|
name: Test JetStream Supercluster
|
|
needs: [build-latest, build-supported, lint]
|
|
runs-on: ${{ vars.GHA_WORKER_LARGE || 'ubuntu-latest' }}
|
|
timeout-minutes: 30
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Install Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: stable
|
|
|
|
- name: Run unit tests
|
|
run: ./scripts/runTestsOnTravis.sh js_super_cluster_tests
|
|
|
|
no-race-1:
|
|
name: Test No-Race 1
|
|
needs: [build-latest, build-supported, lint]
|
|
runs-on: ${{ vars.GHA_WORKER_LARGE || 'ubuntu-latest' }}
|
|
timeout-minutes: 30
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Install Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: stable
|
|
|
|
- name: Run unit tests
|
|
run: ./scripts/runTestsOnTravis.sh no_race_1_tests
|
|
|
|
no-race-2:
|
|
name: Test No-Race 2
|
|
needs: [build-latest, build-supported, lint]
|
|
runs-on: ${{ vars.GHA_WORKER_LARGE || 'ubuntu-latest' }}
|
|
timeout-minutes: 30
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Install Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: stable
|
|
|
|
- name: Run unit tests
|
|
run: ./scripts/runTestsOnTravis.sh no_race_2_tests
|
|
|
|
mqtt:
|
|
name: Test MQTT
|
|
needs: [build-latest, build-supported, lint]
|
|
runs-on: ${{ vars.GHA_WORKER_MEDIUM || 'ubuntu-latest' }}
|
|
timeout-minutes: 30
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Install Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: stable
|
|
|
|
- name: Run unit tests
|
|
run: ./scripts/runTestsOnTravis.sh mqtt_tests
|
|
|
|
msgtrace:
|
|
name: Test Message Tracing
|
|
needs: [build-latest, build-supported, lint]
|
|
runs-on: ${{ vars.GHA_WORKER_MEDIUM || 'ubuntu-latest' }}
|
|
timeout-minutes: 30
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Install Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: stable
|
|
|
|
- name: Run unit tests
|
|
run: ./scripts/runTestsOnTravis.sh msgtrace_tests
|
|
|
|
jwt:
|
|
name: Test JWT
|
|
needs: [build-latest, build-supported, lint]
|
|
runs-on: ${{ vars.GHA_WORKER_LARGE || 'ubuntu-latest' }}
|
|
timeout-minutes: 30
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Install Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: stable
|
|
|
|
- name: Run unit tests
|
|
run: ./scripts/runTestsOnTravis.sh jwt_tests
|
|
|
|
server-pkg-non-js:
|
|
name: Test Remaining Server Tests
|
|
needs: [build-latest, build-supported, lint]
|
|
runs-on: ${{ vars.GHA_WORKER_LARGE || 'ubuntu-latest' }}
|
|
timeout-minutes: 30
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Install Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: stable
|
|
|
|
- name: Run unit tests
|
|
run: ./scripts/runTestsOnTravis.sh srv_pkg_non_js_tests
|
|
|
|
non-server-pkg:
|
|
name: Test Other Packages
|
|
needs: [build-latest, build-supported, lint]
|
|
runs-on: ${{ vars.GHA_WORKER_MEDIUM || 'ubuntu-latest' }}
|
|
timeout-minutes: 30
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Install Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: stable
|
|
|
|
- name: Run unit tests
|
|
run: ./scripts/runTestsOnTravis.sh non_srv_pkg_tests
|