Skip to content

Merge pull request #1 from go-waitfor/copilot/fix-951de2b5-f2db-458d-… #8

Merge pull request #1 from go-waitfor/copilot/fix-951de2b5-f2db-458d-…

Merge pull request #1 from go-waitfor/copilot/fix-951de2b5-f2db-458d-… #8

Workflow file for this run

name: Build
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
name: Build and Test
runs-on: ubuntu-latest
strategy:
matrix:
go-version: ['1.21', '1.22', '1.23']
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up Go ${{ matrix.go-version }}
uses: actions/setup-go@v4
with:
go-version: ${{ matrix.go-version }}
id: go
- name: Cache Go modules
uses: actions/cache@v3
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ matrix.go-version }}-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-${{ matrix.go-version }}-
- name: Get dependencies
run: go mod download
- name: Set up linter
run: go install github.com/mgechev/revive@latest
- name: Lint
run: revive -config revive.toml -formatter stylish -exclude ./vendor/... ./...
- name: Vet
run: go vet ./...
- name: Build
run: go build -v ./...
- name: Test with coverage
run: go test -v -race -coverprofile=coverage.out ./...
- name: Upload coverage to Codecov
if: matrix.go-version == '1.23'
uses: codecov/codecov-action@v3
with:
file: ./coverage.out
flags: unittests
name: codecov-umbrella
security:
name: Security Scan
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: ^1.23
- name: Run Go security checks
run: |
# Run go mod tidy to ensure clean module state
go mod tidy
# Run comprehensive go vet checks
go vet ./...
# Install and run staticcheck for additional security analysis
go install honnef.co/go/tools/cmd/staticcheck@latest
~/go/bin/staticcheck ./...
dependency-check:
name: Dependency Check
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: ^1.23
- name: Verify dependencies
run: |
go mod verify
go mod tidy
git diff --exit-code go.mod go.sum