You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.7 KiB
78 lines
2.7 KiB
2 years ago
|
name: CI
|
||
|
# This workflow is triggered on pushes & pull requests
|
||
|
on: [pull_request]
|
||
|
|
||
|
jobs:
|
||
|
test:
|
||
|
name: Test
|
||
|
runs-on: ubuntu-latest
|
||
|
container: ghcr.io/packagrio/packagr:latest-golang
|
||
|
|
||
|
# Service containers to run with `build` (Required for end-to-end testing)
|
||
|
services:
|
||
|
influxdb:
|
||
|
image: influxdb:2.2
|
||
|
env:
|
||
|
DOCKER_INFLUXDB_INIT_MODE: setup
|
||
|
DOCKER_INFLUXDB_INIT_USERNAME: admin
|
||
|
DOCKER_INFLUXDB_INIT_PASSWORD: password12345
|
||
|
DOCKER_INFLUXDB_INIT_ORG: scrutiny
|
||
|
DOCKER_INFLUXDB_INIT_BUCKET: metrics
|
||
|
DOCKER_INFLUXDB_INIT_ADMIN_TOKEN: my-super-secret-auth-token
|
||
|
ports:
|
||
|
- 8086:8086
|
||
|
env:
|
||
|
PROJECT_PATH: /go/src/github.com/analogj/scrutiny
|
||
|
CGO_ENABLED: 1
|
||
|
steps:
|
||
|
- name: Git
|
||
|
run: |
|
||
|
apt-get update && apt-get install -y software-properties-common
|
||
|
add-apt-repository ppa:git-core/ppa && apt-get update && apt-get install -y git
|
||
|
git --version
|
||
|
- name: Checkout
|
||
|
uses: actions/checkout@v2
|
||
|
- name: Test
|
||
|
run: |
|
||
|
make clean binary-test-coverage
|
||
|
- name: Generate coverage report
|
||
|
uses: codecov/codecov-action@v2
|
||
|
with:
|
||
|
files: ${{ github.workspace }}/coverage.txt
|
||
|
flags: unittests
|
||
|
fail_ci_if_error: true
|
||
|
verbose: true
|
||
|
build:
|
||
|
name: Build ${{ matrix.cfg.goos }}/${{ matrix.cfg.goarch }}
|
||
|
needs: release
|
||
|
runs-on: ${{ matrix.cfg.on }}
|
||
|
env:
|
||
|
GOOS: ${{ matrix.cfg.goos }}
|
||
|
GOARCH: ${{ matrix.cfg.goarch }}
|
||
|
GOARM: ${{ matrix.cfg.goarm }}
|
||
|
strategy:
|
||
|
matrix:
|
||
|
cfg:
|
||
|
- { on: ubuntu-latest, goos: linux, goarch: amd64 }
|
||
|
- { on: ubuntu-latest, goos: linux, goarch: arm, goarm: 5 }
|
||
|
- { on: ubuntu-latest, goos: linux, goarch: arm, goarm: 6 }
|
||
|
- { on: ubuntu-latest, goos: linux, goarch: arm, goarm: 7 }
|
||
|
- { on: ubuntu-latest, goos: linux, goarch: arm64 }
|
||
|
- { on: macos-latest, goos: darwin, goarch: amd64 }
|
||
|
- { on: macos-latest, goos: darwin, goarch: arm64 }
|
||
|
- { on: macos-latest, goos: freebsd, goarch: amd64 }
|
||
|
- { on: macos-latest, goos: freebsd, goarch: arm64 }
|
||
|
- { on: windows-latest, goos: windows, goarch: amd64 }
|
||
|
- { on: windows-latest, goos: windows, goarch: arm64 }
|
||
|
steps:
|
||
|
- name: Build Binaries
|
||
|
run: |
|
||
|
make clean binary-all
|
||
|
|
||
|
- name: Archive
|
||
|
uses: actions/upload-artifact@v2
|
||
|
with:
|
||
|
name: binaries.zip
|
||
|
path: |
|
||
|
scrutiny-web-*
|
||
|
scrutiny-collector-metrics-*
|