CI job for fabric.p4
Additionally introduces new defaults
Change-Id: I8d85855931de32b01fac0a436be4f6844919e97c
diff --git a/jjb/shell/fabric-p4/fabric-p4-build-bmv2.sh b/jjb/shell/fabric-p4/fabric-p4-build-bmv2.sh
new file mode 100644
index 0000000..53c5a80
--- /dev/null
+++ b/jjb/shell/fabric-p4/fabric-p4-build-bmv2.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+
+#
+# Copyright 2020-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# Build steps for bmv2
+
+# exit on errors
+set -eu -o pipefail
+
+export ONOS_ROOT=`pwd`
+
+echo "Step 1 - Build fabric.p4 for bmv2"
+cd $ONOS_ROOT/${RESOURCES_PATH}
+make all
+
+echo "Step 2 - Checking bmv2 artifacts"
+if [ -n "$(git status --porcelain)" ]; then
+ echo "The uploaded P4 build artifacts do not correspond to the expected ones. Please run the Makefile locally before pushing a a new change"
+ exit 1
+fi
+
+echo "Build for bmv2 done"
diff --git a/jjb/shell/fabric-p4/fabric-p4-build-tofino.sh b/jjb/shell/fabric-p4/fabric-p4-build-tofino.sh
new file mode 100644
index 0000000..e34082b
--- /dev/null
+++ b/jjb/shell/fabric-p4/fabric-p4-build-tofino.sh
@@ -0,0 +1,33 @@
+#!/usr/bin/env bash
+
+#
+# Copyright 2020-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# Build steps for fabric-tofino
+
+# exit on errors
+set -eu -o pipefail
+
+export ONOS_ROOT=`pwd`
+
+echo "Step 3 - Clone ${FABRIC_TOFINO}"
+git clone ${FABRIC_TOFINO_REPO}
+cd ${FABRIC_TOFINO}
+
+echo "Step 4 - Build fabric.p4 for tofino"
+make build SDE_DOCKER_IMG=${SDE_REPO}:${SDE_VER}-p4c
+
+echo "Build for tofino done"
diff --git a/jjb/shell/fabric-p4/fabric-p4-p4test.sh b/jjb/shell/fabric-p4/fabric-p4-p4test.sh
new file mode 100644
index 0000000..6c7e665
--- /dev/null
+++ b/jjb/shell/fabric-p4/fabric-p4-p4test.sh
@@ -0,0 +1,28 @@
+#!/usr/bin/env bash
+
+#
+# Copyright 2020-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# Build fabric-p4test
+
+# exit on errors
+set -eu -o pipefail
+
+echo "Step 5 - Clone ${FABRIC_P4TEST}"
+git clone ${FABRIC_P4TEST_REPO}
+cd ${FABRIC_P4TEST}
+
+echo "Build for ${FABRIC_P4TEST} done"
diff --git a/jjb/shell/fabric-p4/fabric-p4-test-bmv2.sh b/jjb/shell/fabric-p4/fabric-p4-test-bmv2.sh
new file mode 100644
index 0000000..f351296
--- /dev/null
+++ b/jjb/shell/fabric-p4/fabric-p4-test-bmv2.sh
@@ -0,0 +1,30 @@
+#!/usr/bin/env bash
+
+#
+# Copyright 2020-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# Run tests on bmv2
+
+# exit on errors
+set -eu -o pipefail
+
+export ONOS_ROOT=`pwd`
+
+echo "Step 6 - Run ${FABRIC_P4TEST} on bmv2"
+cd ${FABRIC_P4TEST}
+${BMV2_RUN} all
+
+echo "Tests on bmv2 passed"
diff --git a/jjb/shell/fabric-p4/fabric-p4-test-tofino.sh b/jjb/shell/fabric-p4/fabric-p4-test-tofino.sh
new file mode 100644
index 0000000..c45d918
--- /dev/null
+++ b/jjb/shell/fabric-p4/fabric-p4-test-tofino.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+
+#
+# Copyright 2020-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# Run tests on tm
+
+# exit on errors
+set -eu -o pipefail
+
+SRC_DIR=`pwd`
+export FABRIC_TOFINO=$SRC_DIR/${FABRIC_TOFINO}
+export SDE_DOCKER_IMG=${SDE_REPO}:${SDE_VER}-tm
+
+echo "Step 7 - Run ${FABRIC_P4TEST} on tm"
+cd ${FABRIC_P4TEST}
+${TM_RUN} fabric
+${TM_RUN} fabric-bng
+${TM_RUN} fabric-spgw
+${TM_RUN} fabric-int
+${TM_RUN} fabric-spgw-int
+
+echo "Tests on tm passed"