Skip to content

Update GitHub Actions to use nsx-actions - #7

Open
gtkatakura wants to merge 1 commit into
mainfrom
update-gh-actions-to-nsx-actions
Open

gtkatakura wants to merge 1 commit into
mainfrom
update-gh-actions-to-nsx-actions

Conversation

@gtkatakura

@gtkatakura gtkatakura commented Mar 27, 2026 •

Copy link
Copy Markdown

This PR updates all GitHub Actions to use the nsx-actions versions.

Summary by CodeRabbit

  • Chores
    • Replaced several third‑party CI action implementations with alternative providers for release, linting, and coverage upload while preserving existing inputs and behavior to maintain CI/CD consistency.

@coderabbitai

coderabbitai Bot commented Mar 27, 2026 •

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

GitHub Actions workflow files updated to use alternative action repositories. release.yml switched the GoReleaser action source; test.yml switched the Go linter and Codecov action sources. All workflow inputs and environment variables remain unchanged.

Changes

Cohort / File(s) Summary
GitHub Actions Workflow Updates
.github/workflows/release.yml, .github/workflows/test.yml
Replaced upstream action repositories with nsx-actions alternatives: goreleaser/goreleaser-action@v5 → nsx-actions/goreleaser_goreleaser-action@v5; golangci/golangci-lint-action@v7 → nsx-actions/golangci_golangci-lint-action@v7; codecov/codecov-action@v5 → nsx-actions/codecov_codecov-action@v5. Inputs (version, args, file, etc.) and env/secret mappings preserved. Review the referenced action implementations for behavioral parity and security implications (tokens, permissions).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Update GitHub Actions to use nsx-actions' directly and accurately summarizes the main change across both modified workflow files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch update-gh-actions-to-nsx-actions

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
see 6 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/release.yml:
- Line 34: Replace the mutable tag on the GitHub Action usage so it is pinned to
an immutable commit SHA: update the uses entry
"nsx-actions/goreleaser_goreleaser-action@v5" to the specific full commit SHA
for that action; also confirm the repository visibility
(nsx-actions/goreleaser_goreleaser-action) is intentionally private/internal and
that the required inputs (distribution, version, args) remain supplied and
unchanged after pinning.

In @.github/workflows/test.yml:
- Line 21: Replace the third‑party mirrored actions
"nsx-actions/golangci_golangci-lint-action@v7" and
"nsx-actions/codecov_codecov-action@v5" with the official actions
"golangci/golangci-lint-action" and "codecov/codecov-action" respectively, and
pin each to an immutable commit SHA (not a tag) by looking up the desired
release commit SHAs on the official repositories and updating the "uses:"
entries to use @<commit-sha>; ensure you update both occurrences (the golangci
entry and the codecov entry) so they reference official sources and fixed SHAs.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 22035377-e824-4819-806d-0606d80dbdc2

📥 Commits

Reviewing files that changed from the base of the PR and between 2da1771 and a27868c.

📒 Files selected for processing (2)
  • .github/workflows/release.yml
  • .github/workflows/test.yml


- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v5
uses: nsx-actions/goreleaser_goreleaser-action@v5

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo="nsx-actions/goreleaser_goreleaser-action"
ref="v5"

echo "Resolving $repo@$ref ..."
tag_json="$(gh api "repos/$repo/git/ref/tags/$ref")"
obj_type="$(jq -r '.object.type' <<<"$tag_json")"
obj_sha="$(jq -r '.object.sha' <<<"$tag_json")"

if [[ "$obj_type" == "tag" ]]; then
  commit_sha="$(gh api "repos/$repo/git/tags/$obj_sha" --jq '.object.sha')"
else
  commit_sha="$obj_sha"
fi

echo "Resolved commit SHA: $commit_sha"
echo "Fetching action.yml from resolved commit..."
curl -fsSL "https://raw.githubusercontent.com/$repo/$commit_sha/action.yml" > /tmp/action.yml

echo "Checking required inputs..."
rg -n '^\s*distribution:\s*$|^\s*version:\s*$|^\s*args:\s*$' /tmp/action.yml

Repository: NSXBet/blazesub

Length of output: 164


🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo="nsx-actions/goreleaser_goreleaser-action"
ref="v5"

echo "Attempting to fetch action.yml for v5 tag..."
# Try direct HTTPS fetch without authentication
curl -fsSL -H "Accept: application/vnd.raw" \
  "https://raw.githubusercontent.com/$repo/$ref/action.yml" \
  -o /tmp/action.yml 2>&1 || {
    echo "Failed to fetch from tag ref. Trying to resolve tag metadata..."
    exit 1
  }

if [ -f /tmp/action.yml ]; then
  echo "Successfully fetched action.yml"
  echo "=== Checking for required inputs ==="
  head -50 /tmp/action.yml
  echo ""
  echo "=== Searching for input definitions ==="
  grep -A 2 "^\s*distribution:" /tmp/action.yml || echo "distribution input not found"
  grep -A 2 "^\s*version:" /tmp/action.yml || echo "version input not found"
  grep -A 2 "^\s*args:" /tmp/action.yml || echo "args input not found"
fi

Repository: NSXBet/blazesub

Length of output: 1420


🌐 Web query:

nsx-actions/goreleaser_goreleaser-action GitHub repository

💡 Result:

No public GitHub repository exists at nsx-actions/goreleaser_goreleaser-action. Extensive searches across multiple query variations, including direct repository paths, organization names, and combinations with "goreleaser", returned no matches for this exact path. The official GoReleaser GitHub Action is hosted at https://github.com/goreleaser/goreleaser-action, a popular TypeScript-based action (85.1% TypeScript) under MIT license, created 2019-09-20, last updated 2026-03-23, with 55 releases (latest v7.0.0 on 2026-02-21). It automates GoReleaser execution in GitHub workflows for releases, supporting goreleaser/goreleaser-pro distributions, with inputs like version (~> v2 default), args, and env vars like GITHUB_TOKEN. "nsx-actions" appears unrelated; results surfaced NSX (VMware networking) repos like powernsx, nsx-powerops, but no matching org or repo. The queried repo may be private, deleted, renamed, or a misremembered path (possibly confusing "nsx" with another term or fork of goreleaser-action).

Citations:


Pin this action to an immutable commit SHA.

Line 34 uses a mutable tag (@v5), which weakens supply-chain guarantees and can change behavior without a PR. The action does expose the required inputs (distribution, version, args), but you must pin to a full commit SHA. Additionally, the nsx-actions/goreleaser_goreleaser-action repository does not appear publicly on GitHub—verify this is intentional (private repo, fork, or internal mirror) before relying on it for production releases.

Suggested change
-        uses: nsx-actions/goreleaser_goreleaser-action@v5
+        uses: nsx-actions/goreleaser_goreleaser-action@<full-commit-sha>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/release.yml at line 34, Replace the mutable tag on the
GitHub Action usage so it is pinned to an immutable commit SHA: update the uses
entry "nsx-actions/goreleaser_goreleaser-action@v5" to the specific full commit
SHA for that action; also confirm the repository visibility
(nsx-actions/goreleaser_goreleaser-action) is intentionally private/internal and
that the required inputs (distribution, version, args) remain supplied and
unchanged after pinning.

go-version: stable
- name: golangci-lint
uses: golangci/golangci-lint-action@v7
uses: nsx-actions/golangci_golangci-lint-action@v7

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

check_action () {
  local repo="$1"
  local ref="$2"
  local required_regex="$3"

  echo "=== $repo@$ref ==="
  local tag_json obj_type obj_sha commit_sha
  tag_json="$(gh api "repos/$repo/git/ref/tags/$ref")"
  obj_type="$(jq -r '.object.type' <<<"$tag_json")"
  obj_sha="$(jq -r '.object.sha' <<<"$tag_json")"

  if [[ "$obj_type" == "tag" ]]; then
    commit_sha="$(gh api "repos/$repo/git/tags/$obj_sha" --jq '.object.sha')"
  else
    commit_sha="$obj_sha"
  fi

  echo "resolved_commit_sha=$commit_sha"
  curl -fsSL "https://raw.githubusercontent.com/$repo/$commit_sha/action.yml" > /tmp/action.yml
  echo "required input keys check:"
  rg -n "$required_regex" /tmp/action.yml
  echo
}

# Expect `version` for golangci-lint action
check_action \
  "nsx-actions/golangci_golangci-lint-action" \
  "v7" \
  '^\s*version:\s*$'

# Expect `file`, `fail_ci_if_error`, `token` for codecov action
check_action \
  "nsx-actions/codecov_codecov-action" \
  "v5" \
  '^\s*file:\s*$|^\s*fail_ci_if_error:\s*$|^\s*token:\s*$'

Repository: NSXBet/blazesub

Length of output: 159


🏁 Script executed:

cd /tmp && find . -name "test.yml" 2>/dev/null | head -20

Repository: NSXBet/blazesub

Length of output: 41


🏁 Script executed:

git ls-files .github/workflows/

Repository: NSXBet/blazesub

Length of output: 180


🏁 Script executed:

cat -n .github/workflows/test.yml | sed -n '15,50p'

Repository: NSXBet/blazesub

Length of output: 1162


🌐 Web query:

nsx-actions/golangci_golangci-lint-action GitHub

💡 Result:

No GitHub repository exists at "nsx-actions/golangci_golangci-lint-action". The query appears to reference the official golangci-lint-action at https://github.com/golangci/golangci-lint-action, which is the official GitHub Action for running golangci-lint. It supports Go linter execution with features like caching, annotations, and configuration validation. Latest release: v9.2.0 (2025-12-02). "nsx-actions" may refer to VMware NSX-related projects (e.g., go-vmware-nsxt library), but no matching repository or fork was found linking NSX to this action. Some NSX-related repos use the official action in workflows.

Citations:


🏁 Script executed:

curl -s "https://api.github.com/users/nsx-actions" | jq -r '.type, .public_repos, .repos_url' 2>/dev/null || echo "User/org not found or API error"

Repository: NSXBet/blazesub

Length of output: 122


🌐 Web query:

nsx-actions GitHub organization codecov golangci

💡 Result:

No GitHub organization named "nsx-actions" exists based on extensive searches across GitHub repositories, organizations, and related NSX projects. The query terms "nsx-actions", "codecov", and "golangci" appear to reference common CI/CD tools used in Go projects: - "nsx-actions" likely refers to GitHub Actions workflows in VMware NSX-related repositories (e.g., vmware-nsx/dcinabox/actions, vmware-tanzu/nsx-operator with .golangci.yml). - "codecov" is the Codecov GitHub Action for code coverage reporting (codecov/codecov-action), often used with NX monorepos but not specific to NSX. - "golangci" refers to golangci/golangci-lint-action for Go linting, seen in NSX projects like vmware-tanzu/nsx-operator. No single GoLang project under an "nsx-actions" org combines these tools. Related NSX repos (e.g., sky-uk/gonsx, vmware-archive/pynsxv) are archived or Python-based, lacking matching CI setups. NXO France appears in LinkedIn results but has no relevant GitHub org.

Citations:


🏁 Script executed:

curl -s "https://api.github.com/orgs/nsx-actions/repos?per_page=100&type=public" 2>/dev/null | jq -r '.[] | "\(.name) - \(.description // "no description")"' | grep -E '(golangci|codecov)' || echo "No matching repos found in first 100"

Repository: NSXBet/blazesub

Length of output: 237


🏁 Script executed:

# Check if the specific repos exist
curl -s -I "https://github.com/nsx-actions/golangci_golangci-lint-action" 2>/dev/null | head -1
curl -s -I "https://github.com/nsx-actions/codecov_codecov-action" 2>/dev/null | head -1

Repository: NSXBet/blazesub

Length of output: 83


🏁 Script executed:

curl -s "https://api.github.com/repos/nsx-actions/golangci_golangci-lint-action" 2>/dev/null | jq '{name, updated_at, stargazers_count, forks_count, is_template, archived, description}'

Repository: NSXBet/blazesub

Length of output: 312


🏁 Script executed:

curl -s "https://api.github.com/repos/nsx-actions/codecov_codecov-action" 2>/dev/null | jq '{name, updated_at, stargazers_count, forks_count, is_template, archived, description}'

Repository: NSXBet/blazesub

Length of output: 311


🏁 Script executed:

# Check recent commits
curl -s "https://api.github.com/repos/nsx-actions/golangci_golangci-lint-action/commits?per_page=3" 2>/dev/null | jq '.[] | {message: .commit.message, date: .commit.author.date}'

Repository: NSXBet/blazesub

Length of output: 303


🏁 Script executed:

curl -s "https://api.github.com/repos/nsx-actions/codecov_codecov-action/commits?per_page=3" 2>/dev/null | jq '.[] | {message: .commit.message, date: .commit.author.date}'

Repository: NSXBet/blazesub

Length of output: 691


Stop using third-party action mirrors and pin to immutable commit SHAs.

Lines 21 and 41 reference nsx-actions/* repos with mutable tags. These are unmaintained third-party mirrors, not official sources. Switch to the official actions:

  • golangci/golangci-lint-action (not nsx-actions/golangci_golangci-lint-action)
  • codecov/codecov-action (not nsx-actions/codecov_codecov-action)

Then pin both to commit SHAs instead of mutable tags like @v7 and @v5.

🔧 Suggested change
-        uses: nsx-actions/golangci_golangci-lint-action@v7
+        uses: golangci/golangci-lint-action@<full-commit-sha>
...
-        uses: nsx-actions/codecov_codecov-action@v5
+        uses: codecov/codecov-action@<full-commit-sha>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/test.yml at line 21, Replace the third‑party mirrored
actions "nsx-actions/golangci_golangci-lint-action@v7" and
"nsx-actions/codecov_codecov-action@v5" with the official actions
"golangci/golangci-lint-action" and "codecov/codecov-action" respectively, and
pin each to an immutable commit SHA (not a tag) by looking up the desired
release commit SHAs on the official repositories and updating the "uses:"
entries to use @<commit-sha>; ensure you update both occurrences (the golangci
entry and the codecov entry) so they reference official sources and fixed SHAs.

@gtkatakura
gtkatakura force-pushed the update-gh-actions-to-nsx-actions branch from a27868c to 89937eb Compare March 27, 2026 18:08
@github-actions

Copy link
Copy Markdown

📊 Performance Profile Analysis

Detailed performance profiles have been generated and are available as artifacts from this workflow run.

To analyze these profiles:

  1. Download the performance profiles artifact
  2. Use go tool pprof to analyze the profiles:
go tool pprof profiles/cpu.prof
go tool pprof profiles/mem.prof

You can visualize the profiles using:

go tool pprof -http=:8080 profiles/cpu.prof

This will help identify any performance bottlenecks introduced by your changes.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (2)
.github/workflows/test.yml (2)

41-41: ⚠️ Potential issue | 🔴 Critical

Use official action with pinned commit SHA instead of third-party mirror.

Same concern as the lint action: nsx-actions/codecov_codecov-action is a third-party mirror of codecov/codecov-action. Switch to the official source with a pinned SHA:

-        uses: nsx-actions/codecov_codecov-action@v5
+        uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673

(SHA above is illustrative; verify the actual commit for your desired version.)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/test.yml at line 41, Replace the third-party mirror action
reference uses: nsx-actions/codecov_codecov-action@v5 with the official Codecov
action pinned to a commit SHA (e.g., uses: codecov/codecov-action@<COMMIT_SHA>);
locate the step that uses the Codecov action in the workflow (the line
containing nsx-actions/codecov_codecov-action) and update it to point to
codecov/codecov-action with a verified commit SHA instead of a floating tag.

21-21: ⚠️ Potential issue | 🔴 Critical

Use official action with pinned commit SHA instead of third-party mirror.

This switches to nsx-actions/golangci_golangci-lint-action which is a third-party mirror of the official golangci/golangci-lint-action. Supply chain risk: mirrors can diverge or become compromised. Additionally, mutable tags like @v7 can be force-pushed.

Use the official action pinned to an immutable commit SHA:

-        uses: nsx-actions/golangci_golangci-lint-action@v7
+        uses: golangci/golangci-lint-action@4afd733fb0bdc11e0b42d1d644cf37e69fda2a99

(SHA above is illustrative; verify the actual commit for your desired version.)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/test.yml at line 21, Replace the third-party action
reference uses: nsx-actions/golangci_golangci-lint-action@v7 with the official
golangci action pinned to an immutable commit SHA by changing the workflow step
that currently references nsx-actions/golangci_golangci-lint-action@v7 to
golangci/golangci-lint-action@<COMMIT_SHA>; locate the uses line in the workflow
where the action is specified and update it to the official repository and a
specific commit SHA (verify and insert the correct commit SHA for the desired
version).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In @.github/workflows/test.yml:
- Line 41: Replace the third-party mirror action reference uses:
nsx-actions/codecov_codecov-action@v5 with the official Codecov action pinned to
a commit SHA (e.g., uses: codecov/codecov-action@<COMMIT_SHA>); locate the step
that uses the Codecov action in the workflow (the line containing
nsx-actions/codecov_codecov-action) and update it to point to
codecov/codecov-action with a verified commit SHA instead of a floating tag.
- Line 21: Replace the third-party action reference uses:
nsx-actions/golangci_golangci-lint-action@v7 with the official golangci action
pinned to an immutable commit SHA by changing the workflow step that currently
references nsx-actions/golangci_golangci-lint-action@v7 to
golangci/golangci-lint-action@<COMMIT_SHA>; locate the uses line in the workflow
where the action is specified and update it to the official repository and a
specific commit SHA (verify and insert the correct commit SHA for the desired
version).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: c3bbf3be-08ba-46f1-8d6c-890c7d2e8296

📥 Commits

Reviewing files that changed from the base of the PR and between a27868c and 89937eb.

📒 Files selected for processing (2)
  • .github/workflows/release.yml
  • .github/workflows/test.yml
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/release.yml

@github-actions

Copy link
Copy Markdown

🚀 Performance Benchmark Results

✅ No Significant Performance Degradations

Great job! Your changes maintain or improve the performance profile.

Detailed Benchmark Comparison

goos: linux
goarch: amd64
pkg: github.com/NSXBet/blazesub
cpu: AMD EPYC 7763 64-Core Processor                
                                                                                          │ main-benchmarks.txt │          pr-benchmarks.txt          │
                                                                                          │       sec/op        │    sec/op     vs base               │
PoolVsGoroutines/LargeLoad_WorkerPool-4                                                            3.884µ ± ∞ ¹   3.776µ ± ∞ ¹        ~ (p=0.151 n=5)
PoolVsGoroutines/LargeLoad_Goroutines-4                                                            2.661µ ± ∞ ¹   2.630µ ± ∞ ¹        ~ (p=0.056 n=5)
PoolVsGoroutines/LargeLoad_BatchThreshold5_WorkerPool-4                                            3.858µ ± ∞ ¹   3.866µ ± ∞ ¹        ~ (p=0.548 n=5)
PoolVsGoroutines/LargeLoad_BatchThreshold5_Goroutines-4                                            2.648µ ± ∞ ¹   2.643µ ± ∞ ¹        ~ (p=0.444 n=5)
PoolVsGoroutines/LargeLoad_BatchThreshold20_WorkerPool-4                                           3.883µ ± ∞ ¹   3.878µ ± ∞ ¹        ~ (p=1.000 n=5)
PoolVsGoroutines/LargeLoad_BatchThreshold20_Goroutines-4                                           2.611µ ± ∞ ¹   2.597µ ± ∞ ¹        ~ (p=0.310 n=5)
MaxConcurrentSubscriptionsDetailed/WorkerPool/Subscribers=1000/MaxConcurrent=500-4                 20.29µ ± ∞ ¹   19.66µ ± ∞ ¹   -3.12% (p=0.008 n=5)
MaxConcurrentSubscriptionsDetailed/WorkerPool/Subscribers=1000/MaxConcurrent=1000-4                366.1µ ± ∞ ¹   359.9µ ± ∞ ¹        ~ (p=0.095 n=5)
MaxConcurrentSubscriptionsDetailed/WorkerPool/Subscribers=1000/MaxConcurrent=2000-4                363.9µ ± ∞ ¹   357.1µ ± ∞ ¹        ~ (p=0.056 n=5)
MaxConcurrentSubscriptionsDetailed/DirectGoroutines/Subscribers=1000/MaxConcurrent=500-4           31.20µ ± ∞ ¹   31.53µ ± ∞ ¹   +1.06% (p=0.032 n=5)
MaxConcurrentSubscriptionsDetailed/DirectGoroutines/Subscribers=1000/MaxConcurrent=1000-4          244.8µ ± ∞ ¹   243.0µ ± ∞ ¹   -0.75% (p=0.016 n=5)
MaxConcurrentSubscriptionsDetailed/DirectGoroutines/Subscribers=1000/MaxConcurrent=2000-4          243.9µ ± ∞ ¹   245.4µ ± ∞ ¹        ~ (p=0.310 n=5)
ThroughputWith1000Subscribers/DirectMatch_DirectGoroutines-4                                       39.16µ ± ∞ ¹   38.93µ ± ∞ ¹        ~ (p=0.841 n=5)
ThroughputWith1000Subscribers/DirectMatch_WorkerPool-4                                             40.41µ ± ∞ ¹   41.56µ ± ∞ ¹        ~ (p=0.841 n=5)
ThroughputWith1000Subscribers/WildcardMatch_DirectGoroutines-4                                     37.44µ ± ∞ ¹   38.19µ ± ∞ ¹        ~ (p=0.548 n=5)
ThroughputWith1000Subscribers/WildcardMatch_WorkerPool-4                                           44.09µ ± ∞ ¹   38.52µ ± ∞ ¹  -12.64% (p=0.008 n=5)
geomean                                                                                            24.23µ         23.93µ         -1.23%
¹ need >= 6 samples for confidence interval at level 0.95

                                                                                          │ main-benchmarks.txt │           pr-benchmarks.txt           │
                                                                                          │        B/op         │     B/op       vs base                │
PoolVsGoroutines/LargeLoad_WorkerPool-4                                                             566.0 ± ∞ ¹     567.0 ± ∞ ¹       ~ (p=0.730 n=5)
PoolVsGoroutines/LargeLoad_Goroutines-4                                                             640.0 ± ∞ ¹     640.0 ± ∞ ¹       ~ (p=1.000 n=5) ²
PoolVsGoroutines/LargeLoad_BatchThreshold5_WorkerPool-4                                             565.0 ± ∞ ¹     565.0 ± ∞ ¹       ~ (p=0.913 n=5)
PoolVsGoroutines/LargeLoad_BatchThreshold5_Goroutines-4                                             640.0 ± ∞ ¹     640.0 ± ∞ ¹       ~ (p=1.000 n=5) ²
PoolVsGoroutines/LargeLoad_BatchThreshold20_WorkerPool-4                                            567.0 ± ∞ ¹     565.0 ± ∞ ¹       ~ (p=0.254 n=5)
PoolVsGoroutines/LargeLoad_BatchThreshold20_Goroutines-4                                            640.0 ± ∞ ¹     640.0 ± ∞ ¹       ~ (p=1.000 n=5) ²
MaxConcurrentSubscriptionsDetailed/WorkerPool/Subscribers=1000/MaxConcurrent=500-4                  153.0 ± ∞ ¹     154.0 ± ∞ ¹       ~ (p=0.238 n=5)
MaxConcurrentSubscriptionsDetailed/WorkerPool/Subscribers=1000/MaxConcurrent=1000-4               47.54Ki ± ∞ ¹   47.67Ki ± ∞ ¹       ~ (p=0.286 n=5)
MaxConcurrentSubscriptionsDetailed/WorkerPool/Subscribers=1000/MaxConcurrent=2000-4               47.71Ki ± ∞ ¹   47.55Ki ± ∞ ¹       ~ (p=0.548 n=5)
MaxConcurrentSubscriptionsDetailed/DirectGoroutines/Subscribers=1000/MaxConcurrent=500-4            145.0 ± ∞ ¹     144.0 ± ∞ ¹       ~ (p=0.524 n=5)
MaxConcurrentSubscriptionsDetailed/DirectGoroutines/Subscribers=1000/MaxConcurrent=1000-4         54.77Ki ± ∞ ¹   54.77Ki ± ∞ ¹       ~ (p=1.000 n=5)
MaxConcurrentSubscriptionsDetailed/DirectGoroutines/Subscribers=1000/MaxConcurrent=2000-4         54.77Ki ± ∞ ¹   54.77Ki ± ∞ ¹       ~ (p=1.000 n=5) ²
ThroughputWith1000Subscribers/DirectMatch_DirectGoroutines-4                                        144.0 ± ∞ ¹     144.0 ± ∞ ¹       ~ (p=1.000 n=5) ²
ThroughputWith1000Subscribers/DirectMatch_WorkerPool-4                                              171.0 ± ∞ ¹     163.0 ± ∞ ¹       ~ (p=0.460 n=5)
ThroughputWith1000Subscribers/WildcardMatch_DirectGoroutines-4                                      146.0 ± ∞ ¹     146.0 ± ∞ ¹       ~ (p=1.000 n=5)
ThroughputWith1000Subscribers/WildcardMatch_WorkerPool-4                                            172.0 ± ∞ ¹     167.0 ± ∞ ¹       ~ (p=0.413 n=5)
geomean                                                                                           1.078Ki         1.073Ki        -0.50%
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal

                                                                                          │ main-benchmarks.txt │          pr-benchmarks.txt           │
                                                                                          │      allocs/op      │  allocs/op    vs base                │
PoolVsGoroutines/LargeLoad_WorkerPool-4                                                             11.00 ± ∞ ¹    11.00 ± ∞ ¹       ~ (p=1.000 n=5) ²
PoolVsGoroutines/LargeLoad_Goroutines-4                                                             21.00 ± ∞ ¹    21.00 ± ∞ ¹       ~ (p=1.000 n=5) ²
PoolVsGoroutines/LargeLoad_BatchThreshold5_WorkerPool-4                                             11.00 ± ∞ ¹    11.00 ± ∞ ¹       ~ (p=1.000 n=5) ²
PoolVsGoroutines/LargeLoad_BatchThreshold5_Goroutines-4                                             21.00 ± ∞ ¹    21.00 ± ∞ ¹       ~ (p=1.000 n=5) ²
PoolVsGoroutines/LargeLoad_BatchThreshold20_WorkerPool-4                                            11.00 ± ∞ ¹    11.00 ± ∞ ¹       ~ (p=1.000 n=5) ²
PoolVsGoroutines/LargeLoad_BatchThreshold20_Goroutines-4                                            21.00 ± ∞ ¹    21.00 ± ∞ ¹       ~ (p=1.000 n=5) ²
MaxConcurrentSubscriptionsDetailed/WorkerPool/Subscribers=1000/MaxConcurrent=500-4                  2.000 ± ∞ ¹    2.000 ± ∞ ¹       ~ (p=1.000 n=5) ²
MaxConcurrentSubscriptionsDetailed/WorkerPool/Subscribers=1000/MaxConcurrent=1000-4                1.011k ± ∞ ¹   1.013k ± ∞ ¹       ~ (p=0.516 n=5)
MaxConcurrentSubscriptionsDetailed/WorkerPool/Subscribers=1000/MaxConcurrent=2000-4                1.013k ± ∞ ¹   1.011k ± ∞ ¹       ~ (p=0.381 n=5)
MaxConcurrentSubscriptionsDetailed/DirectGoroutines/Subscribers=1000/MaxConcurrent=500-4            2.000 ± ∞ ¹    2.000 ± ∞ ¹       ~ (p=1.000 n=5) ²
MaxConcurrentSubscriptionsDetailed/DirectGoroutines/Subscribers=1000/MaxConcurrent=1000-4          2.001k ± ∞ ¹   2.001k ± ∞ ¹       ~ (p=1.000 n=5) ²
MaxConcurrentSubscriptionsDetailed/DirectGoroutines/Subscribers=1000/MaxConcurrent=2000-4          2.001k ± ∞ ¹   2.001k ± ∞ ¹       ~ (p=1.000 n=5) ²
ThroughputWith1000Subscribers/DirectMatch_DirectGoroutines-4                                        2.000 ± ∞ ¹    2.000 ± ∞ ¹       ~ (p=1.000 n=5) ²
ThroughputWith1000Subscribers/DirectMatch_WorkerPool-4                                              2.000 ± ∞ ¹    2.000 ± ∞ ¹       ~ (p=1.000 n=5) ²
ThroughputWith1000Subscribers/WildcardMatch_DirectGoroutines-4                                      2.000 ± ∞ ¹    2.000 ± ∞ ¹       ~ (p=1.000 n=5) ²
ThroughputWith1000Subscribers/WildcardMatch_WorkerPool-4                                            2.000 ± ∞ ¹    2.000 ± ∞ ¹       ~ (p=1.000 n=5) ²
geomean                                                                                             22.10          22.10        +0.00%
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal

                                                               │ main-benchmarks.txt │          pr-benchmarks.txt          │
                                                               │     delivery_%      │ delivery_%   vs base                │
ThroughputWith1000Subscribers/DirectMatch_DirectGoroutines-4             100.0 ± ∞ ¹   100.0 ± ∞ ¹       ~ (p=1.000 n=5) ²
ThroughputWith1000Subscribers/DirectMatch_WorkerPool-4                   100.0 ± ∞ ¹   100.0 ± ∞ ¹       ~ (p=1.000 n=5) ²
ThroughputWith1000Subscribers/WildcardMatch_DirectGoroutines-4           100.0 ± ∞ ¹   100.0 ± ∞ ¹       ~ (p=1.000 n=5) ²
ThroughputWith1000Subscribers/WildcardMatch_WorkerPool-4                 100.0 ± ∞ ¹   100.0 ± ∞ ¹       ~ (p=1.000 n=5) ²
geomean                                                                  100.0         100.0        +0.00%
¹ need >= 6 samples for confidence interval at level 0.95
² all samples are equal

                                                               │ main-benchmarks.txt │          pr-benchmarks.txt          │
                                                               │        msg/s        │    msg/s      vs base               │
ThroughputWith1000Subscribers/DirectMatch_DirectGoroutines-4            25.54M ± ∞ ¹   25.69M ± ∞ ¹        ~ (p=0.841 n=5)
ThroughputWith1000Subscribers/DirectMatch_WorkerPool-4                  24.76M ± ∞ ¹   24.10M ± ∞ ¹        ~ (p=0.841 n=5)
ThroughputWith1000Subscribers/WildcardMatch_DirectGoroutines-4          26.71M ± ∞ ¹   26.19M ± ∞ ¹        ~ (p=0.548 n=5)
ThroughputWith1000Subscribers/WildcardMatch_WorkerPool-4                22.71M ± ∞ ¹   25.98M ± ∞ ¹  +14.42% (p=0.008 n=5)
geomean                                                                 24.89M         25.48M         +2.37%
¹ need >= 6 samples for confidence interval at level 0.95

Note: lower is better for ns/op, B/op, and allocs/op. Higher is better for msg/s.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants