fix: update practices from deprecated ioutil to io #14163
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Go | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
env: | |
GOTOOLCHAIN: local | |
jobs: | |
# Split build and lint into a few different jobs so they can run in parallel. | |
build: | |
name: Build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 'stable' | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Build code | |
# Use find to build all modules. '-execdir ... ;' doesn't set an exit code | |
# based on command results. So, create a file if a build fails and check | |
# if the file exists to set the right exit code. | |
run: | | |
ROOT_DIR=$(pwd) \ | |
find . -name go.mod -execdir sh -c 'go build ./... || touch $ROOT_DIR/build_failed.txt' \; ; \ | |
test ! -f build_failed.txt | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 'stable' | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
# #4374 Pin goimports at v0.22.0 | |
- name: Install goimports | |
run: go install golang.org/x/tools/cmd/[email protected] | |
- run: goimports -w . | |
- name: Run go mod tidy on all modules | |
run: find . -name go.mod -execdir go mod tidy \; | |
- name: Remove any toolchain lines | |
run: find . -name go.mod -execdir go get toolchain@none \; | |
# If there are any diffs from goimports or go mod tidy, fail. | |
- name: Verify no changes from goimports and go mod tidy. | |
run: | | |
if [ -n "$(git status --porcelain)" ]; then | |
echo 'To fix this check, run "goimports -w . && find . -name go.mod -execdir go mod tidy \;"' | |
git status # Show the files that failed to pass the check. | |
exit 1 | |
fi | |
- name: shellcheck | |
run: find . -name "*.sh" -exec shellcheck {} \; | |
vet: | |
name: Vet | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 'stable' | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: go vet | |
# Use find to build all modules. '-execdir ... ;' doesn't set an exit code | |
# based on command results. So, create a file if a build fails and check | |
# if the file exists to set the right exit code. | |
run: | | |
ROOT_DIR=$(pwd) \ | |
find . -name go.mod -execdir sh -c 'go vet ./... || touch $ROOT_DIR/vet_failed.txt' \; ; \ | |
test ! -f vet_failed.txt | |
test: | |
name: Root tests | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 'stable' | |
- name: Check code | |
uses: actions/checkout@v2 | |
- run: go test -v |