forked from newrelic/nri-flex
-
Notifications
You must be signed in to change notification settings - Fork 0
137 lines (127 loc) · 3.66 KB
/
push_pr.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
---
name: Push/PR pipeline
on:
push:
branches:
- '**'
tags-ignore:
- '**'
paths-ignore:
- README.md
- 'docs/**'
- 'examples/**'
env:
REPO_FULL_NAME: ${{ github.event.repository.full_name }}
ORIGINAL_REPO_NAME: "newrelic/nri-flex"
jobs:
test-nix:
strategy:
matrix:
os: [ ubuntu-20.04 ]
name: Run unit tests in ${{matrix.os}}
runs-on: ${{matrix.os}}
steps:
- name: checkout code
uses: actions/checkout@v2
- name: Install go
uses: actions/setup-go@v4
with:
go-version-file: 'go.mod'
- name: Run unit tests
run: make ci/test
- name: Convert coverage.out to lcov.info
run: make ci/convert-coverage
- name: Coveralls Parallel
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.github_token }}
path-to-lcov: lcov.info
flag-name: run-linux
parallel: true
test-integration-nix:
name: Run integration tests
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.OHAI_DOCKER_HUB_ID }}
password: ${{ secrets.OHAI_DOCKER_HUB_PASSWORD }}
- name: Run integration tests
run: make test-integration
snyk:
name: Run security checks via snyk
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.OHAI_DOCKER_HUB_ID }}
password: ${{ secrets.OHAI_DOCKER_HUB_PASSWORD }}
- name: Scan code for vulnerabilities
env:
SNYK_TOKEN: ${{ secrets.CAOS_SNYK_TOKEN }}
run: make ci/snyk-test
test-windows:
strategy:
matrix:
go: [ '1.21' ]
os: [ windows-2022 ]
name: Run unit and integration tests in ${{matrix.os}} with go ${{matrix.go}}
runs-on: ${{matrix.os}}
steps:
- name: checkout
uses: actions/checkout@v2
- name: install go
uses: actions/setup-go@v4
with:
go-version-file: 'go.mod'
- name: run unit tests
# we don't have 'make' on windows.
run: |
go test ./cmd/... ./integration-test/... ./internal/...
- name: run integration tests
# we don't have 'make' on windows.
run: |
go test --tags=integration ./cmd/... ./integration-test/... ./internal/...
test-build:
name: Test binary compilation for all platforms:arch
runs-on: ubuntu-20.04
steps:
- name: checkout
uses: actions/checkout@v2
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.OHAI_DOCKER_HUB_ID }}
password: ${{ secrets.OHAI_DOCKER_HUB_PASSWORD }}
- name: Build all platforms:arch
run: make ci/pre-release
test-e2e:
name: Run e2e tests
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.OHAI_DOCKER_HUB_ID }}
password: ${{ secrets.OHAI_DOCKER_HUB_PASSWORD }}
- name: Install go
uses: actions/setup-go@v4
with:
go-version-file: 'go.mod'
- name: Run e2e tests
run: make test-e2e
finish:
name: Finish
needs: [ test-nix, test-windows ]
runs-on: ubuntu-20.04
steps:
- name: Coveralls Finished
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.github_token }}
parallel-finished: true