From 7b8fee5aa22619ee140b111a538918a1548b5b15 Mon Sep 17 00:00:00 2001 From: Mike Landau Date: Mon, 2 Oct 2023 10:02:37 -0700 Subject: [PATCH 1/7] [gofumpt] Move CICD code to workflow --- .github/workflows/cli-tests.yaml | 2 +- .golangci.yml | 2 +- devbox.json | 11 ----------- 3 files changed, 2 insertions(+), 13 deletions(-) diff --git a/.github/workflows/cli-tests.yaml b/.github/workflows/cli-tests.yaml index c96981c5609..dd951dce82c 100644 --- a/.github/workflows/cli-tests.yaml +++ b/.github/workflows/cli-tests.yaml @@ -64,7 +64,7 @@ jobs: - uses: actions/setup-go@v4 with: go-version-file: ./go.mod - - run: go run ./cmd/devbox run fmt + - run: go run ./cmd/devbox run fmt && git diff --exit-code - name: golangci-lint uses: golangci/golangci-lint-action@v3.7.0 with: diff --git a/.golangci.yml b/.golangci.yml index c141fde60e9..b23e5bda016 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,5 +1,5 @@ run: - go: "1.20" + go: "1.21" linters: disable-all: true enable: diff --git a/devbox.json b/devbox.json index 9e224de0a45..664a22e12fb 100644 --- a/devbox.json +++ b/devbox.json @@ -25,17 +25,6 @@ "mkdir -p dist/tools", "export GOBIN=\"$PWD/dist/tools\"", "go install mvdan.cc/gofumpt@latest", - "if [ -n \"${CI:-}\" ]; then", - " unformatted=\"$(find . -name '*.go' -exec \"$GOBIN/gofumpt\" -l {} \\+ | awk '{ print \"\t\" $0 }')\"", - " if [ -n \"$unformatted\" ]; then", - " echo 'The following files need to be formatted with gofumpt:'", - " echo", - " echo \"$unformatted\"", - " echo", - " echo 'Run `devbox run fmt` to format them.'", - " exit 1", - " fi", - "fi", "find . -name '*.go' -exec \"$GOBIN/gofumpt\" -extra -w {} \\+" ], "test": "go test -race -cover ./...", From c67b60d5daebe59878988ca82815b35ec8ffc1b6 Mon Sep 17 00:00:00 2001 From: Mike Landau Date: Mon, 2 Oct 2023 10:11:03 -0700 Subject: [PATCH 2/7] Use devbox, add cache --- .github/workflows/cli-tests.yaml | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/.github/workflows/cli-tests.yaml b/.github/workflows/cli-tests.yaml index dd951dce82c..d1b2c8f2abb 100644 --- a/.github/workflows/cli-tests.yaml +++ b/.github/workflows/cli-tests.yaml @@ -64,12 +64,23 @@ jobs: - uses: actions/setup-go@v4 with: go-version-file: ./go.mod - - run: go run ./cmd/devbox run fmt && git diff --exit-code - - name: golangci-lint - uses: golangci/golangci-lint-action@v3.7.0 + + - name: Install devbox + uses: jetpack-io/devbox-install-action@v0.7.0 + with: + enable-cache: true + + - name: Mount golang cache + uses: actions/cache@v3 with: - args: "--out-${NO_FUTURE}format colored-line-number --timeout=10m" - skip-cache: true + path: | + ~/.cache/golangci-lint + ~/.cache/go-build + ~/go/pkg + key: ${{ runner.os }}-${{ hashFiles('go.work.sum') }} + + - run: devbox run fmt && git diff --exit-code + - run: devbox run lint test: strategy: From 59a11ce5a0b0b3dad949161e2ec2e434044df78b Mon Sep 17 00:00:00 2001 From: Mike Landau Date: Mon, 2 Oct 2023 11:39:41 -0700 Subject: [PATCH 3/7] Revert "Use devbox, add cache" This reverts commit c67b60d5daebe59878988ca82815b35ec8ffc1b6. --- .github/workflows/cli-tests.yaml | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/.github/workflows/cli-tests.yaml b/.github/workflows/cli-tests.yaml index d1b2c8f2abb..dd951dce82c 100644 --- a/.github/workflows/cli-tests.yaml +++ b/.github/workflows/cli-tests.yaml @@ -64,23 +64,12 @@ jobs: - uses: actions/setup-go@v4 with: go-version-file: ./go.mod - - - name: Install devbox - uses: jetpack-io/devbox-install-action@v0.7.0 - with: - enable-cache: true - - - name: Mount golang cache - uses: actions/cache@v3 + - run: go run ./cmd/devbox run fmt && git diff --exit-code + - name: golangci-lint + uses: golangci/golangci-lint-action@v3.7.0 with: - path: | - ~/.cache/golangci-lint - ~/.cache/go-build - ~/go/pkg - key: ${{ runner.os }}-${{ hashFiles('go.work.sum') }} - - - run: devbox run fmt && git diff --exit-code - - run: devbox run lint + args: "--out-${NO_FUTURE}format colored-line-number --timeout=10m" + skip-cache: true test: strategy: From 06a81da32a89947071bd20d3411ce000c30d9354 Mon Sep 17 00:00:00 2001 From: Mike Landau Date: Mon, 2 Oct 2023 11:39:58 -0700 Subject: [PATCH 4/7] Revert "[gofumpt] Move CICD code to workflow" This reverts commit 7b8fee5aa22619ee140b111a538918a1548b5b15. --- .github/workflows/cli-tests.yaml | 2 +- .golangci.yml | 2 +- devbox.json | 11 +++++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cli-tests.yaml b/.github/workflows/cli-tests.yaml index dd951dce82c..c96981c5609 100644 --- a/.github/workflows/cli-tests.yaml +++ b/.github/workflows/cli-tests.yaml @@ -64,7 +64,7 @@ jobs: - uses: actions/setup-go@v4 with: go-version-file: ./go.mod - - run: go run ./cmd/devbox run fmt && git diff --exit-code + - run: go run ./cmd/devbox run fmt - name: golangci-lint uses: golangci/golangci-lint-action@v3.7.0 with: diff --git a/.golangci.yml b/.golangci.yml index b23e5bda016..c141fde60e9 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,5 +1,5 @@ run: - go: "1.21" + go: "1.20" linters: disable-all: true enable: diff --git a/devbox.json b/devbox.json index 664a22e12fb..9e224de0a45 100644 --- a/devbox.json +++ b/devbox.json @@ -25,6 +25,17 @@ "mkdir -p dist/tools", "export GOBIN=\"$PWD/dist/tools\"", "go install mvdan.cc/gofumpt@latest", + "if [ -n \"${CI:-}\" ]; then", + " unformatted=\"$(find . -name '*.go' -exec \"$GOBIN/gofumpt\" -l {} \\+ | awk '{ print \"\t\" $0 }')\"", + " if [ -n \"$unformatted\" ]; then", + " echo 'The following files need to be formatted with gofumpt:'", + " echo", + " echo \"$unformatted\"", + " echo", + " echo 'Run `devbox run fmt` to format them.'", + " exit 1", + " fi", + "fi", "find . -name '*.go' -exec \"$GOBIN/gofumpt\" -extra -w {} \\+" ], "test": "go test -race -cover ./...", From 0d2825d9223d255a215adb5718de918bf9073848 Mon Sep 17 00:00:00 2001 From: Mike Landau Date: Mon, 2 Oct 2023 12:06:18 -0700 Subject: [PATCH 5/7] Use git diff --exit-code --- devbox.json | 18 +----------------- scripts/gofumpt.sh | 11 +++++++++++ 2 files changed, 12 insertions(+), 17 deletions(-) create mode 100755 scripts/gofumpt.sh diff --git a/devbox.json b/devbox.json index 9e224de0a45..15d0d0f50d5 100644 --- a/devbox.json +++ b/devbox.json @@ -21,23 +21,7 @@ ], "code": "code .", "lint": "golangci-lint run", - "fmt": [ - "mkdir -p dist/tools", - "export GOBIN=\"$PWD/dist/tools\"", - "go install mvdan.cc/gofumpt@latest", - "if [ -n \"${CI:-}\" ]; then", - " unformatted=\"$(find . -name '*.go' -exec \"$GOBIN/gofumpt\" -l {} \\+ | awk '{ print \"\t\" $0 }')\"", - " if [ -n \"$unformatted\" ]; then", - " echo 'The following files need to be formatted with gofumpt:'", - " echo", - " echo \"$unformatted\"", - " echo", - " echo 'Run `devbox run fmt` to format them.'", - " exit 1", - " fi", - "fi", - "find . -name '*.go' -exec \"$GOBIN/gofumpt\" -extra -w {} \\+" - ], + "fmt": "scripts/gofumpt.sh", "test": "go test -race -cover ./...", "update-examples": "devbox run build && go run testscripts/testrunner/updater/main.go" } diff --git a/scripts/gofumpt.sh b/scripts/gofumpt.sh new file mode 100755 index 00000000000..69e44a0a1cc --- /dev/null +++ b/scripts/gofumpt.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +mkdir -p dist/tools +export GOBIN="$PWD/dist/tools" +go install mvdan.cc/gofumpt@latest + +find . -name '*.go' -exec "$GOBIN/gofumpt" -extra -w {} \+ + +if [ -n "${CI:-}" ]; then + git diff --exit-code +fi From 96c27bb8012ab79a0a64824e2e6c29c8d9edc0f8 Mon Sep 17 00:00:00 2001 From: Mike Landau Date: Mon, 2 Oct 2023 12:24:43 -0700 Subject: [PATCH 6/7] Add caching --- .github/workflows/cli-tests.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/cli-tests.yaml b/.github/workflows/cli-tests.yaml index c96981c5609..9ac4504f098 100644 --- a/.github/workflows/cli-tests.yaml +++ b/.github/workflows/cli-tests.yaml @@ -64,6 +64,18 @@ jobs: - uses: actions/setup-go@v4 with: go-version-file: ./go.mod + cache: false + + # Cache independently to include golangci-lint files + - name: Mount golang cache + uses: actions/cache@v3 + with: + path: | + ~/.cache/golangci-lint + ~/.cache/go-build + ~/go/pkg + key: go-${{ runner.os }}-${{ hashFiles('go.sum') }} + - run: go run ./cmd/devbox run fmt - name: golangci-lint uses: golangci/golangci-lint-action@v3.7.0 From 3440ec1e36e1719d8e5f1cbff4319e3962d3ca17 Mon Sep 17 00:00:00 2001 From: Mike Landau Date: Mon, 2 Oct 2023 12:33:40 -0700 Subject: [PATCH 7/7] Install devbox via action --- .github/workflows/cli-tests.yaml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cli-tests.yaml b/.github/workflows/cli-tests.yaml index 9ac4504f098..c475f9b2110 100644 --- a/.github/workflows/cli-tests.yaml +++ b/.github/workflows/cli-tests.yaml @@ -61,12 +61,18 @@ jobs: timeout-minutes: 10 steps: - uses: actions/checkout@v3 + + # We can remove this once we fix nix golangci-lint issue and move to devbox - uses: actions/setup-go@v4 with: go-version-file: ./go.mod cache: false - # Cache independently to include golangci-lint files + - name: Install devbox + uses: jetpack-io/devbox-install-action@v0.7.0 + with: + enable-cache: true + - name: Mount golang cache uses: actions/cache@v3 with: @@ -76,7 +82,8 @@ jobs: ~/go/pkg key: go-${{ runner.os }}-${{ hashFiles('go.sum') }} - - run: go run ./cmd/devbox run fmt + - run: devbox run fmt + - name: golangci-lint uses: golangci/golangci-lint-action@v3.7.0 with: