forked from jfrog/Evidence-Examples
-
Notifications
You must be signed in to change notification settings - Fork 0
84 lines (69 loc) · 2.67 KB
/
trivy-evidence-example.yml
File metadata and controls
84 lines (69 loc) · 2.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
name: trivy-evidence-example
on:
workflow_dispatch:
permissions:
id-token: write
contents: read
jobs:
package-docker-image-with-trivy-evidence:
runs-on: ubuntu-latest
env:
REGISTRY_URL: ${{ vars.REGISTRY_DOMAIN }}
REPO_NAME: 'docker-trivy-repo'
IMAGE_NAME: 'docker-trivy-image'
VERSION: ${{ github.run_number }}
BUILD_NAME: 'trivy-docker-build'
steps:
- name: Install jfrog cli
uses: jfrog/setup-jfrog-cli@v4
env:
JF_URL: ${{ vars.ARTIFACTORY_URL }}
JF_ACCESS_TOKEN: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }}
- name: Checkout repository
uses: actions/checkout@v4
- name: Build Docker Image
run: |
docker build . --file ./examples/trivy-verify-example/Dockerfile --tag $REGISTRY_URL/$REPO_NAME/$IMAGE_NAME:$VERSION
- name: Run Trivy
uses: aquasecurity/trivy-action@master
with:
image-ref: ${{ env.REGISTRY_URL }}/${{ env.REPO_NAME }}/${{ env.IMAGE_NAME }}:${{ env.VERSION }}
severity: HIGH,CRITICAL
format: json
output: trivy-results.json
- name: Set up Python 3.8
uses: actions/setup-python@v4
with:
python-version: 3.8
- name: Install jq
run: |
sudo apt-get install jq
- name: Convert Trivy JSON Output to Markdown
run: python ./examples/trivy-verify-example/trivy_json_to_markdown_helper.py trivy-results.json
- name: Log in to Artifactory Docker Registry
uses: docker/login-action@v3
with:
registry: ${{ vars.ARTIFACTORY_URL }}
username: ${{ secrets.JF_USER }}
password: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Push Docker Image to Artifactory
run: |
echo "Pushing Docker image to Artifactory..."
jf rt docker-push $REGISTRY_URL/$REPO_NAME/$IMAGE_NAME:$VERSION $REPO_NAME --build-name=$BUILD_NAME --build-number=${{ github.run_number }}
- name: Publish Build Info
run: |
jf rt build-publish $BUILD_NAME ${{ github.run_number }}
- name: Attach Evidence Using JFrog CLI
run: |
jf evd create \
--package-name $IMAGE_NAME \
--package-version $VERSION \
--package-repo-name $REPO_NAME \
--key "${{ secrets.TRIVY_TEST_PKEY }}" \
--key-alias ${{ vars.TRIVY_TEST_KEY }} \
--predicate ./trivy-results.json \
--predicate-type http://aquasec.com/trivy/security-scan \
--markdown trivy-results.md
echo "Trivy evidence attached to package"