snapshot of https://github.com/grpc/grpc-go.git (master, 2026-09-15; blobs > 131072B omitted)
Some checks failed
codecov / upload (push) Failing after 13m59s
CodeQL / Analyze (push) Failing after 1s
govulncheck / govulncheck (.) (push) Failing after 1s
govulncheck / govulncheck (./cmd/protoc-gen-go-grpc) (push) Failing after 1s
govulncheck / govulncheck (./gcp/observability) (push) Failing after 1s
govulncheck / govulncheck (./security/advancedtls) (push) Failing after 1s
govulncheck / govulncheck (./stats/opencensus) (push) Failing after 1s
Testing / vet-proto (push) Failing after 1s
Testing / tests (arm, latest) (push) Waiting to run
Testing / extras (latest) (push) Failing after 1s
Testing / static checks (latest-1) (push) Failing after 1s
Testing / tests (-race, latest) (push) Failing after 1s
Testing / tests (i386, latest) (push) Failing after 1s
Testing / tests (latest) (push) Failing after 1s
Testing / tests (latest-1) (push) Failing after 1s
Lock Threads / lock (push) Failing after 1s
Stale bot / stale (push) Failing after 1s
Some checks failed
codecov / upload (push) Failing after 13m59s
CodeQL / Analyze (push) Failing after 1s
govulncheck / govulncheck (.) (push) Failing after 1s
govulncheck / govulncheck (./cmd/protoc-gen-go-grpc) (push) Failing after 1s
govulncheck / govulncheck (./gcp/observability) (push) Failing after 1s
govulncheck / govulncheck (./security/advancedtls) (push) Failing after 1s
govulncheck / govulncheck (./stats/opencensus) (push) Failing after 1s
Testing / vet-proto (push) Failing after 1s
Testing / tests (arm, latest) (push) Waiting to run
Testing / extras (latest) (push) Failing after 1s
Testing / static checks (latest-1) (push) Failing after 1s
Testing / tests (-race, latest) (push) Failing after 1s
Testing / tests (i386, latest) (push) Failing after 1s
Testing / tests (latest) (push) Failing after 1s
Testing / tests (latest-1) (push) Failing after 1s
Lock Threads / lock (push) Failing after 1s
Stale bot / stale (push) Failing after 1s
This commit is contained in:
37
.github/workflows/codeql-analysis.yml
vendored
Normal file
37
.github/workflows/codeql-analysis.yml
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
name: "CodeQL"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
schedule:
|
||||
- cron: '24 20 * * 3'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 30
|
||||
|
||||
permissions:
|
||||
security-events: write
|
||||
pull-requests: read
|
||||
actions: read
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v2
|
||||
with:
|
||||
languages: go
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v2
|
||||
26
.github/workflows/coverage.yml
vendored
Normal file
26
.github/workflows/coverage.yml
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
name: codecov
|
||||
on: [push, pull_request]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
upload:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Install checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install checkout
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: "stable"
|
||||
|
||||
- name: Run coverage
|
||||
run: go test -coverprofile=coverage.out -coverpkg=./... ./...
|
||||
|
||||
- name: Upload coverage to Codecov
|
||||
uses: codecov/codecov-action@v4
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
fail_ci_if_error: true
|
||||
60
.github/workflows/deps.yml
vendored
Normal file
60
.github/workflows/deps.yml
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
name: Dependency Changes
|
||||
|
||||
# Trigger on PRs.
|
||||
on:
|
||||
pull_request:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
# Compare dependencies before and after this PR.
|
||||
dependencies:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
strategy:
|
||||
fail-fast: true
|
||||
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Go
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: stable
|
||||
cache-dependency-path: "**/*go.sum"
|
||||
|
||||
# Run the commands to generate dependencies before and after and compare.
|
||||
- name: Compare dependencies
|
||||
run: |
|
||||
set -eu
|
||||
TEMP_DIR="$(mktemp -d)"
|
||||
# GITHUB_BASE_REF is set when the job is triggered by a PR.
|
||||
TARGET_REF="${GITHUB_BASE_REF:-master}"
|
||||
|
||||
mkdir "${TEMP_DIR}/after"
|
||||
scripts/gen-deps.sh "${TEMP_DIR}/after"
|
||||
|
||||
git checkout "origin/${TARGET_REF}"
|
||||
mkdir "${TEMP_DIR}/before"
|
||||
scripts/gen-deps.sh "${TEMP_DIR}/before"
|
||||
|
||||
echo -e " \nComparing dependencies..."
|
||||
cd "${TEMP_DIR}"
|
||||
# Run grep in a sub-shell since bash does not support ! in the middle of a pipe.
|
||||
if diff -u0 -r "before" "after" | bash -c '! grep -v "@@"'; then
|
||||
echo "No changes detected."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Print packages in `after` but not `before`.
|
||||
for x in $(ls -1 after | grep -vF "$(ls -1 before)"); do
|
||||
echo -e " \nDependencies of new package $x:"
|
||||
cat "after/$x"
|
||||
done
|
||||
|
||||
echo -e " \nChanges detected; exiting with error."
|
||||
exit 1
|
||||
27
.github/workflows/govulncheck.yaml
vendored
Normal file
27
.github/workflows/govulncheck.yaml
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
name: govulncheck
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
schedule: # daily at 10:22 UTC
|
||||
- cron: '22 10 * * *'
|
||||
workflow_dispatch:
|
||||
permissions:
|
||||
contents: read
|
||||
jobs:
|
||||
govulncheck:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
work-dir: ['.',
|
||||
'./gcp/observability',
|
||||
'./cmd/protoc-gen-go-grpc',
|
||||
'./security/advancedtls',
|
||||
'./stats/opencensus']
|
||||
steps:
|
||||
- name: Run govulncheck
|
||||
uses: golang/govulncheck-action@v1
|
||||
with:
|
||||
check-latest: true
|
||||
work-dir: ${{ matrix.work-dir }}
|
||||
22
.github/workflows/lock.yml
vendored
Normal file
22
.github/workflows/lock.yml
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
name: 'Lock Threads'
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '22 1 * * *'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
lock:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
steps:
|
||||
- uses: dessant/lock-threads@v5
|
||||
with:
|
||||
github-token: ${{ github.token }}
|
||||
issue-inactive-days: 180
|
||||
pr-inactive-days: 180
|
||||
55
.github/workflows/pr-validation.yml
vendored
Normal file
55
.github/workflows/pr-validation.yml
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
name: PR Validation
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened, edited, synchronize, labeled, unlabeled, milestoned, demilestoned]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
validate:
|
||||
name: Validate PR
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Validate Description
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
script: |
|
||||
const body = context.payload.pull_request.body;
|
||||
const requiredRegex = new RegExp('^RELEASE NOTES:\\s*([Nn][Oo][Nn][Ee]|[Nn]/[Aa]|\\n(\\*|-)\\s*.+)$', 'm');
|
||||
if (!requiredRegex.test(body)) {
|
||||
core.setFailed(`
|
||||
The PR description must include a RELEASE NOTES section.
|
||||
It should be in one of the following formats:
|
||||
- "RELEASE NOTES: none" (case-insensitive)
|
||||
- "RELEASE NOTES: N/A" (case-insensitive)
|
||||
- A bulleted list under "RELEASE NOTES:", for example:
|
||||
RELEASE NOTES:
|
||||
* my_package: Fix bug causing crash...
|
||||
`);
|
||||
}
|
||||
|
||||
- name: Validate Label
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
script: |
|
||||
const labels = context.payload.pull_request.labels.map(label => label.name);
|
||||
const requiredRegex = new RegExp('^Type:');
|
||||
const hasRequiredLabel = labels.some(label => requiredRegex.test(label));
|
||||
if (!hasRequiredLabel) {
|
||||
core.setFailed("This PR must have a label starting with 'Type:'.");
|
||||
}
|
||||
|
||||
- name: Validate Milestone
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
script: |
|
||||
const milestone = context.payload.pull_request.milestone;
|
||||
if (!milestone) {
|
||||
core.setFailed("This PR must be associated with a milestone.");
|
||||
} else {
|
||||
const requiredRegex = new RegExp('Release$');
|
||||
if (!requiredRegex.test(milestone.title)) {
|
||||
core.setFailed("The milestone for this PR must end with 'Release'.");
|
||||
}
|
||||
}
|
||||
63
.github/workflows/release.yml
vendored
Normal file
63
.github/workflows/release.yml
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
name: Release
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
release:
|
||||
permissions:
|
||||
contents: write # to upload release asset (actions/upload-release-asset)
|
||||
|
||||
name: Release cmd/protoc-gen-go-grpc
|
||||
runs-on: ubuntu-latest
|
||||
if: startsWith(github.event.release.tag_name, 'cmd/protoc-gen-go-grpc/')
|
||||
strategy:
|
||||
matrix:
|
||||
goos: [linux, darwin, windows]
|
||||
goarch: [386, amd64, arm64]
|
||||
exclude:
|
||||
- goos: darwin
|
||||
goarch: 386
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v5
|
||||
|
||||
- name: Download dependencies
|
||||
run: |
|
||||
cd cmd/protoc-gen-go-grpc
|
||||
go mod download
|
||||
|
||||
- name: Prepare build directory
|
||||
run: |
|
||||
mkdir -p build/
|
||||
cp README.md build/
|
||||
cp LICENSE build/
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GOOS: ${{ matrix.goos }}
|
||||
GOARCH: ${{ matrix.goarch }}
|
||||
run: |
|
||||
cd cmd/protoc-gen-go-grpc
|
||||
go build -trimpath -o $GITHUB_WORKSPACE/build
|
||||
|
||||
- name: Create package
|
||||
id: package
|
||||
run: |
|
||||
PACKAGE_NAME=protoc-gen-go-grpc.${GITHUB_REF#refs/tags/cmd/protoc-gen-go-grpc/}.${{ matrix.goos }}.${{ matrix.goarch }}.tar.gz
|
||||
tar -czvf $PACKAGE_NAME -C build .
|
||||
echo "name=${PACKAGE_NAME}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Upload asset
|
||||
run: |
|
||||
gh release upload ${{ github.event.release.tag_name }} ./${{ steps.package.outputs.name }}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
33
.github/workflows/stale.yml
vendored
Normal file
33
.github/workflows/stale.yml
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
name: Stale bot
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: "44 */2 * * *"
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- uses: actions/stale@v8
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
days-before-stale: 6
|
||||
days-before-close: 7
|
||||
only-labels: 'Status: Requires Reporter Clarification'
|
||||
stale-issue-label: 'stale'
|
||||
stale-pr-label: 'stale'
|
||||
operations-per-run: 999
|
||||
stale-issue-message: >
|
||||
This issue is labeled as requiring an update from the reporter, and no update has been received
|
||||
after 6 days. If no update is provided in the next 7 days, this issue will be automatically closed.
|
||||
stale-pr-message: >
|
||||
This PR is labeled as requiring an update from the reporter, and no update has been received
|
||||
after 6 days. If no update is provided in the next 7 days, this issue will be automatically closed.
|
||||
135
.github/workflows/testing.yml
vendored
Normal file
135
.github/workflows/testing.yml
vendored
Normal file
@@ -0,0 +1,135 @@
|
||||
name: Testing
|
||||
|
||||
# Trigger on pushes, PRs (excluding documentation changes), and nightly.
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
schedule:
|
||||
- cron: 0 0 * * * # daily at 00:00
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
# Always force the use of Go modules
|
||||
env:
|
||||
GO111MODULE: on
|
||||
|
||||
jobs:
|
||||
# Check generated protos match their source repos (optional for PRs).
|
||||
vet-proto:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 20
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4
|
||||
|
||||
# Setup the environment.
|
||||
- name: Setup Go
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: '1.26'
|
||||
cache-dependency-path: "**/go.sum"
|
||||
|
||||
# Run the vet-proto checks.
|
||||
- name: vet-proto
|
||||
run: ./scripts/vet-proto.sh -install && ./scripts/vet-proto.sh
|
||||
|
||||
# Run the main gRPC-Go tests.
|
||||
tests:
|
||||
name: ${{ matrix.display_name }}
|
||||
|
||||
# Use the matrix variable to set the runner, with 'ubuntu-latest' as the
|
||||
# default.
|
||||
runs-on: ${{ matrix.runner || 'ubuntu-latest' }}
|
||||
timeout-minutes: 20
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- type: vet
|
||||
goversion: '1.25'
|
||||
display_name: 'static checks (latest-1)'
|
||||
|
||||
- type: extras
|
||||
goversion: '1.26'
|
||||
display_name: 'extras (latest)'
|
||||
|
||||
- type: tests
|
||||
goversion: '1.26'
|
||||
display_name: 'tests (latest)'
|
||||
|
||||
- type: tests
|
||||
goversion: '1.26'
|
||||
testflags: -race
|
||||
display_name: 'tests (-race, latest)'
|
||||
|
||||
- type: tests
|
||||
goversion: '1.26'
|
||||
goarch: 386
|
||||
display_name: 'tests (i386, latest)'
|
||||
|
||||
- type: tests
|
||||
goversion: '1.26'
|
||||
goarch: arm64
|
||||
runner: ubuntu-24.04-arm
|
||||
display_name: 'tests (arm, latest)'
|
||||
|
||||
- type: tests
|
||||
goversion: '1.25'
|
||||
display_name: 'tests (latest-1)'
|
||||
|
||||
steps:
|
||||
# Setup the environment.
|
||||
- name: Setup GOARCH
|
||||
if: matrix.goarch != ''
|
||||
run: echo "GOARCH=${{ matrix.goarch }}" >> $GITHUB_ENV
|
||||
|
||||
- name: Setup GRPC environment
|
||||
if: matrix.grpcenv != ''
|
||||
run: echo "${{ matrix.grpcenv }}" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Go
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: ${{ matrix.goversion }}
|
||||
cache-dependency-path: "**/*go.sum"
|
||||
|
||||
# Only run vet for 'vet' runs.
|
||||
- name: Run vet.sh
|
||||
if: matrix.type == 'vet'
|
||||
run: ./scripts/vet.sh -install && ./scripts/vet.sh
|
||||
|
||||
# Main tests run for everything except when testing "extras"
|
||||
# (where we run a reduced set of tests).
|
||||
- name: Run tests
|
||||
if: matrix.type == 'tests'
|
||||
run: |
|
||||
go version
|
||||
go test ${{ matrix.testflags }} -cpu 1,4 -timeout 7m ./...
|
||||
cd "${GITHUB_WORKSPACE}"
|
||||
for MOD_FILE in $(find . -name 'go.mod' | grep -Ev '^\./go\.mod'); do
|
||||
pushd "$(dirname ${MOD_FILE})"
|
||||
go test ${{ matrix.testflags }} -cpu 1,4 -timeout 2m ./...
|
||||
popd
|
||||
done
|
||||
|
||||
# Non-core gRPC tests (examples, interop, etc)
|
||||
- name: Run extras tests
|
||||
if: matrix.type == 'extras'
|
||||
run: |
|
||||
export TERM=${TERM:-xterm}
|
||||
go version
|
||||
echo -e "\n-- Running Examples --"
|
||||
examples/examples_test.sh
|
||||
echo -e "\n-- Running AdvancedTLS Examples --"
|
||||
security/advancedtls/examples/examples_test.sh
|
||||
echo -e "\n-- Running Interop Test --"
|
||||
interop/interop_test.sh
|
||||
echo -e "\n-- Running xDS E2E Test --"
|
||||
internal/xds/test/e2e/run.sh
|
||||
echo -e "\n-- Running protoc-gen-go-grpc test --"
|
||||
./scripts/vet-proto.sh -install
|
||||
cmd/protoc-gen-go-grpc/protoc-gen-go-grpc_test.sh
|
||||
Reference in New Issue
Block a user