diff --git a/.github/workflows/bench.yml b/.github/workflows/bench.yml new file mode 100644 index 0000000..ac6fa77 --- /dev/null +++ b/.github/workflows/bench.yml @@ -0,0 +1,34 @@ +name: go continuous benchmark +on: + push: + branches: + - main + +permissions: + contents: write + deployments: write + +jobs: + benchmark: + name: Run Go continuous benchmark + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version: "stable" + - name: Run benchmark + run: go test -v ./... -bench=. -run=xxx -benchmem | tee output.txt + + - name: Store benchmark result + uses: benchmark-action/github-action-benchmark@v1 + with: + name: Go Benchmark + tool: 'go' + output-file-path: output.txt + github-token: ${{ secrets.GITHUB_TOKEN }} + # Push and deploy GitHub pages branch automatically + auto-push: true + # Show alert with commit comment on detecting possible performance regression + alert-threshold: '200%' + comment-on-alert: true diff --git a/.github/workflows/gotest.yml b/.github/workflows/gotest.yml new file mode 100644 index 0000000..bbfee95 --- /dev/null +++ b/.github/workflows/gotest.yml @@ -0,0 +1,27 @@ +on: [push, pull_request] +name: Go Test + +jobs: + unit: + strategy: + fail-fast: false + matrix: + os: [ "ubuntu" ] + go: [ "1.22.x", "1.23.x", ] + env: + COVERAGES: "" + runs-on: ${{ matrix.os }}-latest + name: ${{ matrix.os}} (go ${{ matrix.go }}) + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version: ${{ matrix.go }} + - name: Go information + run: | + go version + go env + - name: Run tests + run: go test -v ./... + - name: Check formatted + run: gofmt -l . \ No newline at end of file