mirror of
https://github.com/labstack/echo.git
synced 2024-12-24 20:14:31 +02:00
5b9bbbd356
The GitHub action runs all the benchmarks for the target branch, and the compares those values with the benchmarks results for the PR new code.
117 lines
2.9 KiB
YAML
117 lines
2.9 KiB
YAML
name: Run Tests
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
paths:
|
|
- '**.go'
|
|
- 'go.*'
|
|
- '_fixture/**'
|
|
- '.github/**'
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
paths:
|
|
- '**.go'
|
|
- 'go.*'
|
|
- '_fixture/**'
|
|
- '.github/**'
|
|
|
|
jobs:
|
|
test:
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
go: [1.12, 1.13, 1.14, 1.15]
|
|
name: ${{ matrix.os }} @ Go ${{ matrix.go }}
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Set up Go ${{ matrix.go }}
|
|
uses: actions/setup-go@v1
|
|
with:
|
|
go-version: ${{ matrix.go }}
|
|
|
|
- name: Set GOPATH and PATH
|
|
run: |
|
|
echo "GOPATH=$(dirname $GITHUB_WORKSPACE)" >> $GITHUB_ENV
|
|
echo "$(dirname $GITHUB_WORKSPACE)/bin" >> $GITHUB_PATH
|
|
shell: bash
|
|
|
|
- name: Set build variables
|
|
run: |
|
|
echo "GOPROXY=https://proxy.golang.org" >> $GITHUB_ENV
|
|
echo "GO111MODULE=on" >> $GITHUB_ENV
|
|
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v1
|
|
with:
|
|
ref: ${{ github.ref }}
|
|
|
|
- name: Install Dependencies
|
|
run: go get -v golang.org/x/lint/golint
|
|
|
|
- name: Run Tests
|
|
run: |
|
|
golint -set_exit_status ./...
|
|
go test -race --coverprofile=coverage.coverprofile --covermode=atomic ./...
|
|
|
|
- name: Upload coverage to Codecov
|
|
if: success() && matrix.go == 1.13 && matrix.os == 'ubuntu-latest'
|
|
uses: codecov/codecov-action@v1
|
|
with:
|
|
token:
|
|
fail_ci_if_error: false
|
|
benchmark:
|
|
needs: test
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest]
|
|
go: [1.15]
|
|
name: Benchmark comparison ${{ matrix.os }} @ Go ${{ matrix.go }}
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Set up Go ${{ matrix.go }}
|
|
uses: actions/setup-go@v1
|
|
with:
|
|
go-version: ${{ matrix.go }}
|
|
|
|
- name: Set GOPATH and PATH
|
|
run: |
|
|
echo "GOPATH=$(dirname $GITHUB_WORKSPACE)" >> $GITHUB_ENV
|
|
echo "$(dirname $GITHUB_WORKSPACE)/bin" >> $GITHUB_PATH
|
|
shell: bash
|
|
|
|
- name: Set build variables
|
|
run: |
|
|
echo "GOPROXY=https://proxy.golang.org" >> $GITHUB_ENV
|
|
echo "GO111MODULE=on" >> $GITHUB_ENV
|
|
|
|
- name: Checkout Code (Previous)
|
|
uses: actions/checkout@v2
|
|
with:
|
|
ref: ${{ github.base_ref }}
|
|
path: previous
|
|
|
|
- name: Checkout Code (New)
|
|
uses: actions/checkout@v2
|
|
with:
|
|
path: new
|
|
|
|
- name: Install Dependencies
|
|
run: go get -v golang.org/x/perf/cmd/benchstat
|
|
|
|
- name: Run Benchmark (Previous)
|
|
run: |
|
|
cd previous
|
|
go test -run="-" -bench=".*" -count=5 ./... > benchmark.txt
|
|
|
|
- name: Run Benchmark (New)
|
|
run: |
|
|
cd new
|
|
go test -run="-" -bench=".*" -count=5 ./... > benchmark.txt
|
|
|
|
- name: Run Benchstat
|
|
run: |
|
|
benchstat previous/benchmark.txt new/benchmark.txt
|