WIP fix: handle assignments to dereferenced pointer values #820
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: lint | |
on: | |
push: | |
branches: [ "master" ] | |
pull_request: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.21.x | |
- name: Lint | |
uses: golangci/golangci-lint-action@v3 | |
with: | |
# sync with misc/devdeps/go.mod | |
version: v1.54 | |
args: | |
--config=./.github/golangci.yml | |
fmt: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.21.x | |
- name: Install make | |
run: sudo apt-get install -y make | |
# prefill dependencies so that mod messages don't show up in make output | |
- name: Fetch dependencies | |
run: go mod download -modfile ./misc/devdeps/go.mod -x | |
# inspired by: | |
# https://github.com/Jerome1337/gofmt-action/blob/d5eabd189843f1d568286a54578159978b7c0fb1/entrypoint.sh | |
- name: Check gofumpt | |
run: | | |
output="$(GOFMT_FLAGS=-l make -s fmt)" | |
if [ ! -z "$output" ]; then | |
echo "The following files are not properly formatted; run 'make fmt' to format them." | |
echo "$output" | |
exit 1 | |
else | |
echo 'Succeeded.' | |
fi | |
mod_tidy_check: | |
runs-on: ubuntu-latest | |
if: ${{ github.actor != 'dependabot[bot]' }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.21.x | |
- name: Check go.mods | |
run: | | |
set -xe | |
# Find all go.mod files | |
gomods=$(find . -type f -name go.mod) | |
# Calculate sums for all go.mod files | |
sums=$(sha256sum $gomods) | |
# Iterate over each go.mod file | |
for modfile in $gomods; do | |
dir=$(dirname "$modfile") | |
# Run go mod tidy in the directory | |
(cd "$dir" && go mod tidy -v) || exit 1 | |
done | |
# Verify the sums | |
echo "$sums" | sha256sum -c |