mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-21 10:27:46 +08:00
* chore: apply go fix modernizers from Go 1.26
automated refactoring: interface{} to any, slices.Contains,
and other idiomatic updates.
* feat(ci): add `go fix` check to Go analysis workflow
ensures Go 1.26 modernizers are applied, fails CI if `go fix ./...`
produces any changes (similar to existing `go fmt` enforcement)
64 lines
1.8 KiB
YAML
64 lines
1.8 KiB
YAML
name: Go Check
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
pull_request:
|
|
paths-ignore:
|
|
- '**/*.md'
|
|
push:
|
|
branches:
|
|
- 'master'
|
|
|
|
permissions:
|
|
contents: read # to fetch code (actions/checkout)
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event_name == 'push' && github.sha || github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
go-check:
|
|
if: github.repository == 'ipfs/kubo' || github.event_name == 'workflow_dispatch'
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 10
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
with:
|
|
submodules: recursive
|
|
- uses: actions/setup-go@v6
|
|
with:
|
|
go-version-file: 'go.mod'
|
|
- name: Check that go.mod is tidy
|
|
uses: protocol/multiple-go-modules@v1.4
|
|
with:
|
|
run: |
|
|
go mod tidy
|
|
if [[ -n $(git ls-files --other --exclude-standard --directory -- go.sum) ]]; then
|
|
echo "go.sum was added by go mod tidy"
|
|
exit 1
|
|
fi
|
|
git diff --exit-code -- go.sum go.mod
|
|
- name: go fmt
|
|
if: always() # run this step even if the previous one failed
|
|
run: |
|
|
out=$(go fmt ./...)
|
|
if [[ -n "$out" ]]; then
|
|
echo "Files are not go-fmt-ed:"
|
|
echo "$out"
|
|
exit 1
|
|
fi
|
|
- name: go fix
|
|
if: always() # run this step even if the previous one failed
|
|
run: |
|
|
go fix ./...
|
|
if [[ -n $(git diff --name-only) ]]; then
|
|
echo "go fix produced changes. Run 'go fix ./...' locally and commit the result."
|
|
git diff
|
|
exit 1
|
|
fi
|
|
- name: go vet
|
|
if: always() # run this step even if the previous one failed
|
|
uses: protocol/multiple-go-modules@v1.4
|
|
with:
|
|
run: go vet ./...
|