Software Composition Analysis #200
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
# SCA Scan | |
name: Software Composition Analysis | |
on: | |
# Runs on a schedule | |
schedule: | |
- cron: '00 11 * * FRI' | |
# Run this workflow manually from Actions tab | |
workflow_dispatch: | |
inputs: | |
branch_to_test: | |
description: 'Branch or tag to run test' | |
required: true | |
default: 'main' | |
type: string | |
options: | |
- 'main' | |
- 'v2.x' | |
# Allow one concurrent deployment | |
concurrency: | |
group: ${{ github.repository }}-${{ github.workflow }} | |
cancel-in-progress: true | |
jobs: | |
software-composition-analysis: | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
# - name: Checkout Code (Schedule) | |
# if: github.event_name == 'schedule' | |
# uses: actions/checkout@v4 | |
# with: | |
# ref: v2.x | |
# repository: aiverify-foundation/aiverify | |
# submodules: recursive | |
# - name: Checkout Code (Pull Request Into v2.x) | |
# if: github.event_name == 'pull_request' | |
# uses: actions/checkout@v4 | |
# with: | |
# ref: ${{ github.event.pull_request.head.ref }} | |
# repository: ${{ github.event.pull_request.head.repo.full_name }} | |
# submodules: recursive | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ inputs.branch_to_test }} | |
repository: aiverify-foundation/aiverify | |
submodules: recursive | |
- name: Set Branch Variable (v2.x) | |
if: inputs.branch_to_test == 'v2.x' | |
run: | | |
echo "BRANCH=v2.x" >> "$GITHUB_ENV" | |
- name: Set Branch Variable (Main) | |
if: inputs.branch_to_test == 'main' | |
run: | | |
echo "BRANCH=v1.0" >> "$GITHUB_ENV" | |
- name: Set up Python 3.11 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
- name: Install & Scan APIGW (v2.x) | |
if: inputs.branch_to_test == 'v2.x' | |
run: | | |
cd aiverify-apigw | |
python3 -m venv venv | |
source venv/bin/activate | |
pip install -e . | |
pip freeze > requirements.txt | |
deactivate | |
rm -rf venv | |
python3 -m venv venv | |
source venv/bin/activate | |
pip install -r requirements.txt | |
bash <(curl -s -L https://detect.synopsys.com/detect9.sh) --blackduck.url=https://blackduck.aipo-imda.net/ --blackduck.api.token=${{ secrets.BLACKDUCK_TOKEN }} --detect.detector.search.depth=0 --detect.project.name=aiverify-apigw --detect.project.version.name=$BRANCH --detect.source.path=. --detect.code.location.name="aiverify-apigw_$BRANCH" --detect.excluded.directories=venv,tests --blackduck.trust.cert=true | |
deactivate | |
cd ../ | |
- name: Install & Scan APIGW (Main) | |
if: inputs.branch_to_test == 'main' | |
run: | | |
cd ai-verify-apigw | |
npm install | |
bash <(curl -s -L https://detect.synopsys.com/detect9.sh) --blackduck.url=https://blackduck.aipo-imda.net/ --blackduck.api.token=${{ secrets.BLACKDUCK_TOKEN }} --detect.detector.search.depth=0 --detect.project.name=ai-verify-apigw --detect.project.version.name=$BRANCH --detect.source.path=. --detect.code.location.name="ai-verify-apigw_$BRANCH" --detect.excluded.directories=tests --blackduck.trust.cert=true | |
cd ../ | |
- name: Install & Scan PORTAL (v2.x) | |
if: inputs.branch_to_test == 'v2.x' | |
run: | | |
cd aiverify-portal | |
npm install | |
bash <(curl -s -L https://detect.synopsys.com/detect9.sh) --blackduck.url=https://blackduck.aipo-imda.net/ --blackduck.api.token=${{ secrets.BLACKDUCK_TOKEN }} --detect.detector.search.depth=0 --detect.project.name=aiverify-portal --detect.project.version.name=$BRANCH --detect.source.path=. --detect.code.location.name="aiverify-portal_$BRANCH" --detect.excluded.directories=tests --blackduck.trust.cert=true | |
cd ../ | |
- name: Install & Scan PORTAL (Main) | |
if: inputs.branch_to_test == 'main' | |
run: | | |
cd ai-verify-portal | |
npm install | |
bash <(curl -s -L https://detect.synopsys.com/detect9.sh) --blackduck.url=https://blackduck.aipo-imda.net/ --blackduck.api.token=${{ secrets.BLACKDUCK_TOKEN }} --detect.detector.search.depth=0 --detect.project.name=ai-verify-portal --detect.project.version.name=$BRANCH --detect.source.path=. --detect.code.location.name="ai-verify-portal_$BRANCH" --detect.excluded.directories=tests --blackduck.trust.cert=true | |
cd ../ | |
- name: Install & Scan SHARED LIBRARY (Main) | |
if: inputs.branch_to_test == 'main' | |
run: | | |
cd ai-verify-shared-library | |
npm install | |
bash <(curl -s -L https://detect.synopsys.com/detect9.sh) --blackduck.url=https://blackduck.aipo-imda.net/ --blackduck.api.token=${{ secrets.BLACKDUCK_TOKEN }} --detect.detector.search.depth=0 --detect.project.name=ai-verify-shared-library --detect.project.version.name=$BRANCH --detect.source.path=. --detect.code.location.name="ai-verify-shared-library_$BRANCH" --detect.excluded.directories=tests --blackduck.trust.cert=true | |
cd ../ | |
- name: Install & Scan TEST ENGINE (v2.x) | |
if: inputs.branch_to_test == 'v2.x' | |
run: | | |
cd aiverify-test-engine | |
python3 -m venv venv | |
source venv/bin/activate | |
pip install -e . | |
pip freeze > requirements.txt | |
deactivate | |
rm -rf venv | |
python3 -m venv venv | |
source venv/bin/activate | |
pip install -r requirements.txt | |
bash <(curl -s -L https://detect.synopsys.com/detect9.sh) --blackduck.url=https://blackduck.aipo-imda.net/ --blackduck.api.token=${{ secrets.BLACKDUCK_TOKEN }} --detect.detector.search.depth=0 --detect.project.name=aiverify-test-engine --detect.project.version.name=$BRANCH --detect.source.path=. --detect.code.location.name="aiverify-test-engine_$BRANCH" --detect.excluded.directories=venv,tests --blackduck.trust.cert=true | |
deactivate | |
cd ../ | |
- name: Install & Scan TEST ENGINE (Main) | |
if: inputs.branch_to_test == 'main' | |
run: | | |
cd test-engine-app | |
python3 -m venv venv | |
source venv/bin/activate | |
pip install -r requirements.txt | |
bash <(curl -s -L https://detect.synopsys.com/detect9.sh) --blackduck.url=https://blackduck.aipo-imda.net/ --blackduck.api.token=${{ secrets.BLACKDUCK_TOKEN }} --detect.detector.search.depth=0 --detect.project.name=test-engine-app --detect.project.version.name=$BRANCH --detect.source.path=. --detect.code.location.name="test-engine-app_$BRANCH" --detect.excluded.directories=venv,tests --blackduck.trust.cert=true | |
deactivate | |
cd ../ | |
- name: Install & Scan TEST ENGINE CORE (Main) | |
if: inputs.branch_to_test == 'main' | |
run: | | |
cd test-engine-core | |
python3 -m venv venv | |
source venv/bin/activate | |
pip install -r requirements.txt | |
bash <(curl -s -L https://detect.synopsys.com/detect9.sh) --blackduck.url=https://blackduck.aipo-imda.net/ --blackduck.api.token=${{ secrets.BLACKDUCK_TOKEN }} --detect.detector.search.depth=0 --detect.project.name=test-engine-core --detect.project.version.name=$BRANCH --detect.source.path=. --detect.code.location.name="test-engine-core_$BRANCH" --detect.excluded.directories=venv,tests --blackduck.trust.cert=true | |
deactivate | |
cd ../ | |
- name: Install & Scan TEST ENGINE CORE MODULES (Main) | |
if: inputs.branch_to_test == 'main' | |
run: | | |
cd test-engine-core-modules | |
python3 -m venv venv | |
source venv/bin/activate | |
pip install -r requirements.txt | |
bash <(curl -s -L https://detect.synopsys.com/detect9.sh) --blackduck.url=https://blackduck.aipo-imda.net/ --blackduck.api.token=${{ secrets.BLACKDUCK_TOKEN }} --detect.detector.search.depth=0 --detect.project.name=test-engine-core-modules --detect.project.version.name=$BRANCH --detect.source.path=. --detect.code.location.name="test-engine-core-modules_$BRANCH" --detect.excluded.directories=venv,tests --blackduck.trust.cert=true | |
deactivate | |
cd ../ | |
- name: Install & Scan Accumulated Local Effects (v2.x) | |
if: inputs.branch_to_test == 'v2.x' | |
run: | | |
cd stock-plugins/aiverify.stock.accumulated-local-effect/algorithms/accumulated_local_effect | |
python3 -m venv venv | |
source venv/bin/activate | |
bash <(curl -s -L https://detect.synopsys.com/detect9.sh) --blackduck.url=https://blackduck.aipo-imda.net/ --blackduck.api.token=${{ secrets.BLACKDUCK_TOKEN }} --detect.detector.search.depth=0 --detect.project.name=accumulated-local-effect --detect.project.version.name=$BRANCH --detect.source.path=. --detect.code.location.name="accumulated-local-effect_$BRANCH" --detect.excluded.directories=venv,tests --blackduck.trust.cert=true | |
deactivate | |
- name: Install & Scan Decorators (v2.x) | |
if: inputs.branch_to_test == 'v2.x' | |
run: | | |
cd stock-plugins/aiverify.stock.decorators | |
npm install | |
bash <(curl -s -L https://detect.synopsys.com/detect9.sh) --blackduck.url=https://blackduck.aipo-imda.net/ --blackduck.api.token=${{ secrets.BLACKDUCK_TOKEN }} --detect.detector.search.depth=0 --detect.project.name=decorators --detect.project.version.name=$BRANCH --detect.source.path=. --detect.code.location.name="decorators_$BRANCH" --detect.excluded.directories=venv,tests --blackduck.trust.cert=true | |
- name: Install & Scan Fairness Metric ToolBox For Classification (v2.x) | |
if: inputs.branch_to_test == 'v2.x' | |
run: | | |
cd stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-classification/algorithms/fairness_metrics_toolbox_for_classification | |
python3 -m venv venv | |
source venv/bin/activate | |
bash <(curl -s -L https://detect.synopsys.com/detect9.sh) --blackduck.url=https://blackduck.aipo-imda.net/ --blackduck.api.token=${{ secrets.BLACKDUCK_TOKEN }} --detect.detector.search.depth=0 --detect.project.name=fairness-metrics-toolbox-for-classification --detect.project.version.name=$BRANCH --detect.source.path=. --detect.code.location.name="fairness-metrics-toolbox-for-classification_$BRANCH" --detect.excluded.directories=venv,tests --blackduck.trust.cert=true | |
deactivate | |
- name: Install & Scan Fairness Metric ToolBox For Regression (v2.x) | |
if: inputs.branch_to_test == 'v2.x' | |
run: | | |
cd stock-plugins/aiverify.stock.fairness-metrics-toolbox-for-regression/algorithms/fairness_metrics_toolbox_for_regression | |
python3 -m venv venv | |
source venv/bin/activate | |
bash <(curl -s -L https://detect.synopsys.com/detect9.sh) --blackduck.url=https://blackduck.aipo-imda.net/ --blackduck.api.token=${{ secrets.BLACKDUCK_TOKEN }} --detect.detector.search.depth=0 --detect.project.name=fairness-metrics-toolbox-for-regression --detect.project.version.name=$BRANCH --detect.source.path=. --detect.code.location.name="fairness-metrics-toolbox-for-regression_$BRANCH" --detect.excluded.directories=venv,tests --blackduck.trust.cert=true | |
deactivate | |
- name: Install & Scan Blur Corruptions (v2.x) | |
if: inputs.branch_to_test == 'v2.x' | |
run: | | |
cd stock-plugins/aiverify.stock.image-corruption-toolbox/algorithms/blur_corruptions | |
python3 -m venv venv | |
source venv/bin/activate | |
bash <(curl -s -L https://detect.synopsys.com/detect9.sh) --blackduck.url=https://blackduck.aipo-imda.net/ --blackduck.api.token=${{ secrets.BLACKDUCK_TOKEN }} --detect.detector.search.depth=0 --detect.project.name=blur-corruptions --detect.project.version.name=$BRANCH --detect.source.path=. --detect.code.location.name="blur-corruptions_$BRANCH" --detect.excluded.directories=venv,tests --blackduck.trust.cert=true | |
deactivate | |
- name: Install & Scan Digital Corruptions (v2.x) | |
if: inputs.branch_to_test == 'v2.x' | |
run: | | |
cd stock-plugins/aiverify.stock.image-corruption-toolbox/algorithms/digital_corruptions | |
python3 -m venv venv | |
source venv/bin/activate | |
bash <(curl -s -L https://detect.synopsys.com/detect9.sh) --blackduck.url=https://blackduck.aipo-imda.net/ --blackduck.api.token=${{ secrets.BLACKDUCK_TOKEN }} --detect.detector.search.depth=0 --detect.project.name=digital-corruptions --detect.project.version.name=$BRANCH --detect.source.path=. --detect.code.location.name="digital-corruptions_$BRANCH" --detect.excluded.directories=venv,tests --blackduck.trust.cert=true | |
deactivate | |
- name: Install & Scan Environment Corruptions (v2.x) | |
if: inputs.branch_to_test == 'v2.x' | |
run: | | |
cd stock-plugins/aiverify.stock.image-corruption-toolbox/algorithms/environment_corruptions | |
python3 -m venv venv | |
source venv/bin/activate | |
bash <(curl -s -L https://detect.synopsys.com/detect9.sh) --blackduck.url=https://blackduck.aipo-imda.net/ --blackduck.api.token=${{ secrets.BLACKDUCK_TOKEN }} --detect.detector.search.depth=0 --detect.project.name=environment-corruptions --detect.project.version.name=$BRANCH --detect.source.path=. --detect.code.location.name="environment-corruptions_$BRANCH" --detect.excluded.directories=venv,tests --blackduck.trust.cert=true | |
deactivate | |
- name: Install & Scan General Corruptions (v2.x) | |
if: inputs.branch_to_test == 'v2.x' | |
run: | | |
cd stock-plugins/aiverify.stock.image-corruption-toolbox/algorithms/general_corruptions | |
python3 -m venv venv | |
source venv/bin/activate | |
bash <(curl -s -L https://detect.synopsys.com/detect9.sh) --blackduck.url=https://blackduck.aipo-imda.net/ --blackduck.api.token=${{ secrets.BLACKDUCK_TOKEN }} --detect.detector.search.depth=0 --detect.project.name=general-corruptions --detect.project.version.name=$BRANCH --detect.source.path=. --detect.code.location.name="general-corruptions_$BRANCH" --detect.excluded.directories=venv,tests --blackduck.trust.cert=true | |
deactivate | |
- name: Install & Scan Partial Dependence Plot (v2.x) | |
if: inputs.branch_to_test == 'v2.x' | |
run: | | |
cd stock-plugins/aiverify.stock.partial-dependence-plot/algorithms/partial_dependence_plot | |
python3 -m venv venv | |
source venv/bin/activate | |
bash <(curl -s -L https://detect.synopsys.com/detect9.sh) --blackduck.url=https://blackduck.aipo-imda.net/ --blackduck.api.token=${{ secrets.BLACKDUCK_TOKEN }} --detect.detector.search.depth=0 --detect.project.name=partial-dependence-plot --detect.project.version.name=$BRANCH --detect.source.path=. --detect.code.location.name="partial-dependence-plot_$BRANCH" --detect.excluded.directories=venv,tests --blackduck.trust.cert=true | |
deactivate | |
- name: Install & Scan Robustness ToolBox (v2.x) | |
if: inputs.branch_to_test == 'v2.x' | |
run: | | |
cd stock-plugins/aiverify.stock.robustness-toolbox/algorithms/robustness_toolbox | |
python3 -m venv venv | |
source venv/bin/activate | |
bash <(curl -s -L https://detect.synopsys.com/detect9.sh) --blackduck.url=https://blackduck.aipo-imda.net/ --blackduck.api.token=${{ secrets.BLACKDUCK_TOKEN }} --detect.detector.search.depth=0 --detect.project.name=robustness-toolbox --detect.project.version.name=$BRANCH --detect.source.path=. --detect.code.location.name="robustness-toolbox_$BRANCH" --detect.excluded.directories=venv,tests --blackduck.trust.cert=true | |
deactivate | |
- name: Install & Scan SHAP ToolBox (v2.x) | |
if: inputs.branch_to_test == 'v2.x' | |
run: | | |
cd stock-plugins/aiverify.stock.shap-toolbox/algorithms/shap_toolbox | |
python3 -m venv venv | |
source venv/bin/activate | |
bash <(curl -s -L https://detect.synopsys.com/detect9.sh) --blackduck.url=https://blackduck.aipo-imda.net/ --blackduck.api.token=${{ secrets.BLACKDUCK_TOKEN }} --detect.detector.search.depth=0 --detect.project.name=shap-toolbox --detect.project.version.name=$BRANCH --detect.source.path=. --detect.code.location.name="shap-toolbox_$BRANCH" --detect.excluded.directories=venv,tests --blackduck.trust.cert=true | |
deactivate |