Independent review (second attempt) passed all 7 verification steps at
19f6007, including the fresh-clone embed check, full build from clean
state (9.7s), server curl matrix (public 200, protected + all theme
sidecars 503, searchindex 404, no content in 503 bodies), and just check.
Findings applied:
- README: prerequisite Go version corrected to 1.27.1+ to match go.mod
(a Go 1.22-1.27 user got a hard 'requires go >= 1.27.1' failure).
- CI: upload-artifact v3 -> v4 with a fallback note for older runners;
CI now also runs the gofmt guard like 'just check'.
- Justfile: curl -fsSL so a bad download fails at curl instead of tar;
comment clarifying that --dest-dir is resolved relative to docs/.
- AGENT.md: version-pairing trap now covers both pin locations
(Justfile and .gitea/workflows/build.yml).
49 lines
1.5 KiB
YAML
49 lines
1.5 KiB
YAML
name: build
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v5
|
|
with:
|
|
go-version-file: go.mod
|
|
|
|
# shiroa bundles its own Typst compiler, so no separate typst install.
|
|
- name: Install shiroa
|
|
run: |
|
|
curl -sSL -o /tmp/shiroa.tar.gz \
|
|
https://github.com/Myriad-Dreamin/shiroa/releases/download/v0.4.0-rc2/shiroa-x86_64-unknown-linux-musl.tar.gz
|
|
tar -xzf /tmp/shiroa.tar.gz -C /tmp
|
|
install -m 755 /tmp/shiroa-x86_64-unknown-linux-musl/shiroa /usr/local/bin/shiroa
|
|
shiroa --version
|
|
|
|
- name: Generate acl.json
|
|
run: go run ./cmd/parser -in docs -out acl.json
|
|
|
|
- name: Build the book
|
|
run: shiroa build docs --dest-dir ../dist
|
|
|
|
- name: Test and build the server
|
|
run: |
|
|
go vet ./...
|
|
go test ./...
|
|
test -z "$(gofmt -l cmd internal embed.go)" || { echo 'gofmt needed:'; gofmt -l cmd internal embed.go; exit 1; }
|
|
CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o yggdrasil-server ./cmd/server
|
|
|
|
# upload-artifact v4 needs a reasonably current Gitea/act_runner;
|
|
# fall back to v3 if your runner is too old to serve v4 artifacts.
|
|
- name: Upload server artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: yggdrasil-server-linux-amd64
|
|
path: yggdrasil-server
|