1+ env :
2+ SYSDIG_SECURE_ENDPOINT : " https://secure.sysdig.com"
3+ REGISTRY_HOST : " ghcr.io"
4+ IMAGE_NAME : " testactions"
5+ IMAGE_TAG : " my-tag"
6+ DOCKERFILE_CONTEXT : " github/new-scan-engine/"
7+
8+ name : Container build, scan and push
9+
10+ on :
11+ schedule :
12+ - cron : " 0 5 * * *"
13+
14+ jobs :
15+ build-scan-and-push :
16+ runs-on : ubuntu-latest
17+ steps :
18+ - name : Checkout
19+ uses : actions/checkout@v2
20+
21+ - name : Set up Docker Buildx
22+ uses : docker/setup-buildx-action@v2
23+
24+ - name : Build and save
25+ uses : docker/build-push-action@v3
26+ with :
27+ context : ${{ env.DOCKERFILE_CONTEXT }}
28+ tags : ${{ env.REGISTRY_HOST }}/${{ github.actor }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }}
29+ load : true
30+
31+ - name : Setup cache
32+ uses : actions/cache@v3
33+ with :
34+ path : cache
35+ key : ${{ runner.os }}-cache-${{ hashFiles('**/sysdig-cli-scanner', '**/latest_version.txt', '**/db/main.db.meta.json', '**/scanner-cache/inlineScannerCache.db') }}
36+ restore-keys : ${{ runner.os }}-cache-
37+
38+ - name : Download sysdig-cli-scanner if needed
39+ run : |
40+ curl -sLO https://download.sysdig.com/scanning/sysdig-cli-scanner/latest_version.txt
41+ mkdir -p ${GITHUB_WORKSPACE}/cache/db/
42+ if [ ! -f ${GITHUB_WORKSPACE}/cache/latest_version.txt ] || [ $(cat ./latest_version.txt) != $(cat ${GITHUB_WORKSPACE}/cache/latest_version.txt) ]; then
43+ cp ./latest_version.txt ${GITHUB_WORKSPACE}/cache/latest_version.txt
44+ curl -sL -o ${GITHUB_WORKSPACE}/cache/sysdig-cli-scanner "https://download.sysdig.com/scanning/bin/sysdig-cli-scanner/$(cat ${GITHUB_WORKSPACE}/cache/latest_version.txt)/linux/amd64/sysdig-cli-scanner"
45+ chmod +x ${GITHUB_WORKSPACE}/cache/sysdig-cli-scanner
46+ else
47+ echo "sysdig-cli-scanner latest version already downloaded"
48+ fi
49+
50+ - name : Scan the image using sysdig-cli-scanner
51+ env :
52+ SECURE_API_TOKEN : ${{ secrets.SECURE_API_TOKEN }}
53+ run : |
54+ ${GITHUB_WORKSPACE}/cache/sysdig-cli-scanner \
55+ --apiurl ${SYSDIG_SECURE_ENDPOINT} \
56+ docker://${REGISTRY_HOST}/${{github.actor}}/${IMAGE_NAME}:${IMAGE_TAG} \
57+ --console-log \
58+ --dbpath=${GITHUB_WORKSPACE}/cache/db/ \
59+ --cachepath=${GITHUB_WORKSPACE}/cache/scanner-cache/
60+
61+ - name : Login to the registry
62+ uses : docker/login-action@v2
63+ with :
64+ registry : ${{ env.REGISTRY_HOST }}
65+ username : ${{ github.actor }}
66+ password : ${{ secrets.GITHUB_TOKEN }}
67+
68+ - name : Push
69+ uses : docker/build-push-action@v3
70+ with :
71+ context : ${{ env.DOCKERFILE_CONTEXT }}
72+ push : true
73+ tags : ${{ env.REGISTRY_HOST }}/${{ github.actor }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }}
0 commit comments