diff --git a/.github/workflows/scan.yml b/.github/workflows/scan.yml new file mode 100644 index 00000000..398db906 --- /dev/null +++ b/.github/workflows/scan.yml @@ -0,0 +1,40 @@ +name: Scan docker +on: [pull_request] + +env: + # Use docker.io for Docker Hub if empty + REGISTRY: docker.io + + # github.repository as / + IMAGE_NAME: perconalab/version-service + +jobs: + build: + name: Build + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v5 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build an image from Dockerfile (linux/amd64) + run: | + export IMG=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}-amd64 + export DOCKER_DEFAULT_PLATFORM='linux/amd64' + make docker-build + + - name: Run Trivy vulnerability scanner image (linux/amd64) + uses: aquasecurity/trivy-action@0.33.1 + with: + image-ref: '${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}-amd64' + format: 'table' + exit-code: '1' + ignore-unfixed: true + vuln-type: 'os,library' + severity: 'CRITICAL,HIGH' + version: 'v0.67.2'