104 lines
2.4 KiB
YAML
104 lines
2.4 KiB
YAML
name: Test
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
|
|
lint:
|
|
name: Lint
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v1
|
|
with:
|
|
go-version: 1.14
|
|
id: go
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Install golangci-lint
|
|
run: curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.23.7
|
|
|
|
- name: Lint
|
|
run: $(go env GOPATH)/bin/golangci-lint run
|
|
|
|
test:
|
|
name: Test
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
|
|
- name: Set up Go 1.14
|
|
uses: actions/setup-go@v1
|
|
with:
|
|
go-version: 1.14
|
|
id: go
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Test
|
|
run: go test -coverprofile cover.out ./...
|
|
|
|
- name: SonarCloud Scan
|
|
uses: sonarsource/sonarcloud-github-action@master
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
|
|
|
image-scan:
|
|
name: Image Scan
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Unshallow
|
|
run: git fetch --prune --unshallow
|
|
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v1
|
|
with:
|
|
go-version: 1.14
|
|
id: go
|
|
|
|
- name: Run GoReleaser
|
|
uses: goreleaser/goreleaser-action@v1
|
|
with:
|
|
version: latest
|
|
args: release --rm-dist --skip-validate --skip-publish
|
|
key: ${{ secrets.YOUR_PRIVATE_KEY }}
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Scan image
|
|
uses: anchore/scan-action@master
|
|
with:
|
|
image-reference: "hipages/php-fpm_exporter:latest"
|
|
dockerfile-path: "./Dockerfile"
|
|
fail-build: true
|
|
include-app-packages: true
|
|
|
|
tag:
|
|
name: Tag
|
|
runs-on: ubuntu-latest
|
|
needs: [lint, test, image-scan]
|
|
if: github.ref == 'refs/heads/master'
|
|
steps:
|
|
|
|
- name: Setup Node.js for use with actions
|
|
uses: actions/setup-node@v1.1.0
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Unshallow
|
|
run: git fetch --prune --unshallow
|
|
|
|
- name: Install semantic-release
|
|
run: yarn global add --no-progress --non-interactive "semantic-release" "@semantic-release/exec"
|
|
|
|
- name: Run semantic-release
|
|
run: $(yarn global bin)/semantic-release
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|