Skip to content

Commit

Permalink
Merge branch 'Azure-master' into storm_control
Browse files Browse the repository at this point in the history
  • Loading branch information
mohan-selvaraj committed Nov 2, 2021
2 parents 46a0f9a + c5385d5 commit 6be166a
Show file tree
Hide file tree
Showing 902 changed files with 750,040 additions and 9,093 deletions.
2 changes: 2 additions & 0 deletions .artifactignore
@@ -0,0 +1,2 @@
**/*
!dist/*.whl
63 changes: 63 additions & 0 deletions .azure-pipelines/build-docker-sonic-vs-template.yml
@@ -0,0 +1,63 @@
parameters:
- name: timeout
type: number
default: 60

- name: artifact_name
type: string

jobs:
- job:
displayName: "docker-sonic-vs"
timeoutInMinutes: ${{ parameters.timeout }}

pool:
vmImage: 'ubuntu-20.04'

steps:
- task: DownloadPipelineArtifact@2
inputs:
artifact: wheels
displayName: "Download sonic utilities artifact"

- task: DownloadPipelineArtifact@2
inputs:
source: specific
project: build
pipeline: 15
artifact: ${{ parameters.artifact_name }}
runVersion: 'latestFromBranch'
runBranch: 'refs/heads/master'
displayName: "Download docker-sonic-vs artifact"

- script: |
set -ex
echo $(Build.DefinitionName).$(Build.BuildNumber)
docker load < ../docker-sonic-vs.gz
docker images "docker-sonic-vs"
image_id=$(docker images "docker-sonic-vs:Azure.sonic-swss*" -q)
docker tag ${image_id} docker-sonic-vs:latest
docker images "docker-sonic-vs"
mkdir -p .azure-pipelines/docker-sonic-vs/wheels
cp -v ../*.whl .azure-pipelines/docker-sonic-vs/wheels
pushd .azure-pipelines
docker build --no-cache -t docker-sonic-vs:$(Build.DefinitionName).$(Build.BuildNumber) docker-sonic-vs
popd
docker save docker-sonic-vs:$(Build.DefinitionName).$(Build.BuildNumber) | gzip -c > $(Build.ArtifactStagingDirectory)/docker-sonic-vs.gz
displayName: "Build docker-sonic-vs image"
- publish: $(Build.ArtifactStagingDirectory)/
artifact: ${{ parameters.artifact_name }}
displayName: "Archive sonic docker vs image"
90 changes: 90 additions & 0 deletions .azure-pipelines/build_and_install_module.sh
@@ -0,0 +1,90 @@
#!/bin/bash
#
# build and install team/vrf driver
#

set -e

source /etc/os-release

function build_and_install_kmodule()
{
if sudo modprobe team 2>/dev/null && sudo modprobe vrf 2>/dev/null && sudo modprobe macsec 2>/dev/null; then
echo "The module team, vrf and macsec exist."
return
fi

[ -z "$WORKDIR" ] && WORKDIR=$(mktemp -d)
cd $WORKDIR

KERNEL_RELEASE=$(uname -r)
KERNEL_MAINVERSION=$(echo $KERNEL_RELEASE | cut -d- -f1)
EXTRAVERSION=$(echo $KERNEL_RELEASE | cut -d- -f2)
LOCALVERSION=$(echo $KERNEL_RELEASE | cut -d- -f3)
VERSION=$(echo $KERNEL_MAINVERSION | cut -d. -f1)
PATCHLEVEL=$(echo $KERNEL_MAINVERSION | cut -d. -f2)
SUBLEVEL=$(echo $KERNEL_MAINVERSION | cut -d. -f3)

# Install the required debian packages to build the kernel modules
apt-get install -y build-essential linux-headers-${KERNEL_RELEASE} autoconf pkg-config fakeroot
apt-get install -y flex bison libssl-dev libelf-dev
apt-get install -y libnl-route-3-200 libnl-route-3-dev libnl-cli-3-200 libnl-cli-3-dev libnl-3-dev

# Add the apt source mirrors and download the linux image source code
cp /etc/apt/sources.list /etc/apt/sources.list.bk
sed -i "s/^# deb-src/deb-src/g" /etc/apt/sources.list
apt-get update
apt-get source linux-image-unsigned-$(uname -r) > source.log

# Recover the original apt sources list
cp /etc/apt/sources.list.bk /etc/apt/sources.list
apt-get update

# Build the Linux kernel module drivers/net/team and vrf
cd $(find . -maxdepth 1 -type d | grep -v "^.$")
make allmodconfig
mv .config .config.bk
cp /boot/config-$(uname -r) .config
grep NET_TEAM .config.bk >> .config
echo CONFIG_NET_VRF=m >> .config
echo CONFIG_MACSEC=m >> .config
echo CONFIG_NET_VENDOR_MICROSOFT=y >> .config
echo CONFIG_MICROSOFT_MANA=m >> .config
echo CONFIG_SYSTEM_REVOCATION_LIST=n >> .config
make VERSION=$VERSION PATCHLEVEL=$PATCHLEVEL SUBLEVEL=$SUBLEVEL EXTRAVERSION=-${EXTRAVERSION} LOCALVERSION=-${LOCALVERSION} modules_prepare
make M=drivers/net/team
mv drivers/net/Makefile drivers/net/Makefile.bak
echo 'obj-$(CONFIG_NET_VRF) += vrf.o' > drivers/net/Makefile
echo 'obj-$(CONFIG_MACSEC) += macsec.o' >> drivers/net/Makefile
make M=drivers/net

# Install the module
TEAM_DIR=$(echo /lib/modules/$(uname -r)/kernel/net/team)
NET_DIR=$(echo /lib/modules/$(uname -r)/kernel/net)
if [ ! -e "$TEAM_DIR/team.ko" ]; then
mkdir -p $TEAM_DIR
cp drivers/net/team/*.ko $TEAM_DIR/
modinfo $TEAM_DIR/team.ko
depmod
modprobe team
fi
if [ ! -e "$NET_DIR/vrf.ko" ]; then
mkdir -p $NET_DIR
cp drivers/net/vrf.ko $NET_DIR/
modinfo $NET_DIR/vrf.ko
depmod
modprobe vrf
fi
if [ ! -e "$NET_DIR/macsec.ko" ]; then
mkdir -p $NET_DIR
cp drivers/net/macsec.ko $NET_DIR/
modinfo $NET_DIR/macsec.ko
depmod
modprobe macsec
fi

cd /tmp
rm -rf $WORKDIR
}

build_and_install_kmodule
11 changes: 11 additions & 0 deletions .azure-pipelines/docker-sonic-vs/Dockerfile
@@ -0,0 +1,11 @@
FROM docker-sonic-vs

ARG docker_container_name

ADD ["wheels", "/wheels"]

# Uninstalls only sonic-utilities and does not impact its dependencies
RUN pip3 uninstall -y sonic-utilities

# Installs sonic-utilities, adds missing dependencies, upgrades out-dated depndencies
RUN pip3 install /wheels/sonic_utilities-1.2-py3-none-any.whl
87 changes: 87 additions & 0 deletions .azure-pipelines/test-docker-sonic-vs-template.yml
@@ -0,0 +1,87 @@
parameters:
- name: timeout
type: number
default: 180

- name: log_artifact_name
type: string

jobs:
- job:
displayName: vstest
timeoutInMinutes: ${{ parameters.timeout }}

pool:
vmImage: 'ubuntu-20.04'

steps:
- task: DownloadPipelineArtifact@2
inputs:
artifact: docker-sonic-vs
displayName: "Download docker sonic vs image"

- task: DownloadPipelineArtifact@2
inputs:
source: specific
project: build
pipeline: 9
artifact: sonic-swss-common.amd64.ubuntu20_04
runVersion: 'latestFromBranch'
runBranch: 'refs/heads/master'
displayName: "Download sonic swss common deb packages"

- task: DownloadPipelineArtifact@2
inputs:
source: specific
project: build
pipeline: 15
artifact: sonic-swss-pytests
runVersion: 'latestFromBranch'
runBranch: 'refs/heads/master'
displayName: "Download sonic swss pytests"

- checkout: self
displayName: "Checkout sonic-utilities"

- script: |
set -x
sudo .azure-pipelines/build_and_install_module.sh
sudo apt-get install -y libhiredis0.14
sudo dpkg -i --force-confask,confnew ../libswsscommon_1.0.0_amd64.deb || apt-get install -f
sudo dpkg -i ../python3-swsscommon_1.0.0_amd64.deb
# install packages for vs test
sudo apt-get install -y net-tools bridge-utils vlan
sudo apt-get install -y python3-pip
sudo pip3 install pytest==4.6.2 attrs==19.1.0 exabgp==4.0.10 distro==1.5.0 docker==4.4.1 redis==3.3.4 flaky==3.7.0
displayName: "Install dependencies"
- script: |
set -x
sudo docker load -i ../docker-sonic-vs.gz
docker ps
ip netns list
cd ../
mkdir -p sonic-swss
pushd sonic-swss
tar xf ../pytest.tgz
pushd tests
sudo py.test -v --force-flaky --junitxml=tr.xml --imgname=docker-sonic-vs:$(Build.DefinitionName).$(Build.BuildNumber)
displayName: "Run vs tests"
- task: PublishTestResults@2
inputs:
testResultsFiles: '**/tr.xml'
testRunTitle: vstest
condition: always()

- script: |
cp -r ../sonic-swss/tests/log $(Build.ArtifactStagingDirectory)/
displayName: "Collect logs"
condition: always()
- publish: $(Build.ArtifactStagingDirectory)/
artifact: ${{ parameters.log_artifact_name }}@$(System.JobAttempt)
displayName: "Publish logs"
condition: always()
6 changes: 6 additions & 0 deletions .coveragerc
@@ -0,0 +1,6 @@
[run]
branch = True
source = .
omit =
.eggs/*
tests/*
60 changes: 0 additions & 60 deletions .github/ISSUE_TEMPLATE.md

This file was deleted.

30 changes: 0 additions & 30 deletions .github/PULL_REQUEST_TEMPLATE.md

This file was deleted.

0 comments on commit 6be166a

Please sign in to comment.