Set up CI with Azure Pipelines (#304)
This commit is contained in:
@@ -1,24 +0,0 @@
|
||||
name: Fuzzit
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
jobs:
|
||||
fuzzing:
|
||||
name: Run fuzzing
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/setup-go@v1
|
||||
with:
|
||||
go-version: '1.13'
|
||||
- uses: actions/checkout@v1
|
||||
- name: Add GOPATH/bin to PATH
|
||||
run: echo '##[add-path]/home/runner/go/bin'
|
||||
- name: Copy source to GOPATH/src
|
||||
run: mkdir -p ${TARGET} && cp -R . ${TARGET}/
|
||||
env:
|
||||
TARGET: /home/runner/go/src/github.com/pelletier/go-toml
|
||||
- run: ./fuzzit.sh
|
||||
env:
|
||||
TYPE: fuzzing
|
||||
FUZZIT_API_KEY: ${{ secrets.FUZZIT_API_KEY }}
|
||||
@@ -1,80 +0,0 @@
|
||||
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 --no-latest
|
||||
- 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
|
||||
@@ -7,8 +7,7 @@ This library supports TOML version
|
||||
|
||||
[](http://godoc.org/github.com/pelletier/go-toml)
|
||||
[](https://github.com/pelletier/go-toml/blob/master/LICENSE)
|
||||
[](https://travis-ci.org/pelletier/go-toml)
|
||||
[](https://ci.appveyor.com/project/pelletier/go-toml/branch/master)
|
||||
[](https://dev.azure.com/pelletierthomas/go-toml-ci/_build/latest?definitionId=1&branchName=master)
|
||||
[](https://codecov.io/gh/pelletier/go-toml)
|
||||
[](https://goreportcard.com/report/github.com/pelletier/go-toml)
|
||||
[](https://app.fossa.io/projects/git%2Bgithub.com%2Fpelletier%2Fgo-toml?ref=badge_shield)
|
||||
|
||||
@@ -0,0 +1,167 @@
|
||||
trigger:
|
||||
- master
|
||||
|
||||
stages:
|
||||
- stage: fuzzit
|
||||
displayName: "Run Fuzzit"
|
||||
dependsOn: []
|
||||
condition: and(succeeded(), eq(variables['Build.SourceBranchName'], 'master'))
|
||||
jobs:
|
||||
- job: submit
|
||||
displayName: "Submit"
|
||||
pool:
|
||||
vmImage: ubuntu-latest
|
||||
steps:
|
||||
- task: GoTool@0
|
||||
displayName: "Install Go 1.13"
|
||||
inputs:
|
||||
version: "1.13"
|
||||
- script: echo "##vso[task.setvariable variable=PATH]${PATH}:/home/vsts/go/bin/"
|
||||
- script: mkdir -p ${HOME}/go/src/github.com/pelletier/go-toml
|
||||
- script: cp -R . ${HOME}/go/src/github.com/pelletier/go-toml
|
||||
- task: Bash@3
|
||||
inputs:
|
||||
filePath: './fuzzit.sh'
|
||||
env:
|
||||
TYPE: fuzzing
|
||||
FUZZIT_API_KEY: $(FUZZIT_API_KEY)
|
||||
|
||||
- stage: run_checks
|
||||
displayName: "Check"
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- job: fmt
|
||||
displayName: "fmt"
|
||||
pool:
|
||||
vmImage: ubuntu-latest
|
||||
steps:
|
||||
- task: GoTool@0
|
||||
displayName: "Install Go 1.13"
|
||||
inputs:
|
||||
version: "1.13"
|
||||
- task: Go@0
|
||||
displayName: "go fmt ./..."
|
||||
inputs:
|
||||
command: 'custom'
|
||||
customCommand: 'fmt'
|
||||
arguments: './...'
|
||||
- job: coverage
|
||||
displayName: "coverage"
|
||||
pool:
|
||||
vmImage: ubuntu-latest
|
||||
steps:
|
||||
- task: GoTool@0
|
||||
displayName: "Install Go 1.13"
|
||||
inputs:
|
||||
version: "1.13"
|
||||
- task: Go@0
|
||||
displayName: "Generate coverage"
|
||||
inputs:
|
||||
command: 'test'
|
||||
arguments: "-race -coverprofile=coverage.txt -covermode=atomic"
|
||||
- task: Bash@3
|
||||
inputs:
|
||||
targetType: 'inline'
|
||||
script: 'bash <(curl -s https://codecov.io/bash) -t $(CODECOV_TOKEN)'
|
||||
- job: benchmark
|
||||
displayName: "benchmark"
|
||||
pool:
|
||||
vmImage: ubuntu-latest
|
||||
steps:
|
||||
- task: GoTool@0
|
||||
displayName: "Install Go 1.13"
|
||||
inputs:
|
||||
version: "1.13"
|
||||
- script: echo "##vso[task.setvariable variable=PATH]${PATH}:/home/vsts/go/bin/"
|
||||
- task: Bash@3
|
||||
inputs:
|
||||
filePath: './benchmark.sh'
|
||||
arguments: "master $(Build.Repository.Uri)"
|
||||
|
||||
- job: fuzzing
|
||||
displayName: "fuzzing"
|
||||
pool:
|
||||
vmImage: ubuntu-latest
|
||||
steps:
|
||||
- task: GoTool@0
|
||||
displayName: "Install Go 1.13"
|
||||
inputs:
|
||||
version: "1.13"
|
||||
- script: echo "##vso[task.setvariable variable=PATH]${PATH}:/home/vsts/go/bin/"
|
||||
- script: mkdir -p ${HOME}/go/src/github.com/pelletier/go-toml
|
||||
- script: cp -R . ${HOME}/go/src/github.com/pelletier/go-toml
|
||||
- task: Bash@3
|
||||
inputs:
|
||||
filePath: './fuzzit.sh'
|
||||
env:
|
||||
TYPE: local-regression
|
||||
|
||||
- job: go_unit_tests
|
||||
displayName: "unit tests"
|
||||
strategy:
|
||||
matrix:
|
||||
linux 1.13:
|
||||
goVersion: '1.13'
|
||||
imageName: 'ubuntu-latest'
|
||||
mac 1.13:
|
||||
goVersion: '1.13'
|
||||
imageName: 'macos-10.13'
|
||||
windows 1.13:
|
||||
goVersion: '1.13'
|
||||
imageName: 'vs2017-win2016'
|
||||
linux 1.12:
|
||||
goVersion: '1.12'
|
||||
imageName: 'ubuntu-latest'
|
||||
mac 1.12:
|
||||
goVersion: '1.12'
|
||||
imageName: 'macos-10.13'
|
||||
windows 1.12:
|
||||
goVersion: '1.12'
|
||||
imageName: 'vs2017-win2016'
|
||||
pool:
|
||||
vmImage: $(imageName)
|
||||
steps:
|
||||
- task: GoTool@0
|
||||
displayName: "Install Go $(goVersion)"
|
||||
inputs:
|
||||
version: $(goVersion)
|
||||
- task: Go@0
|
||||
displayName: "go test ./..."
|
||||
inputs:
|
||||
command: 'test'
|
||||
arguments: './...'
|
||||
|
||||
- stage: build_docker_image
|
||||
displayName: "Build Docker image"
|
||||
dependsOn: run_checks
|
||||
jobs:
|
||||
- job: build
|
||||
displayName: "Build"
|
||||
pool:
|
||||
vmImage: ubuntu-latest
|
||||
steps:
|
||||
- task: Docker@2
|
||||
inputs:
|
||||
command: 'build'
|
||||
Dockerfile: 'Dockerfile'
|
||||
buildContext: '.'
|
||||
addPipelineData: false
|
||||
|
||||
- stage: publish_docker_image
|
||||
displayName: "Publish Docker image"
|
||||
dependsOn: build_docker_image
|
||||
condition: and(succeeded(), eq(variables['Build.SourceBranchName'], 'master'))
|
||||
jobs:
|
||||
- job: publish
|
||||
displayName: "Publish"
|
||||
pool:
|
||||
vmImage: ubuntu-latest
|
||||
steps:
|
||||
- task: Docker@2
|
||||
inputs:
|
||||
containerRegistry: 'DockerHub'
|
||||
repository: 'pelletier/go-toml'
|
||||
command: 'buildAndPush'
|
||||
Dockerfile: 'Dockerfile'
|
||||
buildContext: '.'
|
||||
tags: 'latest'
|
||||
@@ -8,7 +8,6 @@ reference_git=${2:-.}
|
||||
if ! `hash benchstat 2>/dev/null`; then
|
||||
echo "Installing benchstat"
|
||||
go get golang.org/x/perf/cmd/benchstat
|
||||
go install golang.org/x/perf/cmd/benchstat
|
||||
fi
|
||||
|
||||
tempdir=`mktemp -d /tmp/go-toml-benchmark-XXXXXX`
|
||||
|
||||
Reference in New Issue
Block a user