1- name : " CodeQL Analysis Workflow"
2-
1+ name : " Codeql Evidence Integration example"
32on :
43 workflow_dispatch :
54
@@ -8,11 +7,12 @@ permissions:
87 contents : read
98 actions : read
109
11-
1210jobs :
1311 codeql :
1412 name : Analyse
1513 runs-on : ubuntu-latest
14+ env :
15+ ATTACH_OPTIONAL_CUSTOM_MARKDOWN_TO_EVIDENCE : true
1616 strategy :
1717 fail-fast : false
1818 matrix :
@@ -23,73 +23,65 @@ jobs:
2323 queries_path : ./examples/codeql/queries/go
2424
2525 steps :
26- - uses : actions/checkout@v4
27- with :
28- sparse-checkout : |
29- examples/codeql/**
30- sparse-checkout-cone-mode : false
31-
32- - name : Set up CodeQL for ${{ matrix.language_details.name }}
33- uses : github/codeql-action/init@v3
34- with :
35- languages : ${{ matrix.language_details.name }}
36- config-file : examples/codeql/codeql-config.yml
37- queries : ${{ matrix.language_details.queries_path }}
38-
39- - name : Setup Jfrog CLI for go
26+ # Build and publish the packages to JFrog Artifactory
27+ - name : Setup jfrog cli
4028 uses : jfrog/setup-jfrog-cli@v4
4129 env :
4230 JF_URL : ${{ vars.ARTIFACTORY_URL }}
4331 JF_ACCESS_TOKEN : ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }}
44-
45-
46- - name : Setup Go
47- if : matrix.language_details.name == 'go'
48- uses : actions/setup-go@v5
49- with :
50- go-version : ' 1.24.3'
51-
52-
53- - name : Run CodeQL Analysis for ${{ matrix.language_details.name }}
54- uses : github/codeql-action/analyze@v3
32+ - uses : actions/checkout@v4
5533 with :
56- category : " security-and-quality"
57- output : results-${{ matrix.language_details.name }}
58- upload : false
59-
60- - name : Convert SARIF to Markdown
61- run : |
62- python ./examples/codeql/sarif_to_markdown.py \
63- results-${{ matrix.language_details.name }}/${{ matrix.language_details.name }}.sarif \
64- results-${{ matrix.language_details.name }}/${{ matrix.language_details.name }}-report.md
65-
34+ sparse-checkout : |
35+ examples/codeql/**
36+ sparse-checkout-cone-mode : false
6637 - name : Build and Publish ${{ matrix.language_details.name }} package
6738 env :
6839 GO_CODE_PATH : examples/codeql/go
6940 JS_CODE_PATH : examples/codeql/js
7041 run : |
7142 if [ ${{ matrix.language_details.name }} == 'go' ]; then
7243 cd $GO_CODE_PATH
73- # Configure JFrog CLI for Go
7444 jf go-config --repo-resolve=go-remote --repo-deploy=go-local \
7545 --server-id-deploy=setup-jfrog-cli-server \
76- --server-id-resolve=setup-jfrog-cli-server
77-
46+ --server-id-resolve=setup-jfrog-cli-server
7847 jf gp --build-name=my-go-build --build-number=${{ github.run_number }} v0.0.${{ github.run_number }}
7948 jf rt bp my-go-build ${{ github.run_number }}
8049 elif [ ${{ matrix.language_details.name }} == 'javascript' ]; then
8150 cd $JS_CODE_PATH
8251 jf npm-config --repo-resolve=javascript-remote --repo-deploy=javascript-local \
8352 --server-id-deploy=setup-jfrog-cli-server \
8453 --server-id-resolve=setup-jfrog-cli-server
85-
8654 jf npm publish --build-name=my-javascript-build --build-number=${{ github.run_number }}
8755 jf rt bp my-javascript-build ${{ github.run_number }}
8856 fi
8957 cd -
9058 continue-on-error : true
9159
92- - name : Attach Evidence Using JFrog CLI
60+ # Set up CodeQL and run analysis
61+ - name : Set up CodeQL for ${{ matrix.language_details.name }}
62+ uses : github/codeql-action/init@v3
63+ with :
64+ languages : ${{ matrix.language_details.name }}
65+ config-file : examples/codeql/codeql-config.yml
66+ queries : ${{ matrix.language_details.queries_path }}
67+
68+ - name : Run CodeQL Analysis for ${{ matrix.language_details.name }}
69+ uses : github/codeql-action/analyze@v3
70+ with :
71+ category : " security-and-quality"
72+ output : results-${{ matrix.language_details.name }}
73+ upload : false
74+
75+ # This is an optional step to generate a custom markdown report
76+ - name : Generate optional custom markdown report
77+ if : env.ATTACH_OPTIONAL_CUSTOM_MARKDOWN_TO_EVIDENCE == 'true'
78+ run : |
79+ python ./examples/codeql/sarif_to_markdown.py \
80+ results-${{ matrix.language_details.name }}/${{ matrix.language_details.name }}.sarif \
81+ results-${{ matrix.language_details.name }}/${{ matrix.language_details.name }}-report.md
82+
83+ # Attaching the evidence to associated package
84+ - name : Attach Evidence using JFrog CLI
9385 run : |
9486 jf config show
9587 if [ ${{ matrix.language_details.name }} == 'go' ]; then
@@ -98,20 +90,20 @@ jobs:
9890 --package-name "jfrog.com/mygobuild" \
9991 --package-version $PACKAGE_VERSION \
10092 --package-repo-name go-local \
101- --key "${{ secrets.CODEQL_SIGNING_KEY }}" \
102- --key-alias ${{ vars.CODEQL_KEY_ALIAS }} \
93+ --key "${{ secrets.PRIVATE_KEY }}" \
94+ --key-alias " ${{ vars.EVIDENCE_KEY_ALIAS }}" \
10395 --predicate "results-go/go.sarif" \
10496 --predicate-type "http://github.com/CodeQL/static-analysis" \
105- --markdown "results-go/go-report.md"
97+ ${{ env.ATTACH_OPTIONAL_CUSTOM_MARKDOWN_TO_EVIDENCE == 'true' && ' --markdown "results-go/go-report.md"' || '' }}
10698 elif [ ${{ matrix.language_details.name }} == 'javascript' ]; then
10799 PACKAGE_VERSION="0.0.1"
108100 jf evd create \
109101 --package-name my-javascript-build \
110102 --package-version $PACKAGE_VERSION \
111103 --package-repo-name javascript-local \
112- --key "${{ secrets.CODEQL_SIGNING_KEY }}" \
113- --key-alias ${{ vars.CODEQL_KEY_ALIAS }} \
104+ --key "${{ secrets.PRIVATE_KEY }}" \
105+ --key-alias " ${{ vars.EVIDENCE_KEY_ALIAS }}" \
114106 --predicate "results-javascript/javascript.sarif" \
115107 --predicate-type "http://github.com/CodeQL/static-analysis" \
116- --markdown "results-javascript/javascript-report.md"
108+ ${{ env.ATTACH_OPTIONAL_CUSTOM_MARKDOWN_TO_EVIDENCE == 'true' && ' --markdown "results-javascript/javascript-report.md"' || '' }}
117109 fi
0 commit comments