Skip to content

unit-testcase execution in pipeline #634

unit-testcase execution in pipeline

unit-testcase execution in pipeline #634

name: Container Agent Docker Image CI
on:
pull_request:
paths-ignore:
- '**.md'
- 'charts/**'
branches:
- 'main'
jobs:
build:
runs-on: ubuntu-latest
env:
REGISTRY: ghcr.io
GH_URL: https://github.com
steps:
-
name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
- uses: docker/setup-buildx-action@v1
name: Set up Docker Buildx
-
name: Login to ghcr registry
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
-
name: Build and push on PR
uses: docker/build-push-action@v4
if: github.event_name == 'pull_request'
with:
context: .
file: ./dockerfiles/agent/container/Dockerfile
push: true
tags: ${{ env.REGISTRY }}/${{ github.repository }}/container-agent:pr-${{ github.event.pull_request.number }}
build-args: |
"GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }}"
test_and_coverage:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.22
- name: Run tests with coverage
run: |
go test -coverprofile=coverage.out -covermode=count "./agent/kubviz/plugins/ketall" "./agent/kubviz/plugins/kubescore" "./agent/kubviz/plugins/kuberhealthy" "./agent/kubviz/plugins/outdated" "./agent/kubviz/plugins/rakkess" "./agent/kubviz/plugins/trivy"
go tool cover -func=coverage.out
- name: Upload coverage report
uses: actions/upload-artifact@v2
with:
name: coverage-report
path: report/cover.out
- name: Analyze coverage
run: |
coverage=$(go tool cover -func=report/cover.out | grep total | awk '{print $3}' | sed 's/%//')
if [ $(echo "$coverage < 60" | bc) -eq 1 ]; then
echo "Coverage is below 60% threshold: $coverage%"
exit 1
else
echo "Coverage is above 60% threshold: $coverage%"
fi