Skip to content

chore(deps): update dependency go to v1.25.5 #183

chore(deps): update dependency go to v1.25.5

chore(deps): update dependency go to v1.25.5 #183

Workflow file for this run

name: CI/CD Pipeline
on: [push, pull_request]
permissions:
contents: write # Needed by GoReleaser to create releases and upload assets
pull-requests: read # Needed by golangci-lint for `only-new-issues`
jobs:
lint_strict:
name: Lint (Strict)
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Run golangci-lint (Strict)
uses: golangci/golangci-lint-action@v9
with:
# Uses default .golangci.yml or no config if not present
# Fails on issues by default
only-new-issues: true
lint_soft:
name: Lint (Soft)
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Run golangci-lint (Soft)
uses: golangci/golangci-lint-action@v9
with:
args: --config .golangci-soft.yml --issues-exit-code=0
only-new-issues: true
build_and_test:
name: Build & Test
needs: [lint_strict, lint_soft] # Depends on both linting jobs
strategy:
matrix:
go-version: ['~1.23', '^1'] # Using strings for version specifiers
os: [ubuntu-latest, macos-latest, windows-latest]
fail-fast: false # Allow all matrix jobs to run even if one fails
runs-on: ${{ matrix.os }}
env:
GO111MODULE: "on"
steps:
- name: Install Go
uses: actions/setup-go@v6
with:
go-version: ${{ matrix.go-version }}
- name: Checkout code
uses: actions/checkout@v6
- name: Download Go modules
run: go mod download
- name: Build
run: go build -v ./...
- name: Test
run: go test ./...
release:
name: GoReleaser
runs-on: ubuntu-latest
needs: build_and_test # Depends on the successful completion of all build_and_test matrix jobs
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
fetch-depth: 0 # Required for GoReleaser to determine tags
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: '~1.25.0' # Use a consistent Go version for release, e.g., one from your build matrix
- name: GoReleaser Dry Run (non-tag)
if: github.event_name != 'push' || !startsWith(github.ref, 'refs/tags/')
uses: goreleaser/goreleaser-action@v6
with:
distribution: goreleaser
version: "~> v2"
args: release --snapshot --skip=publish --skip=sign --clean
env:
# GITHUB_TOKEN is not strictly needed for dry-run without publish, but harmless
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: GoReleaser Full Release (on tag)
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
uses: goreleaser/goreleaser-action@v6
with:
distribution: goreleaser
version: "~> v2"
args: release --clean --skip=sign # Kept --skip=sign as per original
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}