name: build # Validation gate: rebuilds the three dictionary DAWGs on every push/PR and checks they are # non-empty. The build pins the published scrabble-solver builders (GOPRIVATE -> direct VCS # fetch from this Gitea), so the on-disk format and letter indexing match the running backend # exactly. Release artifacts (scrabble-dawg-.tar.gz attached to the Gitea release) are # published from this output; see README.md. Inlined go run (no make/python dependency on the # runner). on: push: branches: [master] pull_request: branches: [master] jobs: dawg: runs-on: ubuntu-latest defaults: run: shell: bash env: GOPRIVATE: gitea.iliadenisov.ru/* steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version-file: go.mod cache: true - name: Build DAWGs run: | mkdir -p dawg go run ./cmd/builddict -dict sources/scrabble_en/sowpods.txt -alphabet latin -name en_sowpods -out dawg go run ./cmd/builddict -dict sources/scrabble_ru/scrabble.txt -alphabet russian -name ru_scrabble -out dawg go run ./cmd/builddict -dict sources/erudit_ru/erudit.txt -alphabet russian -name ru_erudit -out dawg ls -la dawg/ for f in en_sowpods ru_scrabble ru_erudit; do test -s "dawg/$f.dawg" || { echo "missing dawg/$f.dawg"; exit 1; } done