Files
go-toml/.github/workflows/go.yml
T
2019-09-09 19:44:45 -07:00

81 lines
2.2 KiB
YAML

name: Go
on: [push]
jobs:
test:
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
go: ['1.12', '1.13']
runs-on: ${{ matrix.os }}
name: Test Go ${{ matrix.go }} on ${{ matrix.os }}
steps:
- uses: pelletier/setup-go@v1.0.2-patch
with:
go-version: ${{ matrix.go }}
- uses: actions/checkout@v1
- run: go test ./...
coverage:
name: Coverage
runs-on: ubuntu-latest
steps:
- uses: pelletier/setup-go@v1.0.2-patch
with:
go-version: '1.12'
- uses: actions/checkout@v1
- run: go test -race -coverprofile=coverage.txt -covermode=atomic
- run: bash <(curl -s https://codecov.io/bash)
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
fmt:
name: Go fmt
runs-on: ubuntu-latest
steps:
- uses: pelletier/setup-go@v1.0.2-patch
- uses: actions/checkout@v1
- run: go fmt ./...
benchmark:
name: Run benchmark
runs-on: ubuntu-latest
steps:
- uses: pelletier/setup-go@v1.0.2-patch
with:
go-version: '1.13'
- uses: actions/checkout@v1
- run: ./benchmark.sh master https://github.com/$GITHUB_REPOSITORY.git
fuzzing:
name: Run fuzzing
runs-on: ubuntu-latest
steps:
- uses: pelletier/setup-go@v1.0.2-patch
with:
go-version: '1.13'
- uses: actions/checkout@v1
- run: mkdir -p /home/runner/go/src/github.com/pelletier/go-toml
| cp -R . /home/runner/go/src/github.com/pelletier/go-toml
- run: ./fuzzit.sh
env:
TYPE: local-regression
docker:
name: Build Docker image
runs-on: ubuntu-latest
needs: [test, fuzzing, fmt]
steps:
- uses: actions/setup-go@v1
with:
go-version: '1.13'
- uses: actions/checkout@v1
- run: docker build -t toml .
- uses: actions/docker/tag@master
with:
args: toml pelletier/go-toml
- run: docker tag pelletier/go-toml pelletier/go-toml:latest
if: github.ref == 'heads/refs/master'
- name: Docker login
run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin
- run: docker push pelletier/go-toml