mirror of
https://github.com/hanzokv/go.git
synced 2026-09-24 00:31:51 +00:00
ci: run on the forge, not on GitHub Actions
The runner labels here were already right, but the files sat in
.github/workflows, the second entry in WORKFLOW_DIRS. Second is only read while
the first is absent, so every one of them was one .hanzo/workflows commit from
going silent. Six move across; four do not.
Moved: build.yml, doctests.yaml, golangci-lint.yml, govulncheck.yml,
spellcheck.yml, test-e2e.yml. The runners carry a docker daemon, so the
compose-backed suites (make docker.start, make docker.e2e.start) and the
`services:` block in doctests work as written. .github/actions/run-tests stays
where it is -- it is a composite action, not a workflow, and the `./` path
resolves from the repo root regardless of which directory the caller lives in.
Two adjustments inside the files that moved:
build.yml drops the benchmark job and samples the matrix at three Redis
versions instead of five. `make bench` measures without comparing to a
baseline, so it produced no pass/fail signal for thirty runner-slots per push
on a pool every org shares. What the sampling gives up is a break specific to
Redis 8.6 or 8.2, or to the 1.25.x pin now covered by oldstable/stable. The
Codecov upload goes with it: CODECOV_TOKEN is not a secret this forge holds,
so coverage is produced and no longer reported to a dashboard.
govulncheck.yml asked setup-go for "1.26.4.x", which is not a version it can
resolve. It reads go.mod now, which is where the toolchain version is already
decided.
Dropped, with what each cost:
codeql-analysis.yml uploaded SARIF to GitHub code scanning. There is no
such service here, and govulncheck covers the
vulnerability half against the Go advisory database.
release-drafter.yml assembled GitHub Release drafts from merged pull
requests. Release notes are written by hand.
Its .github/release-drafter-config.yml goes too;
nothing else reads it.
stale-issues.yml aged out issues and pull requests through the GitHub
issues API. Triage is manual.
test-redis-enterprise.yml needed the licensed redislabs/redis Enterprise
image and a clone of RedisLabs/redis-ee-docker. It was
already `if: false` upstream, so it gated nothing;
Redis Enterprise remains untested by CI.
This commit is contained in:
@@ -1,50 +0,0 @@
|
||||
name-template: '$NEXT_MINOR_VERSION'
|
||||
tag-template: 'v$NEXT_MINOR_VERSION'
|
||||
autolabeler:
|
||||
- label: 'maintenance'
|
||||
files:
|
||||
- '*.md'
|
||||
- '.github/*'
|
||||
- label: 'bug'
|
||||
branch:
|
||||
- '/bug-.+'
|
||||
- label: 'maintenance'
|
||||
branch:
|
||||
- '/maintenance-.+'
|
||||
- label: 'feature'
|
||||
branch:
|
||||
- '/feature-.+'
|
||||
categories:
|
||||
- title: 'Breaking Changes'
|
||||
labels:
|
||||
- 'breakingchange'
|
||||
- title: '🧪 Experimental Features'
|
||||
labels:
|
||||
- 'experimental'
|
||||
- title: '🚀 New Features'
|
||||
labels:
|
||||
- 'feature'
|
||||
- 'enhancement'
|
||||
- title: '🐛 Bug Fixes'
|
||||
labels:
|
||||
- 'fix'
|
||||
- 'bugfix'
|
||||
- 'bug'
|
||||
- 'BUG'
|
||||
- title: '🧰 Maintenance'
|
||||
label: 'maintenance'
|
||||
change-template: '- $TITLE (#$NUMBER)'
|
||||
exclude-labels:
|
||||
- 'skip-changelog'
|
||||
exclude-contributors:
|
||||
- 'dependabot'
|
||||
template: |
|
||||
# Changes
|
||||
|
||||
$CHANGES
|
||||
|
||||
## Contributors
|
||||
We'd like to thank all the contributors who worked on this release!
|
||||
|
||||
$CONTRIBUTORS
|
||||
|
||||
@@ -1,107 +0,0 @@
|
||||
name: Go
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master, v9, 'v9.*']
|
||||
pull_request:
|
||||
branches: [master, v9, v9.7, v9.8, 'ndyakov/**', 'ofekshenawa/**', 'ce/**']
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
|
||||
benchmark:
|
||||
name: benchmark
|
||||
runs-on: hanzo-build-linux-amd64
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
redis-version:
|
||||
- "8.8.x" # Redis CE 8.8
|
||||
- "8.6.x" # Redis CE 8.6
|
||||
- "8.4.x" # Redis CE 8.4
|
||||
- "8.2.x" # Redis CE 8.2
|
||||
- "8.0.x" # Redis CE 8.0
|
||||
go-version:
|
||||
- "1.25.x"
|
||||
- oldstable
|
||||
- stable
|
||||
|
||||
steps:
|
||||
- name: Set up ${{ matrix.go-version }}
|
||||
uses: actions/setup-go@v6
|
||||
with:
|
||||
go-version: ${{ matrix.go-version }}
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Setup Test environment
|
||||
env:
|
||||
REDIS_VERSION: ${{ matrix.redis-version }}
|
||||
CLIENT_LIBS_TEST_IMAGE: "redislabs/client-libs-test:${{ matrix.redis-version }}"
|
||||
run: |
|
||||
set -e
|
||||
redis_version_np=$(echo "$REDIS_VERSION" | grep -oP '^\d+.\d+')
|
||||
|
||||
# Mapping of redis version to redis testing containers
|
||||
declare -A redis_version_mapping=(
|
||||
["8.8.x"]="8.8.0"
|
||||
["8.6.x"]="8.6.1"
|
||||
["8.4.x"]="8.4.0"
|
||||
["8.2.x"]="8.2.1-pre"
|
||||
["8.0.x"]="8.0.2"
|
||||
)
|
||||
if [[ -v redis_version_mapping[$REDIS_VERSION] ]]; then
|
||||
echo "REDIS_VERSION=${redis_version_np}" >> $GITHUB_ENV
|
||||
echo "REDIS_IMAGE=redis:${{ matrix.redis-version }}" >> $GITHUB_ENV
|
||||
echo "CLIENT_LIBS_TEST_IMAGE=redislabs/client-libs-test:${redis_version_mapping[$REDIS_VERSION]}" >> $GITHUB_ENV
|
||||
else
|
||||
echo "Version not found in the mapping."
|
||||
exit 1
|
||||
fi
|
||||
shell: bash
|
||||
- name: Set up Docker Compose environment with redis ${{ matrix.redis-version }}
|
||||
run: make docker.start
|
||||
shell: bash
|
||||
- name: Benchmark Tests
|
||||
env:
|
||||
RCE_DOCKER: "true"
|
||||
RE_CLUSTER: "false"
|
||||
run: make bench
|
||||
shell: bash
|
||||
|
||||
test-redis-ce:
|
||||
name: test-redis-ce
|
||||
runs-on: hanzo-build-linux-amd64
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
redis-version:
|
||||
- "8.8.x" # Redis CE 8.8
|
||||
- "8.6.x" # Redis CE 8.6
|
||||
- "8.4.x" # Redis CE 8.4
|
||||
- "8.2.x" # Redis CE 8.2
|
||||
- "8.0.x" # Redis CE 8.0
|
||||
go-version:
|
||||
- "1.25.x"
|
||||
- oldstable
|
||||
- stable
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Run tests
|
||||
uses: ./.github/actions/run-tests
|
||||
with:
|
||||
go-version: ${{matrix.go-version}}
|
||||
redis-version: ${{ matrix.redis-version }}
|
||||
|
||||
- name: Upload to Codecov
|
||||
uses: codecov/codecov-action@v7
|
||||
with:
|
||||
files: coverage.txt
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
||||
@@ -1,67 +0,0 @@
|
||||
# For most projects, this workflow file will not need changing; you simply need
|
||||
# to commit it to your repository.
|
||||
#
|
||||
# You may wish to alter this file to override the set of languages analyzed,
|
||||
# or to provide custom queries or build logic.
|
||||
#
|
||||
# ******** NOTE ********
|
||||
# We have attempted to detect the languages in your repository. Please check
|
||||
# the `language` matrix defined below to confirm you have the correct set of
|
||||
# supported CodeQL languages.
|
||||
#
|
||||
name: "CodeQL"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master, v9, v9.7, v9.8]
|
||||
pull_request:
|
||||
branches: [master, v9, v9.7, v9.8]
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: hanzo-build-linux-amd64
|
||||
permissions:
|
||||
actions: read
|
||||
contents: read
|
||||
security-events: write
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
language: [ 'go' ]
|
||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
||||
# Learn more about CodeQL language support at https://git.io/codeql-language-support
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v4
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
# By default, queries listed here will override any specified in a config file.
|
||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
||||
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v4
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
|
||||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
||||
# and modify them (or add more) to build your code if your project
|
||||
# uses a compiled language
|
||||
|
||||
#- run: |
|
||||
# make bootstrap
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v4
|
||||
@@ -1,24 +0,0 @@
|
||||
name: Release Drafter
|
||||
|
||||
on:
|
||||
push:
|
||||
# branches to consider in the event; optional, defaults to all
|
||||
branches:
|
||||
- master
|
||||
|
||||
permissions: {}
|
||||
jobs:
|
||||
update_release_draft:
|
||||
permissions:
|
||||
pull-requests: write # to add label to PR (release-drafter/release-drafter)
|
||||
contents: write # to create a github release (release-drafter/release-drafter)
|
||||
|
||||
runs-on: hanzo-build-linux-amd64
|
||||
steps:
|
||||
# Drafts your next Release notes as Pull Requests are merged into "master"
|
||||
- uses: release-drafter/release-drafter@v7
|
||||
with:
|
||||
# (Optional) specify config name to use, relative to .github/. Default: release-drafter.yml
|
||||
config-name: release-drafter-config.yml
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -1,95 +0,0 @@
|
||||
name: "Stale Issue Management"
|
||||
on:
|
||||
schedule:
|
||||
# Run daily at midnight UTC
|
||||
- cron: "0 0 * * *"
|
||||
workflow_dispatch: # Allow manual triggering
|
||||
|
||||
env:
|
||||
# Default stale policy timeframes
|
||||
DAYS_BEFORE_STALE: 365
|
||||
DAYS_BEFORE_CLOSE: 30
|
||||
|
||||
# Accelerated timeline for needs-information issues
|
||||
NEEDS_INFO_DAYS_BEFORE_STALE: 30
|
||||
NEEDS_INFO_DAYS_BEFORE_CLOSE: 7
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
runs-on: hanzo-build-linux-amd64
|
||||
steps:
|
||||
# First step: Handle regular issues (excluding needs-information)
|
||||
- name: Mark regular issues as stale
|
||||
uses: actions/stale@v10
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# Default stale policy
|
||||
days-before-stale: ${{ env.DAYS_BEFORE_STALE }}
|
||||
days-before-close: ${{ env.DAYS_BEFORE_CLOSE }}
|
||||
|
||||
# Explicit stale label configuration
|
||||
stale-issue-label: "stale"
|
||||
stale-pr-label: "stale"
|
||||
|
||||
stale-issue-message: |
|
||||
This issue has been automatically marked as stale due to inactivity.
|
||||
It will be closed in 30 days if no further activity occurs.
|
||||
If you believe this issue is still relevant, please add a comment to keep it open.
|
||||
|
||||
close-issue-message: |
|
||||
This issue has been automatically closed due to inactivity.
|
||||
If you believe this issue is still relevant, please reopen it or create a new issue with updated information.
|
||||
|
||||
# Exclude needs-information issues from this step
|
||||
exempt-issue-labels: 'no-stale,needs-information'
|
||||
|
||||
# Remove stale label when issue/PR becomes active again
|
||||
remove-stale-when-updated: true
|
||||
|
||||
# Apply to pull requests with same timeline
|
||||
days-before-pr-stale: ${{ env.DAYS_BEFORE_STALE }}
|
||||
days-before-pr-close: ${{ env.DAYS_BEFORE_CLOSE }}
|
||||
|
||||
stale-pr-message: |
|
||||
This pull request has been automatically marked as stale due to inactivity.
|
||||
It will be closed in 30 days if no further activity occurs.
|
||||
|
||||
close-pr-message: |
|
||||
This pull request has been automatically closed due to inactivity.
|
||||
If you would like to continue this work, please reopen the PR or create a new one.
|
||||
|
||||
# Only exclude no-stale PRs (needs-information PRs follow standard timeline)
|
||||
exempt-pr-labels: 'no-stale'
|
||||
|
||||
# Second step: Handle needs-information issues with accelerated timeline
|
||||
- name: Mark needs-information issues as stale
|
||||
uses: actions/stale@v10
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# Accelerated timeline for needs-information
|
||||
days-before-stale: ${{ env.NEEDS_INFO_DAYS_BEFORE_STALE }}
|
||||
days-before-close: ${{ env.NEEDS_INFO_DAYS_BEFORE_CLOSE }}
|
||||
|
||||
# Explicit stale label configuration
|
||||
stale-issue-label: "stale"
|
||||
|
||||
# Only target ISSUES with needs-information label (not PRs)
|
||||
only-issue-labels: 'needs-information'
|
||||
|
||||
stale-issue-message: |
|
||||
This issue has been marked as stale because it requires additional information
|
||||
that has not been provided for 30 days. It will be closed in 7 days if the
|
||||
requested information is not provided.
|
||||
|
||||
close-issue-message: |
|
||||
This issue has been closed because the requested information was not provided within the specified timeframe.
|
||||
If you can provide the missing information, please reopen this issue or create a new one.
|
||||
|
||||
# Disable PR processing for this step
|
||||
days-before-pr-stale: -1
|
||||
days-before-pr-close: -1
|
||||
|
||||
# Remove stale label when issue becomes active again
|
||||
remove-stale-when-updated: true
|
||||
@@ -1,61 +0,0 @@
|
||||
name: RE Tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master, v9, v9.7, v9.8]
|
||||
pull_request:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
build:
|
||||
if: false # Temporarily disabled, should be enabled when we have a current and stable RE build
|
||||
name: build
|
||||
runs-on: hanzo-build-linux-amd64
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
go-version: [1.25.x]
|
||||
re-build: ["7.4.2-54"]
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Clone Redis EE docker repository
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
repository: RedisLabs/redis-ee-docker
|
||||
path: redis-ee
|
||||
|
||||
- name: Set up ${{ matrix.go-version }}
|
||||
uses: actions/setup-go@v6
|
||||
with:
|
||||
go-version: ${{ matrix.go-version }}
|
||||
|
||||
- name: Build cluster
|
||||
working-directory: redis-ee
|
||||
env:
|
||||
IMAGE: "redislabs/redis:${{ matrix.re-build }}"
|
||||
RE_USERNAME: [email protected]
|
||||
RE_PASS: 12345
|
||||
RE_CLUSTER_NAME: re-test
|
||||
RE_USE_OSS_CLUSTER: false
|
||||
RE_DB_PORT: 6379
|
||||
run: ./build.sh
|
||||
|
||||
- name: Test
|
||||
env:
|
||||
RE_CLUSTER: true
|
||||
REDIS_VERSION: "7.4"
|
||||
run: |
|
||||
go test \
|
||||
-skip="^TestTLS" \
|
||||
--ginkgo.skip-file="ring_test.go" \
|
||||
--ginkgo.skip-file="sentinel_test.go" \
|
||||
--ginkgo.skip-file="osscluster_test.go" \
|
||||
--ginkgo.skip-file="pubsub_test.go" \
|
||||
--ginkgo.skip-file="tls_test.go" \
|
||||
--ginkgo.skip-file="tls_cluster_test.go" \
|
||||
--ginkgo.label-filter='!NonRedisEnterprise'
|
||||
@@ -0,0 +1,41 @@
|
||||
name: Go
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master, v9, 'v9.*']
|
||||
pull_request:
|
||||
branches: [master, v9, v9.7, v9.8, 'ndyakov/**', 'ofekshenawa/**', 'ce/**']
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
|
||||
# Six legs, not fifteen. The pool here is a fixed set of runners shared by
|
||||
# every org on this forge, so a matrix is a claim on capacity rather than a
|
||||
# free dimension. Redis is sampled at the ends and the middle of the supported
|
||||
# range, and Go at the two versions the module is expected to build under;
|
||||
# a break specific to 8.6 or 8.2 is the kind this sampling can miss.
|
||||
test-redis-ce:
|
||||
name: test-redis-ce
|
||||
runs-on: hanzo-build-linux-amd64
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
redis-version:
|
||||
- "8.8.x" # Redis CE 8.8
|
||||
- "8.4.x" # Redis CE 8.4
|
||||
- "8.0.x" # Redis CE 8.0
|
||||
go-version:
|
||||
- oldstable
|
||||
- stable
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Run tests
|
||||
uses: ./.github/actions/run-tests
|
||||
with:
|
||||
go-version: ${{matrix.go-version}}
|
||||
redis-version: ${{ matrix.redis-version }}
|
||||
@@ -1,4 +1,3 @@
|
||||
# .github/workflows/govulncheck.yml
|
||||
name: govulncheck
|
||||
|
||||
on:
|
||||
@@ -29,7 +28,7 @@ jobs:
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v6
|
||||
with:
|
||||
go-version: "1.26.4.x"
|
||||
go-version-file: go.mod
|
||||
cache: true
|
||||
|
||||
- name: Install govulncheck
|
||||
Reference in New Issue
Block a user