--- name: Build on: push: branches: - main paths-ignore: - "*.md" - "LICENSE" - "NOTICE" pull_request: paths-ignore: - "*.md" - "LICENSE" - "NOTICE" env: GO_VERSION: "1.16" KIND_VERSION: "v0.11.1" KIND_IMAGE: "kindest/node:v1.21.1@sha256:69860bda5563ac81e3c0057d654b5253219618a22ec3a346306239bba8cfa1a6" jobs: build: name: Build runs-on: ubuntu-18.04 steps: - name: Setup Go uses: actions/setup-go@v2 with: go-version: 1.16 - name: Checkout code uses: actions/checkout@v2 - name: yaml-lint uses: ibiqlik/action-yamllint@v3 - name: Run unit tests run: make tests - name: Upload code coverage uses: codecov/codecov-action@v2 with: file: ./coverage.txt - name: Setup Kubernetes cluster (KIND) uses: engineerd/setup-kind@v0.5.0 with: version: ${{ env.KIND_VERSION }} image: ${{ env.KIND_IMAGE }} name: kube-bench - name: Test connection to Kubernetes cluster run: | kubectl cluster-info kubectl describe node - name: Apply jobs run: kubectl apply -f job.yaml - name: Run integration tests run: | kubectl wait --for=condition=complete job.batch/kube-bench --timeout=60s kubectl logs job/kube-bench > ./test.data - name: Compare output with expected output uses: GuillaumeFalourd/diff-action@v1 with: first_file_path: ./test.data second_file_path: integration/testdata/Expected_output.data expected_result: PASSED - name: Dry-run release snapshot uses: goreleaser/goreleaser-action@v2 with: version: v0.169.0 args: release --snapshot --skip-publish --rm-dist