diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index cdbae0e..a18b24a 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -19,6 +19,9 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 + + - name: Install Cosign + uses: sigstore/cosign-installer@e1523de7571e31dbe865fd2e80c5c7c23ae71eb4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@2b51285047da1547ffb1b2203d8be4c0af6b1f20 @@ -49,3 +52,31 @@ jobs: tags: nataliagranato/linuxtips-giropops-senhas:${{ steps.generate-tag.outputs.tag }} labels: ${{ steps.meta.outputs.labels }} platforms: linux/amd64,linux/arm64 + + + - name: Run Trivy vulnerability scanner + uses: aquasecurity/trivy-action@062f2592684a31eb3aa050cc61e7ca1451cecd3d + with: + image-ref: nataliagranato/linuxtips-giropops-senhas:latest + format: 'sarif' + severity: 'UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL' + output: 'trivy-results.sarif' + + - name: Upload Trivy scan results to GitHub Security tab + uses: github/codeql-action/upload-sarif@v3 + if: always() + with: + sarif_file: 'trivy-results.sarif' + + - name: Sign image with a key + run: | + images="" + for tag in ${TAGS}; do + images+="${tag}@${DIGEST} " + done + cosign sign --yes --key env://COSIGN_PRIVATE_KEY $images + env: + TAGS: ${{ steps.meta.outputs.tags }} + COSIGN_PRIVATE_KEY: ${{ secrets.COSIGN_PRIVATE_KEY }} + COSIGN_PASSWORD: ${{ secrets.COSIGN_PASSWORD }} + DIGEST: ${{ steps.build-and-push.outputs.digest }}