Skip to content

Commit

Permalink
Merge pull request #265 from usdot-fhwa-OPS/v2xrelease_6.1
Browse files Browse the repository at this point in the history
merge hotfix branch V2xrelease 6.1 to master
  • Loading branch information
dan-du-car authored Oct 21, 2021
2 parents fd855b3 + 11abfd9 commit e2702de
Show file tree
Hide file tree
Showing 31 changed files with 599 additions and 508 deletions.
235 changes: 123 additions & 112 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version: 2
version: 2.1

# Copyright (C) 2019-2020 LEIDOS.
#
Expand All @@ -24,121 +24,85 @@ version: 2
# Upload test results
# Every run command should start with source ${INIT_ENV} to ensure all default dependencies are available
jobs:
build:
sonar-scanner:
# Pull docker image
# XTERM used for better make output
docker:
- image: ubuntu:bionic-20190807
- image: usdotfhwaops/v2xhubamd:<< pipeline.git.branch >>
environment:
TERM: xterm

INIT_ENV: /home/V2X-Hub/.base-image/init-env.sh
# Set working directory
working_directory: "/home/V2X-Hub-build"
working_directory: "/home/V2X-Hub"
# Pull code and execute tests |
# Name of each run command defines purpose use
steps:
#setup remote docker
- setup_remote_docker :
docker_layer_caching: false
# Checkout PR branch
- checkout:
- run:
name: Install Sonar & Dependencies
- run:
name: Run Tests & Generate Gcovr Reports
command: |
set -x
apt-get update
apt-get -y install curl unzip sudo cmake gcovr gcc-7 g++-7 libboost1.65-dev libboost-thread1.65-dev libboost-regex1.65-dev libboost-log1.65-dev libboost-program-options1.65-dev libboost1.65-all-dev libxerces-c-dev libcurl4-openssl-dev libsnmp-dev libmysqlclient-dev libjsoncpp-dev uuid-dev libusb-dev libusb-1.0-0-dev libftdi-dev swig liboctave-dev gpsd libgps-dev portaudio19-dev libsndfile1-dev libglib2.0-dev libglibmm-2.4-dev libpcre3-dev libsigc++-2.0-dev libxml++2.6-dev libxml2-dev liblzma-dev dpkg-dev libmysqlcppconn-dev libev-dev libuv-dev git vim zip build-essential libssl-dev qtbase5-dev qtbase5-dev-tools curl libqhttpengine-dev libgtest-dev libcpprest-dev librdkafka-dev
cd /home/V2X-Hub-build/
mkdir -p ext
cd /home/V2X-Hub-build/ext/
git clone https://github.com/usdot-fhwa-OPS/libwebsockets.git
cd /home/V2X-Hub-build/ext/libwebsockets/
cmake -DLWS_WITH_SHARED=OFF .
make
make install
cd ../../../..
cd /home/V2X-Hub-build/ext
git clone https://github.com/usdot-fhwa-OPS/qhttpengine.git
cd /home/V2X-Hub-build/ext/qhttpengine
cmake .
make
make install
cd /home/V2X-Hub-build/ext/server
cmake .
make
make install
cd /home/V2X-Hub-build/ext/ccserver
cmake .
make
make install
cd /usr/src/googletest
mkdir build
cd /usr/src/googletest/build
cmake ..
make
make install
cd /usr/src/googletest
rm -rf build
ln -s /usr/local/lib/libgtest.a /usr/lib/libgtest.a
ln -s /usr/local/lib/libgtest_main.a /usr/lib/libgtest_main.a
cd /usr/local/lib/
ldconfig
cd /home/V2X-Hub-build/ext/
git clone https://github.com/HowardHinnant/date.git
cd /home/V2X-Hub-build/ext/date
cmake .
make
make install
ldconfig
cd ../../../../..
cd /home/V2X-Hub-build
mkdir .base-image
SONAR_DIR=/opt/sonarqube
mkdir $SONAR_DIR
curl -o $SONAR_DIR/sonar-scanner.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.2.0.1873-linux.zip
curl -o $SONAR_DIR/build-wrapper.zip https://sonarcloud.io/static/cpp/build-wrapper-linux-x86.zip
curl -sL https://deb.nodesource.com/setup_10.x | bash -
sudo apt-get install -y nodejs
mkdir /opt/jq
curl -L "https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64" -o /opt/jq/jq
chmod +x /opt/jq/jq
cd $SONAR_DIR
unzip $SONAR_DIR/sonar-scanner.zip -d .
unzip $SONAR_DIR/build-wrapper.zip -d .
rm $SONAR_DIR/sonar-scanner.zip
rm $SONAR_DIR/build-wrapper.zip
mv $(ls $SONAR_DIR | grep "sonar-scanner-") $SONAR_DIR/sonar-scanner/
mv $(ls $SONAR_DIR | grep "build-wrapper-") $SONAR_DIR/build-wrapper/
echo "export PATH=$PATH:/opt/jq/:$SONAR_DIR/sonar-scanner/bin/:$SONAR_DIR/build-wrapper/" > /home/V2X-Hub-build/.base-image/init-env.sh
source ${INIT_ENV}
cd /home/V2X-Hub/src
build-wrapper-linux-x86-64 --out-dir /home/V2X-Hub/bw-output bash build.sh
./coverage.sh
- run:
name: Build V2I-Hub
name: Run Sonar Scanner
command: |
set -x
source /home/V2X-Hub-build/.base-image/init-env.sh
cd /home/V2X-Hub-build/src
build-wrapper-linux-x86-64 --out-dir ../bw-output ./build.sh
source ${INIT_ENV}
echo $PATH
cd /home/V2X-Hub/src/
if [ -z "${CIRCLE_PULL_REQUEST}" ]; then
echo "Non-PR Build Detected. Running analysis on ${CIRCLE_BRANCH}"
cd /home/V2X-Hub/
sonar-scanner -X -Dproject.settings=.sonarqube/sonar-scanner.properties -Dsonar.login=${SONAR_SCANNER_TOKEN}
exit 0;
else
echo "PR branch ${CIRCLE_BRANCH}"
echo "Repo name ${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}"
echo "URL ${CIRCLE_PULL_REQUEST}"
export PR_NUM=`echo ${CIRCLE_PULL_REQUEST} | cut -d'/' -f7`
echo "PR number ${PR_NUM}"
export BASE_BRANCH_URL="https://api.github.com/repos/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}/pulls/${PR_NUM}"
export TARGET_BRANCH=$(curl "$BASE_BRANCH_URL" | jq '.base.ref' | tr -d '"')
echo "Target Branch = ${TARGET_BRANCH}"
cd /home/V2X-Hub/
sonar-scanner -X -Dproject.settings=.sonarqube/sonar-scanner.properties -Dsonar.login=${SONAR_SCANNER_TOKEN} -Dsonar.pullrequest.base=${TARGET_BRANCH} -Dsonar.pullrequest.branch=${CIRCLE_BRANCH} -Dsonar.pullrequest.key=${PR_NUM}
fi
sonar-scanner_develop:
# Pull docker image
# XTERM used for better make output
docker:
- image: usdotfhwaops/v2xhubamd:latest
environment:
TERM: xterm
INIT_ENV: /home/V2X-Hub/.base-image/init-env.sh
# Set working directory
working_directory: "/home/V2X-Hub"
# Pull code and execute tests |
# Name of each run command defines purpose use
steps:
#setup remote docker
- setup_remote_docker :
docker_layer_caching: false
- run:
name: Run Tests & Generate Gcovr Reports
command: |
set -x
cd /home/V2X-Hub-build/src
source ${INIT_ENV}
cd /home/V2X-Hub/src
build-wrapper-linux-x86-64 --out-dir /home/V2X-Hub/bw-output bash build.sh
./coverage.sh
- run:
name: Run Sonar Scanner
command: |
set -x
source /home/V2X-Hub-build/.base-image/init-env.sh
source ${INIT_ENV}
echo $PATH
cd /home/V2X-Hub/src/
if [ -z "${CIRCLE_PULL_REQUEST}" ]; then
echo "Non-PR Build Detected. Running analysis on ${CIRCLE_BRANCH}"
# cd /home/V2X-Hub-build
# sonar-scanner -X -Dproject.settings=.sonarqube/sonar-scanner.properties -Dsonar.login=${SONAR_SCANNER_TOKEN}
cd /home/V2X-Hub/
sonar-scanner -X -Dproject.settings=.sonarqube/sonar-scanner.properties -Dsonar.login=${SONAR_SCANNER_TOKEN}
exit 0;
else
echo "PR branch ${CIRCLE_BRANCH}"
Expand All @@ -149,60 +113,107 @@ jobs:
export BASE_BRANCH_URL="https://api.github.com/repos/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}/pulls/${PR_NUM}"
export TARGET_BRANCH=$(curl "$BASE_BRANCH_URL" | jq '.base.ref' | tr -d '"')
echo "Target Branch = ${TARGET_BRANCH}"
# git merge origin/${TARGET_BRANCH}
sonar-scanner -X -Dproject.settings=.sonarqube/sonar-scanner.properties -Dsonar.login=${SONAR_SCANNER_TOKEN} -Dsonar.pullrequest.base=${TARGET_BRANCH} -Dsonar.pullrequest.branch=${CIRCLE_BRANCH} -Dsonar.pullrequest.key=${PR_NUM}
cd /home/V2X-Hub/
sonar-scanner -X -Dproject.settings=.sonarqube/sonar-scanner.properties -Dsonar.login=${SONAR_SCANNER_TOKEN} -Dsonar.pullrequest.base=${TARGET_BRANCH} -Dsonar.pullrequest.branch=${CIRCLE_BRANCH} -Dsonar.pullrequest.key=${PR_NUM}
fi
docker_build&push :
docker_build_push :
machine:
image: ubuntu-1604:202004-01
steps:
- checkout
- run:
name: Docker Build
# Run MYSQL image and build v2xhub docker image
# Build v2xhub and php docker branch images
command: |
cd configuration/amd64/
docker-compose up -d db
cd ../../
docker build --network=host -t usdotfhwaops/v2xhubamd:${CIRCLE_BRANCH,,} .
docker build -f docker/php.yml -t usdotfhwaops/php:${CIRCLE_BRANCH,,} .
docker build -t usdotfhwaops/v2xhubamd:${CIRCLE_BRANCH,,} .
- run:
name: Docker Push
# Push v2xhub docker image to usdotfhwaops dockerhub
# Push v2xhub and php docker images to usdotfhwaops dockerhub
command: |
echo "$DOCKERHUB_PASSWORD" | docker login --username $DOCKERHUB_USERNAME --password-stdin
docker push usdotfhwaops/v2xhubamd:${CIRCLE_BRANCH,,}
docker_build&push_develop :
docker push usdotfhwaops/php:${CIRCLE_BRANCH,,}
docker_build_push_develop :
machine:
image: ubuntu-1604:202004-01
steps:
- checkout
- run:
name: Docker Build
# Run MYSQL image and build v2xhub docker image develop image
# Build v2xhub and php docker images develop images
command: |
cd configuration/amd64/
docker-compose up -d db
cd ../../
docker build --network=host -t usdotfhwaops/v2xhubamd:latest .
docker build -f docker/php.yml -t usdotfhwaops/php:latest .
docker build -t usdotfhwaops/v2xhubamd:latest .
- run:
name: Docker Push
# Push v2xhub and php docker images to usdotfhwaops dockerhub
command: |
echo "$DOCKERHUB_PASSWORD" | docker login --username $DOCKERHUB_USERNAME --password-stdin
docker push usdotfhwaops/v2xhubamd:latest
docker push usdotfhwaops/php:latest
arm_build_push :
machine:
image: ubuntu-2004:202101-01
resource_class: arm.medium
steps:
- checkout
- run:
name: Docker Build
# Run MYSQL image and build v2xhub docker image
command: |
docker build -f docker/Dockerfile-depl -t usdotfhwaops/v2xhubarm:${CIRCLE_BRANCH,,} .
- run:
name: Docker Push
# Push v2xhub docker image to usdotfhwaops dockerhub
command: |
echo "$DOCKERHUB_PASSWORD" | docker login --username $DOCKERHUB_USERNAME --password-stdin
docker push usdotfhwaops/v2xhubamd:latest
docker push usdotfhwaops/v2xhubarm:${CIRCLE_BRANCH,,}
arm_build_push_develop :
machine:
image: ubuntu-2004:202101-01
resource_class: arm.medium
steps:
- checkout
- run:
name: Docker Build
# Run MYSQL image and build v2xhub docker image develop image
command: |
docker build -f docker/Dockerfile-depl -t usdotfhwaops/v2xhubarm:latest .
- run:
name: Docker Push
# Push v2xhub docker image to usdotfhwaops dockerhub
command: |
echo "$DOCKERHUB_PASSWORD" | docker login --username $DOCKERHUB_USERNAME --password-stdin
docker push usdotfhwaops/v2xhubarm:latest
workflows:
version: 2
build:
jobs:
- docker_build&push_develop:
- docker_build_push_develop:
filters:
branches:
only: develop
- docker_build&push:
- docker_build_push:
filters:
branches:
ignore: develop
- build
- arm_build_push:
filters:
branches:
ignore: develop
- arm_build_push_develop :
filters:
branches:
only: develop
- sonar-scanner:
requires:
- docker_build_push
- sonar-scanner_develop:
requires:
- docker_build_push_develop


16 changes: 16 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Files to be ignored by the Docker context
# Any files mentioned here will not trigger Docker to force an image reuild
# if they change
.circleci
.vscode
/configuration
/data
/docker
/docs
/examples
/tests
/tools
*/*/secrets
Dockerfile
docker-compose.yml
*.md
65 changes: 0 additions & 65 deletions .sonarqube/Dockerfile

This file was deleted.

Loading

0 comments on commit e2702de

Please sign in to comment.