From 0e55e092073cdfe42997978ab9be0594eac93975 Mon Sep 17 00:00:00 2001 From: ChillerDragon Date: Mon, 24 Jun 2024 12:26:43 +0800 Subject: [PATCH] Compile readme examples in CI --- .github/workflows/main.yml | 13 +++++++++++++ .gitignore | 2 ++ scripts/compile_readme_snippets.sh | 18 ++++++++++++++++++ 3 files changed, 33 insertions(+) create mode 100755 scripts/compile_readme_snippets.sh diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 912ca00..762d83d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -20,6 +20,19 @@ jobs: - name: Build run: go build -v ./... + build-readme: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version: '1.22' + + - name: Build go snippets in readme + run: ./scripts/compile_readme_snippets.sh + test: runs-on: ubuntu-latest steps: diff --git a/.gitignore b/.gitignore index 3113b5e..71a7814 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +tmp/ + teeworlds_client teeworlds go-teeworlds-protocol diff --git a/scripts/compile_readme_snippets.sh b/scripts/compile_readme_snippets.sh new file mode 100755 index 0000000..02f0e52 --- /dev/null +++ b/scripts/compile_readme_snippets.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +mkdir -p tmp +awk '/^```go$/ {p=1}; p; /^```$/ {p=0;print"--- --- ---"}' README.md | + grep -vE '^```(go)?$' | + csplit \ + -z -s -\ + '/--- --- ---/' \ + '{*}' \ + --suppress-matched \ + -f tmp/readme_snippet_ -b '%02d.go' + +for snippet in ./tmp/readme_snippet_*.go +do + echo "building $snippet ..." + go build -v "$snippet" || exit 1 +done +