Skip to content

Commit

Permalink
Merge pull request openhwgroup#1234 from openhwgroup/cva6/dev
Browse files Browse the repository at this point in the history
Merge cva6/dev up onto master
  • Loading branch information
MikeOpenHWGroup authored Mar 23, 2022
2 parents c4badaa + 153b1df commit 34fdb00
Show file tree
Hide file tree
Showing 55 changed files with 12,367 additions and 64 deletions.
142 changes: 129 additions & 13 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,129 @@
stages:
- test

riscv_tests_cv32:
stage: test
script:
- curl -H 'Private-Token:'$METRICS_CI_SERVICE
-H 'Content-Type:application/json'
-d '{"projectId":"cv32e40p_verif-core-v-verif-cv32", "regressionName":"cv32_sanity_regression",
"branch":"'$CI_COMMIT_REF_NAME'"}'
-X POST 'https://openhwgroup.metrics.ca/api/jobs/v1/runRegression'


# Copyright 2022 Thales DIS design services SAS
#
# Licensed under the Solderpad Hardware Licence, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# SPDX-License-Identifier: Apache-2.0 WITH SHL-2.0
# You may obtain a copy of the License at https://solderpad.org/licenses/
#
# Original Author: Yannick Casamatta ([email protected])

# Project maintainers must define following variables to adapt this CI to their runtime environment (Settings > CI/CD > Variables)
# - TAGS_RUNNER: shell,debian10
# - RUN_CV32_CI: 'true'/'false'
# - SETUP_CI_CV32_BRANCH: master
# - RUN_CVA6_CI: 'true'/'false'
# - SETUP_CI_CVA6_BRANCH: master
# - RUN_EXTERNAL_CI: 'true'/'false'
# - SETUP_CI_EXTERNALBRANCH: dev/mybranch

# A git repository named "setup-ci" must be created in the same namespace as core-v-verif and must contain the following files:
# - 'cv32/core-v-verif-cv32.yml' (if RUN_CV32_CI == 'true')
# - 'cva6/core-v-verif-cva6.yml' (if RUN_CVA6_CI == 'true')
# - 'common/core-v-verif.yml' (if $RUN_EXTERNAL_CI == 'true')
# Each of these files must at least contain the variables necessary for the execution of the associated downstream pipeline.
# Other elements such as new jobs can be added to overload the associated downstream pipeline included in this repository.
# Example can be found in ".gitlab-ci/setup-ci-example/"

# Guidelines:
# - Prefer using parent-child pipelines instead of including yml for ease of maintenance.
# - Specific elements should be defined in the triggered yml to avoid conflicts between pipelines.
# - In this file, only generic job/variables should be declared.


variables:
# variables defined here can't be overriden in downstream pipeline when upstream pipeline is triggered manually or by schedule.


workflow:
rules:
- if: '$CI_COMMIT_REF_NAME =~ /^master.*/ || $CI_COMMIT_REF_NAME =~ /^hotfix.*/ || $CI_COMMIT_REF_NAME =~ /^rc.*/ || $CI_COMMIT_REF_NAME =~ /^cva6\/dev.*/'
variables:
CI_WEIGHT: "full"
- if: '$CI_COMMIT_REF_NAME =~ /^dev.*/ || $CI_COMMIT_REF_NAME =~ /^feature.*/'
variables:
CI_WEIGHT: "short"
- if: '$CI_COMMIT_REF_NAME =~ /^cvvdev\/master.*/ || $CI_COMMIT_REF_NAME =~ /^cvvdev\/hotfix.*/ || $CI_COMMIT_REF_NAME =~ /^cvvdev\/rc.*/ || $CI_COMMIT_REF_NAME =~ /^cva6\/dev.*/'
variables:
CI_WEIGHT: "full"
CVA6_BRANCH: $CI_COMMIT_REF_NAME
- if: '$CI_COMMIT_REF_NAME =~ /^cvvdev\/dev.*/ || $CI_COMMIT_REF_NAME =~ /^cvvdev\/feature.*/'
variables:
CI_WEIGHT: "lite"
CVA6_BRANCH: $CI_COMMIT_REF_NAME
- when: never


check_env:
variables:
GIT_STRATEGY: none
tags: [$TAGS_RUNNER]
before_script:
after_script:
script:
- echo $TAGS_RUNNER
- echo $RUN_CV32_CI
- echo $SETUP_CI_CV32_BRANCH
- echo $RUN_CVA6_CI
- echo $SETUP_CI_CVA6_BRANCH
- echo $RUN_EXTERNAL_CI
- echo $SETUP_CI_EXTERNAL_BRANCH
- echo $CI_COMMIT_REF_NAME
- echo $CI_COMMIT_BRANCH
- echo $CVA6_BRANCH


# cv32 downstream pipeline describes in '.gitlab-ci/cv32.yml' + 'cv32/core-v-verif-cv32.yml' of 'setup-ci' repository
# If enabled by RUN_CV32_CI
cv32:
trigger:
include:
- local: .gitlab-ci/cv32.yml
- project: '$CI_PROJECT_NAMESPACE/setup-ci'
ref: '$SETUP_CI_CV32_BRANCH'
file: 'cv32/core-v-verif-cv32.yml'
strategy: depend
variables:
TAGS_RUNNER: $TAGS_RUNNER
SCOPE_CVV: "true"
rules:
- if: '$RUN_CV32_CI == "true"'
when: always
- when: never


# cva6 downstream pipeline describes in '.gitlab-ci/cva6.yml' + 'cva6/core-v-verif-cva6.yml' of 'setup-ci' repository
# If enabled by RUN_CVA6_CI
cva6:
trigger:
include:
- local: .gitlab-ci/cva6.yml
- project: '$CI_PROJECT_NAMESPACE/setup-ci'
ref: '$SETUP_CI_CVA6_BRANCH'
file: 'cva6/core-v-verif-cva6.yml'
strategy: depend
variables:
TAGS_RUNNER: $TAGS_RUNNER
SCOPE_CVV: "true"
rules:
- if: '$RUN_CVA6_CI == "true"'
when: always
- when: never


# If enabled by RUN_EXTERNAL_CI
# Use this entry point to run a pipeline describes in 'common/core-v-verif.yml' of 'setup-ci' repository
external:
trigger:
include:
- project: '$CI_PROJECT_NAMESPACE/setup-ci'
ref: '$SETUP_CI_EXTERNAL_BRANCH'
file: 'common/core-v-verif.yml'
strategy: depend
variables:
TAGS_RUNNER: $TAGS_RUNNER
SCOPE_CVV: "true"
rules:
- if: '$RUN_EXTERNAL_CI == "true"'
when: always
- when: never

119 changes: 119 additions & 0 deletions .gitlab-ci/cv32.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
# Copyright 2022 Thales DIS design services SAS
#
# Licensed under the Solderpad Hardware Licence, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# SPDX-License-Identifier: Apache-2.0 WITH SHL-2.0
# You may obtain a copy of the License at https://solderpad.org/licenses/
#
# Original Author: Yannick Casamatta ([email protected])

# Guidlines:

# This pipeline can be also be triggerd underneath by CI of CV32 repository, this requires to respected some rules:
# - In this pipeline, job artifacts must be only defined in a folder named "artifacts" at the root of the job's workdir.
# - In this pipeline, do not define before_script and after_script in the global section (avoid in job too).
# - Please prefix all jobs in this file with "pub_" which stands for "public" job.


variables:
GIT_STRATEGY: fetch
GIT_SUBMODULE_STRATEGY: recursive


.template_job_low_footprint:
variables:
GIT_STRATEGY: none
before_script:
- echo 'nothing'
after_script:
- echo 'nothing'

.template_job_init_cva6:
tags: [$TAGS_RUNNER]
rules:
- if: '$SCOPE_CVV == "true"'
when: on_success
- when: never

.template_job_full_ci:
tags: [$TAGS_RUNNER]
rules:
- when: on_success

.template_job_short_ci:
tags: [$TAGS_RUNNER]
rules:
- if: '$CI_WEIGHT == "full"'
when: on_success
- when: manual
allow_failure: true

.template_job_always_manual:
tags: [$TAGS_RUNNER]
rules:
- when: manual
allow_failure: true


stages:
- .pre
- one
- two
- three


pub_check_env:
stage: one
extends:
- .template_job_low_footprint
- .template_job_full_ci
needs: []
script:
- echo $CI_WEIGHT
- echo $RISCV
- echo $VERILATOR_ROOT
- echo $SPIKE_ROOT
- echo $BBL_ROOT
- echo $SYN_VCS_BASHRC
- echo $SYN_DCSHELL_BASHRC
- echo $QUESTA_BASHRC
- echo $VIVALDO_SETUP
- echo $CV32_REPO
- echo $CV32_BRANCH
- echo $CV32_HASH
- echo $CORE_V_VERIF_REPO
- echo $CORE_V_VERIF_BRANCH
- echo $CORE_V_VERIF_HASH
- echo $COMPLIANCE_REPO
- echo $COMPLIANCE_BRANCH
- echo $COMPLIANCE_HASH
- echo $COMPLIANCE_PATCH
- echo $TESTS_REPO
- echo $TESTS_BRANCH
- echo $TESTS_HASH
- echo $DV_REPO
- echo $DV_BRANCH
- echo $DV_HASH
- echo $DV_PATCH
- echo $TAGS_RUNNER
- echo $NUM_JOBS
- echo $FOUNDRY_PATH
- echo $TECH_NAME
- echo $SYNTH_PERIOD
- echo $LIB_VERILOG


# cv32e40p Quick start
pub_quickstart:
stage: one
extends:
- .template_job_full_ci
needs: []
rules:
- if: '$CI_WEIGHT == "full"'
when: on_success
- when: manual
allow_failure: true
script:
- make -C cv32e40p/sim/core

Loading

0 comments on commit 34fdb00

Please sign in to comment.