name: Tests ยท Go # Fast unit tests for the Go side of the monorepo. Runs on every push and pull # request whose path filter matches a Go source directory. The module list # grows as new go.work modules (gateway, pkg/*, platform/*) are added by later # stages. on: push: paths: - 'backend/**' - 'go.work' - 'go.work.sum' - '.gitea/workflows/go-unit.yaml' - '!**/*.md' pull_request: paths: - 'backend/**' - 'go.work' - 'go.work.sum' - '.gitea/workflows/go-unit.yaml' - '!**/*.md' jobs: test: runs-on: ubuntu-latest defaults: run: shell: bash steps: - name: Checkout uses: actions/checkout@v4 - name: Fetch scrabble-solver (sibling) # The engine package consumes scrabble-solver in-process; go.work points # its bare module path at this sibling checkout. The repository is public, # so the clone needs no credentials. It tracks master HEAD (see PLAN.md # TODO-1 for the move to a published, versioned module). run: git clone --depth 1 https://gitea.iliadenisov.ru/developer/scrabble-solver.git "${GITHUB_WORKSPACE}/../scrabble-solver" - name: Set up Go uses: actions/setup-go@v5 with: go-version-file: go.work cache: true - name: gofmt run: | unformatted="$(gofmt -l .)" if [ -n "$unformatted" ]; then echo "gofmt needed on:"; echo "$unformatted"; exit 1 fi - name: vet run: go vet ./backend/... - name: build run: go build ./backend/... - name: test # -count=1 disables the test cache so a green run never depends on a # previous runner's cached state. BACKEND_DICT_DIR points the engine # tests at the committed DAWGs in the sibling checkout. env: BACKEND_DICT_DIR: ${{ github.workspace }}/../scrabble-solver/dawg run: go test -count=1 ./backend/...