-
Notifications
You must be signed in to change notification settings - Fork 36
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: add workflow for dependency-track
- Loading branch information
1 parent
b890115
commit ffc38d2
Showing
1 changed file
with
59 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
name: 'dhis2: nightly upload to dependency-track' | ||
|
||
# This workflow creates bill of material and uploads it to Dependency-Track each night | ||
|
||
on: | ||
push: | ||
branches: | ||
- master | ||
pull_request: | ||
branches: | ||
- master | ||
#schedule: | ||
#- cron: '0 0 * * *' | ||
|
||
concurrency: | ||
group: ${{ github.workflow}}-${{ github.ref }} | ||
cancel-in-progress: true | ||
|
||
defaults: | ||
run: | ||
shell: bash | ||
|
||
jobs: | ||
create-bom: | ||
runs-on: ubuntu-latest | ||
|
||
strategy: | ||
matrix: | ||
containers: [1, 2, 3, 4] | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-node@v4 | ||
with: | ||
node-version: 18.x | ||
|
||
- name: Install | ||
run: yarn install --frozen-lockfile | ||
|
||
- name: Install CycloneDX CLI | ||
run: | | ||
curl -s https://api.github.com/repos/CycloneDX/cyclonedx-cli/releases/latest | grep "browser_download_url.*linux.x64" | cut -d '"' -f 4 | wget -i - | ||
sudo mv cyclonedx-linux-x64 /usr/local/bin/ | ||
sudo chmod +x /usr/local/bin/cyclonedx-linux-x64 | ||
- name: Generate BOMs | ||
run: yarn dlx -q @cyclonedx/yarn-plugin-cyclonedx --output-file bom.json | ||
|
||
- name: Upload SBOM to DependencyTrack | ||
env: | ||
DEPENDENCY_TRACK_API: "https://dt.security.dhis2.org/api/v1/bom" | ||
run: | | ||
curl -X POST "$DEPENDENCY_TRACK_API" \ | ||
--fail-with-body \ | ||
-H "Content-Type: multipart/form-data" \ | ||
-H "X-Api-Key: ${{ secrets.DEPENDENCYTRACK_APIKEY }}" \ | ||
-F "project=c0bd0f2d-d512-460a-81f9-e256e4fb1054" \ | ||
-F "[email protected]" | ||