🔀 合并远程更改并解决冲突 #18
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Go Tests and Examples | |
on: | |
push: | |
pull_request: | |
branches: [ main, master ] | |
jobs: | |
setup: | |
name: 依赖检查和环境准备 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: '1.20' | |
cache: true | |
- name: Check out code | |
uses: actions/checkout@v3 | |
- name: Get dependencies | |
run: go mod download | |
unit-tests: | |
name: 单元测试 | |
needs: setup | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: '1.20' | |
cache: true | |
- name: Check out code | |
uses: actions/checkout@v3 | |
- name: Get dependencies | |
run: go mod download | |
- name: Run unit tests | |
run: go test -v ./... | |
build-examples: | |
name: 示例构建 | |
needs: setup | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: '1.20' | |
cache: true | |
- name: Check out code | |
uses: actions/checkout@v3 | |
- name: Get dependencies | |
run: go mod download | |
- name: Build examples | |
run: | | |
cd examples | |
for dir in */; do | |
if [ -d "$dir" ]; then | |
dir=${dir%/} # 移除末尾的斜杠 | |
echo "Building example: $dir" | |
cd "$dir" | |
go build -v -o "$dir" | |
cd .. | |
fi | |
done | |
run-examples: | |
name: 示例运行 | |
needs: build-examples | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: '1.20' | |
cache: true | |
- name: Check out code | |
uses: actions/checkout@v3 | |
- name: Get dependencies | |
run: go mod download | |
- name: Build and run examples | |
run: | | |
cd examples | |
for dir in */; do | |
if [ -d "$dir" ]; then | |
dir=${dir%/} # 移除末尾的斜杠 | |
echo "Building and running example: $dir" | |
cd "$dir" | |
# 构建二进制文件 | |
go build -v -o "$dir" | |
# 检查二进制文件是否存在并运行 | |
if [ -f "$dir" ]; then | |
echo "Running example: $dir" | |
timeout 30s ./"$dir" || echo "Example $dir timed out or failed with exit code $?" | |
else | |
echo "Warning: Binary not created for $dir" | |
fi | |
cd .. | |
fi | |
done |