Skip to content

Commit 33f3ba8

Browse files
Run vulnerability scan on latest release version (#355)
Previously the scan ran on the current state of the codebase. This fails to identify vulnerabilities in dependencies for the latest release version if those dependencies have already been updated in the development codebase. The gating factor for whether a new release is required should be whether the previous release contains vulnerabilities. This change runs the scheduled vulnerability scan on the latest release tag. It also adds vulnerability scanning to pull request builds. This is purely informational. A scan failure does not fail the pull request build. Signed-off-by: Mark S. Lewis <[email protected]>
1 parent bb8cd6b commit 33f3ba8

File tree

5 files changed

+58
-25
lines changed

5 files changed

+58
-25
lines changed

.github/workflows/pull_request.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ jobs:
1717
test:
1818
uses: ./.github/workflows/test.yml
1919

20+
scan:
21+
uses: ./.github/workflows/scan.yml
22+
2023
pull-request:
2124
needs: test
2225
name: Pull request success

.github/workflows/release.yml

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,7 @@ jobs:
3434
with:
3535
distribution: 'temurin'
3636
java-version: '11'
37-
cache: 'gradle'
38-
- name: Validate Gradle wrapper
39-
uses: gradle/actions/wrapper-validation@v3
40-
- uses: gradle/actions/setup-gradle@v3
37+
- uses: gradle/actions/setup-gradle@v4
4138
- name: Push to registry ${{ matrix.publish_target }}
4239
run: |
4340
set -xev
@@ -69,10 +66,7 @@ jobs:
6966
with:
7067
distribution: 'temurin'
7168
java-version: '11'
72-
cache: 'gradle'
73-
- name: Validate Gradle wrapper
74-
uses: gradle/actions/wrapper-validation@v3
75-
- uses: gradle/actions/setup-gradle@v3
69+
- uses: gradle/actions/setup-gradle@v4
7670
- name: Build the dependencies needed for the image
7771
run: ./gradlew :fabric-chaincode-docker:copyAllDeps
7872
- name: Set up QEMU

.github/workflows/scan.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: "Scheduled vulnerability scan"
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
ref:
7+
description: Branch, tag or SHA to scan.
8+
type: string
9+
required: false
10+
default: ""
11+
12+
permissions:
13+
contents: read
14+
15+
jobs:
16+
osv-scanner:
17+
runs-on: ubuntu-latest
18+
steps:
19+
- uses: actions/checkout@v4
20+
with:
21+
ref: ${{ inputs.ref }}
22+
- uses: actions/setup-java@v4
23+
with:
24+
distribution: temurin
25+
java-version: 11
26+
- uses: gradle/actions/setup-gradle@v4
27+
- name: Set up Go
28+
uses: actions/setup-go@v5
29+
with:
30+
go-version: stable
31+
cache: false
32+
- name: Scan
33+
run: make scan

.github/workflows/scheduled-scan.yml

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,18 @@ permissions:
99
contents: read
1010

1111
jobs:
12-
osv-scanner:
12+
latest-release-version:
13+
name: Get latest release tag
1314
runs-on: ubuntu-latest
15+
outputs:
16+
tag_name: ${{ steps.tag-name.outputs.value }}
1417
steps:
15-
- uses: actions/checkout@v4
16-
- name: Set up Go
17-
uses: actions/setup-go@v5
18-
with:
19-
go-version: stable
20-
- name: Scan
21-
run: make scan
18+
- id: tag-name
19+
run: echo "value=$(curl --location --silent --fail "https://api.github.com/repos/${GITHUB_REPOSITORY}/releases/latest" | jq --raw-output '.tag_name')" >> "${GITHUB_OUTPUT}"
20+
21+
scan:
22+
name: Scan ${{ needs.latest-release-version.outputs.tag_name }}
23+
needs: latest-release-version
24+
uses: ./.github/workflows/scan.yml
25+
with:
26+
ref: ${{ needs.latest-release-version.outputs.tag_name }}

.github/workflows/test.yml

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ name: Test
77
on:
88
workflow_call:
99
inputs:
10-
checkout-ref:
10+
ref:
1111
default: ''
1212
required: false
1313
type: string
@@ -18,14 +18,12 @@ jobs:
1818
steps:
1919
- uses: actions/checkout@v4
2020
with:
21-
ref: ${{ inputs.checkout-ref }}
21+
ref: ${{ inputs.ref }}
2222
- uses: actions/setup-java@v4
2323
with:
2424
distribution: temurin
2525
java-version: 11
26-
- name: Validate Gradle wrapper
27-
uses: gradle/actions/wrapper-validation@v3
28-
- uses: gradle/actions/setup-gradle@v3
26+
- uses: gradle/actions/setup-gradle@v4
2927
- name: Build and Unit test
3028
run: ./gradlew :fabric-chaincode-shim:build
3129

@@ -34,11 +32,12 @@ jobs:
3432
steps:
3533
- uses: actions/checkout@v4
3634
with:
37-
ref: ${{ inputs.checkout-ref }}
35+
ref: ${{ inputs.ref }}
3836
- uses: actions/setup-java@v4
3937
with:
4038
distribution: temurin
4139
java-version: 11
40+
- uses: gradle/actions/setup-gradle@v4
4241
- name: Populate chaincode with latest java-version
4342
run: |
4443
./gradlew -I $GITHUB_WORKSPACE/fabric-chaincode-integration-test/chaincodebootstrap.gradle -PchaincodeRepoDir=$GITHUB_WORKSPACE/fabric-chaincode-integration-test/src/contracts/fabric-shim-api/repository publishShimPublicationToFabricRepository
@@ -58,7 +57,6 @@ jobs:
5857
run: |
5958
peer version
6059
weft --version
61-
- uses: gradle/actions/setup-gradle@v3
6260
- name: Integration Tests
6361
run: ./gradlew :fabric-chaincode-integration-test:build
6462

@@ -67,11 +65,11 @@ jobs:
6765
steps:
6866
- uses: actions/checkout@v4
6967
with:
70-
ref: ${{ inputs.checkout-ref }}
68+
ref: ${{ inputs.ref }}
7169
- uses: actions/setup-java@v4
7270
with:
7371
distribution: temurin
7472
java-version: 11
75-
- uses: gradle/actions/setup-gradle@v3
73+
- uses: gradle/actions/setup-gradle@v4
7674
- name: Build Docker image
7775
run: ./gradlew :fabric-chaincode-docker:buildImage

0 commit comments

Comments
 (0)