diff --git a/.github/workflows/badge.jpg b/.github/workflows/badge.jpg new file mode 100644 index 0000000000..1a6d2f25ea Binary files /dev/null and b/.github/workflows/badge.jpg differ diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000000..f35d66b229 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,28 @@ +name: ci + +on: + pull_request: + branches: [main] + +jobs: + tests: + name: Tests + runs-on: ubuntu-latest + + steps: + - name: Check out code + uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: "1.23.0" + + - name: Install staticcheck + run: go install honnef.co/go/tools/cmd/staticcheck@latest + + - name: Run staticcheck + run: $(go env GOPATH)/bin/staticcheck ./... + + - name: Run unit tests + run: go test ./... diff --git a/README.md b/README.md index c2bec0368b..b1f5e00be0 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +![CI Status](https://github.com/Dhruva430/learn-cicd-starter/actions/workflows/ci.yml/badge.jpg) + # learn-cicd-starter (Notely) This repo contains the starter code for the "Notely" application for the "Learn CICD" course on [Boot.dev](https://boot.dev). @@ -18,6 +20,11 @@ Run the server: go build -o notely && ./notely ``` -*This starts the server in non-database mode.* It will serve a simple webpage at `http://localhost:8080`. +_This starts the server in non-database mode._ It will serve a simple webpage at `http://localhost:8080`. + +You do _not_ need to set up a database or any interactivity on the webpage yet. Instructions for that will come later in the course! -You do *not* need to set up a database or any interactivity on the webpage yet. Instructions for that will come later in the course! +``` +Testing Guide -- https://dave.cheney.net/2019/05/07/prefer-table-driven-tests +Testing Flags -- https://pkg.go.dev/cmd/go#hdr-Testing_flags +``` diff --git a/c.out b/c.out new file mode 100644 index 0000000000..79c2a489b7 --- /dev/null +++ b/c.out @@ -0,0 +1,78 @@ +mode: set +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:12.99,14.16 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:14.16,17.3 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:19.2,20.16 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:20.16,23.3 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:25.2,25.46 1 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:28.102,35.16 5 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:35.16,38.3 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:40.2,48.16 3 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:48.16,51.3 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:53.2,54.16 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:54.16,57.3 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:59.2,60.16 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:60.16,63.3 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_notes.go:65.2,65.50 1 0 +github.com/bootdotdev/learn-cicd-starter/handler_ready.go:5.63,7.2 1 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:15.82,22.16 5 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:22.16,25.3 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:27.2,28.16 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:28.16,31.3 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:33.2,40.16 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:40.16,43.3 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:45.2,46.16 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:46.16,49.3 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:51.2,52.16 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:52.16,55.3 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:56.2,56.50 1 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:59.49,62.16 3 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:62.16,64.3 1 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:65.2,67.24 3 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:70.99,73.16 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:73.16,76.3 2 0 +github.com/bootdotdev/learn-cicd-starter/handler_user.go:78.2,78.45 1 0 +github.com/bootdotdev/learn-cicd-starter/json.go:9.82,10.19 1 0 +github.com/bootdotdev/learn-cicd-starter/json.go:10.19,12.3 1 0 +github.com/bootdotdev/learn-cicd-starter/json.go:13.2,13.16 1 0 +github.com/bootdotdev/learn-cicd-starter/json.go:13.16,15.3 1 0 +github.com/bootdotdev/learn-cicd-starter/json.go:16.2,21.4 2 0 +github.com/bootdotdev/learn-cicd-starter/json.go:24.76,27.16 3 0 +github.com/bootdotdev/learn-cicd-starter/json.go:27.16,31.3 3 0 +github.com/bootdotdev/learn-cicd-starter/json.go:32.2,33.14 2 0 +github.com/bootdotdev/learn-cicd-starter/main.go:27.13,29.16 2 0 +github.com/bootdotdev/learn-cicd-starter/main.go:29.16,31.3 1 0 +github.com/bootdotdev/learn-cicd-starter/main.go:33.2,34.16 2 0 +github.com/bootdotdev/learn-cicd-starter/main.go:34.16,36.3 1 0 +github.com/bootdotdev/learn-cicd-starter/main.go:38.2,43.17 3 0 +github.com/bootdotdev/learn-cicd-starter/main.go:43.17,46.3 2 0 +github.com/bootdotdev/learn-cicd-starter/main.go:46.8,48.17 2 0 +github.com/bootdotdev/learn-cicd-starter/main.go:48.17,50.4 1 0 +github.com/bootdotdev/learn-cicd-starter/main.go:51.3,53.40 3 0 +github.com/bootdotdev/learn-cicd-starter/main.go:56.2,67.63 3 0 +github.com/bootdotdev/learn-cicd-starter/main.go:67.63,69.17 2 0 +github.com/bootdotdev/learn-cicd-starter/main.go:69.17,72.4 2 0 +github.com/bootdotdev/learn-cicd-starter/main.go:73.3,74.42 2 0 +github.com/bootdotdev/learn-cicd-starter/main.go:74.42,76.4 1 0 +github.com/bootdotdev/learn-cicd-starter/main.go:79.2,81.22 2 0 +github.com/bootdotdev/learn-cicd-starter/main.go:81.22,86.3 4 0 +github.com/bootdotdev/learn-cicd-starter/main.go:88.2,97.33 5 0 +github.com/bootdotdev/learn-cicd-starter/middleware_auth.go:12.78,13.54 1 0 +github.com/bootdotdev/learn-cicd-starter/middleware_auth.go:13.54,15.17 2 0 +github.com/bootdotdev/learn-cicd-starter/middleware_auth.go:15.17,18.4 2 0 +github.com/bootdotdev/learn-cicd-starter/middleware_auth.go:20.3,21.17 2 0 +github.com/bootdotdev/learn-cicd-starter/middleware_auth.go:21.17,24.4 2 0 +github.com/bootdotdev/learn-cicd-starter/middleware_auth.go:26.3,26.22 1 0 +github.com/bootdotdev/learn-cicd-starter/models.go:17.59,19.16 2 0 +github.com/bootdotdev/learn-cicd-starter/models.go:19.16,21.3 1 0 +github.com/bootdotdev/learn-cicd-starter/models.go:23.2,24.16 2 0 +github.com/bootdotdev/learn-cicd-starter/models.go:24.16,26.3 1 0 +github.com/bootdotdev/learn-cicd-starter/models.go:27.2,33.8 1 0 +github.com/bootdotdev/learn-cicd-starter/models.go:44.59,46.16 2 0 +github.com/bootdotdev/learn-cicd-starter/models.go:46.16,48.3 1 0 +github.com/bootdotdev/learn-cicd-starter/models.go:50.2,51.16 2 0 +github.com/bootdotdev/learn-cicd-starter/models.go:51.16,53.3 1 0 +github.com/bootdotdev/learn-cicd-starter/models.go:54.2,60.8 1 0 +github.com/bootdotdev/learn-cicd-starter/models.go:63.66,65.29 2 0 +github.com/bootdotdev/learn-cicd-starter/models.go:65.29,68.17 3 0 +github.com/bootdotdev/learn-cicd-starter/models.go:68.17,70.4 1 0 +github.com/bootdotdev/learn-cicd-starter/models.go:73.2,73.20 1 0 diff --git a/main.go b/main.go index 19d7366c5f..04207443ce 100644 --- a/main.go +++ b/main.go @@ -96,3 +96,7 @@ func main() { log.Printf("Serving on port: %s\n", port) log.Fatal(srv.ListenAndServe()) } + +func unused() { + +} diff --git a/split/c.out b/split/c.out new file mode 100644 index 0000000000..5f02b11199 --- /dev/null +++ b/split/c.out @@ -0,0 +1 @@ +mode: set diff --git a/split/split_test.go b/split/split_test.go new file mode 100644 index 0000000000..bbdda82734 --- /dev/null +++ b/split/split_test.go @@ -0,0 +1,26 @@ +package split + +import ( + "reflect" + "strings" + "testing" +) + +func TestSplit(t *testing.T) { + got := Split("a/b/c", "/") + want := []string{"a", "b", "c"} + if !reflect.DeepEqual(want, got) { + t.Fatalf("expected: %v, got: %v", want, got) + } +} + +func Split(s, sep string) []string { + var result []string + i := strings.Index(s, sep) + for i > -1 { + result = append(result, s[:i]) + s = s[i+len(sep):] + i = strings.Index(s, sep) + } + return append(result, s) +}