Add build script, AGENTS.md, fix formatting
Build and Deploy / build-and-deploy (push) Successful in 44s
Build and Deploy / build-and-deploy (push) Successful in 44s
- scripts/build: gofmt, go vet, go build, docker build - AGENTS.md: agents must run ./scripts/build before committing - Fix gofmt issues in handler/auth.go and store/store.go
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
# Agent Instructions
|
||||
|
||||
## Before Committing
|
||||
|
||||
Always run the build script before committing any code changes:
|
||||
|
||||
```sh
|
||||
./scripts/build
|
||||
```
|
||||
|
||||
This runs:
|
||||
- `gofmt` check (unformatted code is a hard failure)
|
||||
- `go vet`
|
||||
- `go build`
|
||||
- `docker build`
|
||||
|
||||
Fix every error and warning before proceeding to commit. If `gofmt` reports
|
||||
unformatted files, run `gofmt -w .` and re-check.
|
||||
|
||||
## Commit Messages
|
||||
|
||||
Use concise, descriptive commit messages in imperative mood. Keep the first line
|
||||
under 72 characters.
|
||||
@@ -136,6 +136,7 @@ func (h *AuthHandler) ServeSignout(w http.ResponseWriter, r *http.Request) {
|
||||
})
|
||||
http.Redirect(w, r, "/signin", http.StatusSeeOther)
|
||||
}
|
||||
|
||||
type contextKey string
|
||||
|
||||
const userIDKey contextKey = "userID"
|
||||
|
||||
Executable
+29
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
cd "$(dirname "$0")/.."
|
||||
|
||||
echo "==> gofmt check"
|
||||
unformatted=$(gofmt -l .)
|
||||
if [ -n "$unformatted" ]; then
|
||||
echo "Unformatted files:"
|
||||
echo "$unformatted"
|
||||
gofmt -d .
|
||||
echo "Run: gofmt -w ."
|
||||
exit 1
|
||||
fi
|
||||
echo " ok"
|
||||
|
||||
echo "==> go vet"
|
||||
go vet ./...
|
||||
echo " ok"
|
||||
|
||||
echo "==> go build"
|
||||
CGO_ENABLED=0 go build -o podstalk .
|
||||
echo " ok"
|
||||
|
||||
echo "==> docker build"
|
||||
docker build -t podstalk .
|
||||
echo " ok"
|
||||
|
||||
echo "==> all checks passed"
|
||||
+7
-7
@@ -8,13 +8,13 @@ import (
|
||||
)
|
||||
|
||||
type User struct {
|
||||
ID int64
|
||||
Email string
|
||||
PasswordHash string
|
||||
PodcastTitle string
|
||||
PodcastImage string
|
||||
PodcastAuthor string
|
||||
CreatedAt time.Time
|
||||
ID int64
|
||||
Email string
|
||||
PasswordHash string
|
||||
PodcastTitle string
|
||||
PodcastImage string
|
||||
PodcastAuthor string
|
||||
CreatedAt time.Time
|
||||
}
|
||||
|
||||
type Episode struct {
|
||||
|
||||
Reference in New Issue
Block a user