Skip to content

wait more

wait more #12

Workflow file for this run

name: ci-coverage
on:
push:
branches:
- "main"
- "non-k8s-hsp-test"
paths:
- "KubeArmor/**"
- ".github/workflows/ci-coverage.yaml"
- "!STABLE-RELEASE"
- "tests/nonk8s_env/**"
jobs:
docker-compose-coverage:
name: Build KubeArmor test artifacts and run tests / ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
timeout-minutes: 60
steps:
- uses: actions/checkout@v3
with:
submodules: true
- uses: actions/setup-go@v5
with:
go-version-file: 'KubeArmor/go.mod'
- name: Install the latest LLVM toolchain
run: ./.github/workflows/install-llvm.sh
- name: Compile libbpf
run: ./.github/workflows/install-libbpf.sh
- name: Generate KubeArmor artifacts
run: |
GITHUB_SHA=$GITHUB_SHA ./KubeArmor/build/build_kubearmor-test.sh
- name: Run KubeArmor init container
run: |
docker run --name kubearmor-test-init -v /tmp/:/opt/kubearmor/BPF kubearmor/kubearmor-test-init:latest
- name: Run KubeArmor test container
run: |
docker run -d --name kubearmor-test --privileged --pid host -p 32767:32767 \
-v /tmp/:/opt/kubearmor/BPF \
-v /sys/fs/bpf:/sys/fs/bpf \
-v /sys/kernel/security:/sys/kernel/security \
-v /sys/kernel/debug:/sys/kernel/debug \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/docker:/var/lib/docker \
-v /etc/apparmor.d:/etc/apparmor.d \
kubearmor/kubearmor-test:latest -k8s=false -enableKubeArmorHostPolicy -coverageTest=false -test.coverprofile=coverage.out
- name: Test KubeArmor using Ginkgo
run: |
go install -mod=mod github.com/onsi/ginkgo/v2/ginkgo
make
working-directory: ./tests/nonk8s_env
timeout-minutes: 30
- name: Copy coverage report
run: |
CONTAINER_ID=$(docker ps -qf "name=kubearmor")
ls -l
echo "Container ID: $CONTAINER_ID"
docker exec $CONTAINER_ID sh -c "ls -l /"
KUBEARMOR_PID=$(docker exec $CONTAINER_ID sh -c "pgrep -o -f 'kubearmor'")
docker exec $CONTAINER_ID sh -c "kill -s SIGINT $KUBEARMOR_PID"
sleep 30
docker cp $CONTAINER_ID:/coverage.out gover.coverprofile
ls -l
working-directory: KubeArmor
- name: Archive log artifacts
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: kubearmor.logs
path: |
/tmp/kubearmor/
/tmp/kubearmor.*
- name: Measure code coverage
if: ${{ always() }}
run: |
ls -l
go install github.com/modocache/gover@latest
gover
go tool cover -func=gover.coverprofile
working-directory: KubeArmor
env:
GOPATH: /home/runner/go
- uses: codecov/codecov-action@v3
if: ${{ always() }}
with:
files: ./KubeArmor/gover.coverprofile