Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 4 additions & 27 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -46,20 +46,17 @@ go-deps-clean:
$(RM) -r vendor

.PHONY: cvl
cvl: $(GO_DEPS)
cvl: $(GO_DEPS) | models
$(MAKE) -C ./cvl

cvl-all: $(GO_DEPS)
$(MAKE) -C ./cvl all

cvl-clean:
$(MAKE) -C ./cvl clean

cvl-test:
$(MAKE) -C ./cvl gotest

.PHONY: translib
translib: $(GO_DEPS)
translib: $(GO_DEPS) | models
$(MAKE) -C ./translib

translib-all: $(GO_DEPS)
Expand All @@ -68,31 +65,11 @@ translib-all: $(GO_DEPS)
translib-clean:
$(MAKE) -C ./translib clean

transformer-test:
ifdef INCLUDE_TEST_MODELS
cp ./translib/transformer/test/*test-xfmr-annot.yang models/yang/annotations/.
cp ./translib/transformer/test/openconfig-test-xfmr.yang models/yang/.
cp ./translib/transformer/test/sonic-test-xfmr.yang models/yang/sonic/.
if ! grep -q test ./config/transformer/models_list; then \
echo "openconfig-test-xfmr.yang" >> ./config/transformer/models_list; \
echo "openconfig-test-xfmr-annot.yang" >> ./config/transformer/models_list; \
echo "sonic-test-xfmr-annot.yang" >> ./config/transformer/models_list; \
fi
endif

transformer-test-clean:
ifdef INCLUDE_TEST_MODELS
$(RM) ./models/yang/annotations/*test*.yang
$(RM) ./models/yang/*test*.yang
$(RM) ./models/yang/sonic/*test*.yang
sed -i '/test/d' ./config/transformer/models_list
endif

.PHONY: models
models: transformer-test
models: | $(GO_DEPS)
$(MAKE) -C models/yang

models-clean: transformer-test-clean
models-clean:
$(MAKE) -C models/yang clean

annotgen: $(GOYANG_BIN)
Expand Down
3 changes: 3 additions & 0 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@ stages:

# LIBYANG
sudo dpkg -i ../target/debs/bullseye/libyang*1.0.73*.deb

# sonic-yang-models
sudo pip3 install ../target/python-wheels/bullseye/sonic_yang_models-1.0-py3-none-any.whl
displayName: "Install dependency"

- script: |
Expand Down
66 changes: 40 additions & 26 deletions cvl/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -22,53 +22,67 @@ SRC_FILES=$(shell find . -name '*.go' | grep -v '_test.go' | grep -v '/tests/')
TEST_FILES=$(wildcard *_test.go)
TOP_DIR := ..
BUILD_DIR:=$(TOP_DIR)/build/cvl
CVL_PKG=$(TOP_DIR)/build/pkg/linux_amd64/cvl.a

CVL_SCHEMA_DIR = $(BUILD_DIR)/schema
CVL_SCHEMA = $(CVL_SCHEMA_DIR)/.done
SONIC_YANG_DIR = $(TOP_DIR)/build/yang/sonic
SONIC_YANG_FILES = $(shell find $(SONIC_YANG_DIR) -name '*.yang')
YANG_SRC_DIR = ../models/yang

CVL_TEST_DIR = $(TOP_DIR)/build/tests/cvl
CVL_TEST_BIN = $(CVL_TEST_DIR)/cvl.test
CVL_TEST_SCHEMA_DIR = $(CVL_TEST_DIR)/testdata/schema
CVL_TEST_SCHEMA = $(CVL_TEST_SCHEMA_DIR)/.done
CVL_TEST_YANGS = $(wildcard testdata/schema/*.yang)
CVL_TEST_YANGS += $(wildcard $(YANG_SRC_DIR)/sonic/common/*.yang)

DEFAULT_TARGETS = deps schema
DEFAULT_TARGETS = $(CVL_SCHEMA)
ifeq ($(NO_TEST_BINS),)
DEFAULT_TARGETS += $(CVL_TEST_BIN) test-schema
DEFAULT_TARGETS += $(CVL_TEST_BIN)
endif

default: $(DEFAULT_TARGETS)

all: $(DEFAULT_TARGETS) $(CVL_PKG)
all: $(DEFAULT_TARGETS)

deps:
mkdir -p $(BUILD_DIR)
.SECONDEXPANSION:

$(CVL_PKG): $(SRC_FILES)
@echo "Building $@"
$(GO) build -mod=vendor -o $(CVL_PKG) ../cvl
.PRECIOUS: %/.
%/.:
mkdir -p $@

$(CVL_TEST_BIN): $(TEST_FILES) $(SRC_FILES) | test-schema
$(CVL_TEST_BIN): $(TEST_FILES) $(SRC_FILES) $(CVL_TEST_SCHEMA)
cp -r testdata/*.json $(@D)/testdata
$(GO) test -mod=vendor -cover -coverpkg=../cvl,../cvl/internal/util,../cvl/internal/yparser -c ../cvl -o $@

.PHONY: schema
schema:
$(MAKE) -C schema
schema: $(CVL_SCHEMA)

$(CVL_SCHEMA): $(SONIC_YANG_FILES) | $$(@D)/.
$(TOP_DIR)/tools/pyang/generate_yin.py \
--no-err-prefix \
--path=$(SONIC_YANG_DIR) \
--path=$(YANG_SRC_DIR)/common \
--out-dir=$(@D)
touch $@

test-schema: | schema
$(MAKE) -C testdata/schema
cp -n $(CVL_SCHEMA_DIR)/*.yin $(CVL_TEST_SCHEMA_DIR)/
.PHONY: test-schema
test-schema: $(CVL_TEST_SCHEMA)

tests:
$(MAKE) -C tests
$(CVL_TEST_SCHEMA): $(CVL_TEST_YANGS) | $$(@D)/.
$(TOP_DIR)/tools/pyang/generate_yin.py \
--no-err-prefix \
--path=testdata/schema \
--path=$(YANG_SRC_DIR)/common \
--path=$(YANG_SRC_DIR)/sonic/common \
--out-dir=$(@D)
touch $@

gotest:schema test-schema
CVL_CFG_FILE=$(abspath .)/conf/cvl_cfg.json CVL_SCHEMA_PATH=$(CVL_TEST_SCHEMA_DIR) tests/run_test.sh
gotest: $(CVL_TEST_SCHEMA)
CVL_CFG_FILE=$(abspath .)/conf/cvl_cfg.json \
CVL_SCHEMA_PATH=$(abspath $(CVL_TEST_SCHEMA_DIR)) \
tests/run_test.sh

clean:
$(MAKE) -C tests clean
$(MAKE) -C schema clean
$(MAKE) -C testdata/schema clean
$(RM) -r $(CVL_PKG)
$(RM) -r $(CVL_TEST_DIR)
$(RM) -r $(CVL_TEST_DIR) $(BUILD_DIR)

cleanall:clean

84 changes: 0 additions & 84 deletions cvl/schema/Makefile

This file was deleted.

56 changes: 0 additions & 56 deletions cvl/testdata/schema/Makefile

This file was deleted.

2 changes: 1 addition & 1 deletion cvl/tests/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ all:tests
tests: $(OUT)

%:%.go
make -C ../testdata/schema
make -C .. test-schema
@echo "Building $@ ..."
$(GO) build -mod=vendor -gcflags="all=-N -l" $<

Expand Down
1 change: 1 addition & 0 deletions debian/sonic-mgmt-common-codegen.install
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ models/yang/allyangs.tree sonic/src/sonic-mgmt-common/models/yang
models/yang/allyangs_tree.html sonic/src/sonic-mgmt-common/models/yang
models/yang/sonic_allyangs.tree sonic/src/sonic-mgmt-common/models/yang
models/yang/sonic_allyangs_tree.html sonic/src/sonic-mgmt-common/models/yang
build/yang sonic/src/sonic-mgmt-common/build
13 changes: 13 additions & 0 deletions debian/sonic-mgmt-common-codegen.postinst
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/usr/bin/env bash

set -e

cd sonic/src/sonic-mgmt-common

GITUSER=$(stat -c "%u:%g" .)

GENSRC+=( build )
GENSRC+=( $(awk '/^build\//{next} /^[^#]/{print $1}' < debian/sonic-mgmt-common-codegen.install) )

for F in "${GENSRC[@]}"; do chown -vR ${GITUSER} "$F"; done

14 changes: 7 additions & 7 deletions debian/sonic-mgmt-common.install
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Yang models
models/yang/*.yang usr/models/yang
models/yang/common/*.yang usr/models/yang
#models/yang/extensions/*.yang usr/models/yang
models/yang/sonic/*.yang usr/models/yang
models/yang/sonic/common/*.yang usr/models/yang
models/yang/annotations/*.yang usr/models/yang
config/transformer/models_list usr/models/yang
build/yang/*.yang usr/models/yang
build/yang/common/*.yang usr/models/yang
#build/yang/extensions/*.yang usr/models/yang
build/yang/sonic/*.yang usr/models/yang
build/yang/sonic/common/*.yang usr/models/yang
build/yang/annotations/*.yang usr/models/yang
build/transformer/models_list usr/models/yang
models/yang/version.xml usr/models/yang

# CVL files
Expand Down
Loading