initial commit
This commit is contained in:
commit
b44ce7bd77
2716 files changed
+559005
No files matched your search
+100
@@ -0,0 +1,100 @@
|
||||
version: 2.1
|
||||
|
||||
setup: true
|
||||
orbs:
|
||||
continuation: circleci/continuation@1
|
||||
|
||||
jobs:
|
||||
set-matrix:
|
||||
executor: continuation/default
|
||||
docker:
|
||||
- image: cimg/base:current
|
||||
resource_class: large
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
name: Set matrix
|
||||
command: |
|
||||
MATRIX_JSON=$(python .github/workflows/ci_set_matrix.py)
|
||||
echo "MATRIX_JSON=$MATRIX_JSON"
|
||||
|
||||
BUILDSYSTEM_LIST=(
|
||||
"cmake"
|
||||
"make"
|
||||
)
|
||||
|
||||
TOOLCHAIN_LIST=(
|
||||
"aarch64-gcc"
|
||||
"arm-clang"
|
||||
"arm-gcc"
|
||||
"esp-idf"
|
||||
"ft9xx-gcc"
|
||||
"msp430-gcc"
|
||||
"riscv-gcc"
|
||||
)
|
||||
|
||||
# only build IAR if not forked PR, since IAR token is not shared
|
||||
if [ -z $CIRCLE_PR_USERNAME ]; then
|
||||
TOOLCHAIN_LIST+=("arm-iar")
|
||||
fi
|
||||
|
||||
gen_build_entry() {
|
||||
local build_system="$1"
|
||||
local toolchain="$2"
|
||||
local family="$3"
|
||||
local build_args=""
|
||||
|
||||
if [[ "$toolchain" == "arm-iar" || "$build_system" == "make" ]]; then
|
||||
build_args="--one-random"
|
||||
fi
|
||||
|
||||
if [[ "$toolchain" == "esp-idf" ]]; then
|
||||
echo " - build-vm:" >> .circleci/config2.yml
|
||||
else
|
||||
echo " - build:" >> .circleci/config2.yml
|
||||
fi
|
||||
echo " matrix:" >> .circleci/config2.yml
|
||||
echo " alias: build-${build_system}-${toolchain}" >> .circleci/config2.yml
|
||||
echo " parameters:" >> .circleci/config2.yml
|
||||
echo " build-system: ['$build_system']" >> .circleci/config2.yml
|
||||
echo " toolchain: ['$toolchain']" >> .circleci/config2.yml
|
||||
echo " family: $family" >> .circleci/config2.yml
|
||||
echo " resource_class: ['large']" >> .circleci/config2.yml
|
||||
echo " build-args: ['$build_args']" >> .circleci/config2.yml
|
||||
}
|
||||
|
||||
# Collect all build aliases for code-metrics requires (cmake only, exclude esp-idf)
|
||||
BUILD_ALIASES=()
|
||||
|
||||
for build_system in "${BUILDSYSTEM_LIST[@]}"; do
|
||||
for toolchain in "${TOOLCHAIN_LIST[@]}"; do
|
||||
# make does not support these toolchains
|
||||
if [ "$build_system" == "make" ] && { [ "$toolchain" == "arm-clang" ] || [ "$toolchain" == "arm-iar" ] || [ "$toolchain" == "esp-idf" ]; }; then
|
||||
continue
|
||||
fi
|
||||
|
||||
FAMILY=$(echo $MATRIX_JSON | jq -r ".\"$toolchain\"")
|
||||
echo "FAMILY_${toolchain}=$FAMILY"
|
||||
gen_build_entry "$build_system" "$toolchain" "$FAMILY"
|
||||
|
||||
# Only add cmake builds: excluding esp-idf or build_args="--one-random" to metrics requirements
|
||||
if [ "$build_system" == "cmake" ] && [ "$toolchain" != "esp-idf" ] && [ "$toolchain" != "arm-iar" ]; then
|
||||
BUILD_ALIASES+=("build-${build_system}-${toolchain}")
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
# Add code-metrics job that requires all build jobs
|
||||
echo " - code-metrics:" >> .circleci/config2.yml
|
||||
echo " requires:" >> .circleci/config2.yml
|
||||
for alias in "${BUILD_ALIASES[@]}"; do
|
||||
echo " - $alias" >> .circleci/config2.yml
|
||||
done
|
||||
|
||||
- continuation/continue:
|
||||
configuration_path: .circleci/config2.yml
|
||||
|
||||
workflows:
|
||||
set-matrix:
|
||||
jobs:
|
||||
- set-matrix
|
||||
Reference in new issue
Block a user