mirror of
https://github.com/jimeh/rands.git
synced 2026-02-19 11:26:38 +00:00
140 lines
3.8 KiB
YAML
140 lines
3.8 KiB
YAML
---
|
|
name: CI
|
|
on: [push]
|
|
|
|
jobs:
|
|
lint:
|
|
name: Lint
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: golangci-lint
|
|
uses: golangci/golangci-lint-action@v2
|
|
with:
|
|
version: v1.35
|
|
env:
|
|
VERBOSE: "true"
|
|
|
|
tidy:
|
|
name: Tidy
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-go@v2
|
|
with:
|
|
go-version: 1.15
|
|
- uses: actions/cache@v2
|
|
with:
|
|
path: ~/go/pkg/mod
|
|
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-go-
|
|
- name: Check if mods are tidy
|
|
run: make check-tidy
|
|
|
|
benchmark:
|
|
name: Benchmarks
|
|
runs-on: ubuntu-latest
|
|
if: github.ref != 'refs/heads/master'
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-go@v2
|
|
with:
|
|
go-version: 1.15
|
|
- uses: actions/cache@v2
|
|
with:
|
|
path: ~/go/pkg/mod
|
|
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-go-
|
|
- name: Run benchmarks
|
|
run: make bench | tee output.raw
|
|
- name: Fix benchmark names
|
|
run: >-
|
|
perl -pe 's/^(Benchmark.+?)\/(\S+)(-\d+)(\s+)/\1__\2\4/' output.raw |
|
|
tr '-' '_' | tee output.txt
|
|
- name: Announce benchmark result
|
|
uses: rhysd/github-action-benchmark@v1
|
|
with:
|
|
tool: "go"
|
|
output-file-path: output.txt
|
|
fail-on-alert: true
|
|
comment-on-alert: true
|
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
auto-push: false
|
|
|
|
cov:
|
|
name: Coverage
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-go@v2
|
|
with:
|
|
go-version: 1.15
|
|
- uses: actions/cache@v2
|
|
with:
|
|
path: ~/go/pkg/mod
|
|
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-go-
|
|
- name: Publish coverage
|
|
uses: paambaati/codeclimate-action@v2.7.4
|
|
env:
|
|
VERBOSE: "true"
|
|
GOMAXPROCS: 4
|
|
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
|
|
with:
|
|
coverageCommand: make cov
|
|
prefix: github.com/${{ github.repository }}
|
|
coverageLocations: |
|
|
${{ github.workspace }}/coverage.out:gocov
|
|
|
|
test:
|
|
name: Test
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-go@v2
|
|
with:
|
|
go-version: 1.15
|
|
- uses: actions/cache@v2
|
|
with:
|
|
path: ~/go/pkg/mod
|
|
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-go-
|
|
- name: Run tests
|
|
run: make test
|
|
env:
|
|
VERBOSE: "true"
|
|
|
|
benchmark-store:
|
|
name: Store benchmarks
|
|
runs-on: ubuntu-latest
|
|
if: github.ref == 'refs/heads/master'
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-go@v2
|
|
with:
|
|
go-version: 1.15
|
|
- uses: actions/cache@v2
|
|
with:
|
|
path: ~/go/pkg/mod
|
|
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-go-
|
|
- name: Run benchmarks
|
|
run: make bench | tee output.raw
|
|
- name: Fix benchmark names
|
|
run: >-
|
|
perl -pe 's/^(Benchmark.+?)\/(\S+)(-\d+)(\s+)/\1__\2\4/' output.raw |
|
|
tr '-' '_' | tee output.txt
|
|
- name: Store benchmark result
|
|
uses: rhysd/github-action-benchmark@v1
|
|
with:
|
|
tool: "go"
|
|
output-file-path: output.txt
|
|
github-token: ${{ secrets.GH_PUSH_TOKEN }}
|
|
comment-on-alert: true
|
|
auto-push: true
|