-
Notifications
You must be signed in to change notification settings - Fork 15
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update dockerfile and move instructions to scripts
Added deployment_test workflow to replace circleci integration test workflow
- Loading branch information
1 parent
a2c1965
commit 3e09834
Showing
4 changed files
with
128 additions
and
58 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
on: | ||
push: | ||
branches: | ||
- develop | ||
- master | ||
- "release/*" | ||
pull_request: | ||
types: [opened, synchronize, reopened] | ||
name: Deployment Test | ||
jobs: | ||
sonarcloud: | ||
runs-on: ubuntu-latest | ||
container: | ||
image: ubuntu:22.04 | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
with: | ||
# Disabling shallow clone is recommended for improving relevancy of reporting | ||
fetch-depth: 0 | ||
submodules: recursive | ||
- name: Install dependencies | ||
run: | | ||
./scripts/install_dependencies.sh | ||
- name: Build | ||
run: | | ||
./script/build.sh | ||
- name: Configure network and set privileges | ||
run: | | ||
sed -i '/<\/Engine>/ i \ \ \ \ \ <Host name="carmacloud" appBase="webapps/carmacloud" unpackWARs="false" autoDeploy="false">\n </Host>' tomcat/conf/server.xml | ||
echo -e '127.0.0.1\tcarmacloud' | sudo tee -a /etc/hosts | ||
sudo groupadd tomcat | ||
sudo useradd -g tomcat -m tomcat | ||
chmod g+r tomcat/conf/* | ||
chmod -R o-rwx tomcat/webapps/* | ||
sudo chown -R root:tomcat tomcat | ||
sudo chown -R tomcat:tomcat tomcat/logs | ||
sudo chown -R tomcat:tomcat tomcat/temp | ||
sudo chown -R tomcat:tomcat tomcat/work | ||
sudo mv tomcat /opt/ | ||
- name: Start Tomcat and verify deployment | ||
run: | | ||
sudo /opt/tomcat/bin/catalina.sh start | ||
sleep 10 | ||
if [[ `sudo grep "startup in" /opt/tomcat/logs/catalina.out | wc -l` -ne "1" ]]; then exit 1; fi | ||
if [[ `wget -O - http://carmacloud:8080 | grep "CARMAcloud Login" | wc -l` -ne "1" ]]; then exit 2; fi | ||
if [[ `wget -O - --post-data="uname=ccadmin&pword=admin_testpw" http://carmacloud:8080/api/auth/login | grep "token" | wc -l` -ne "1" ]]; then exit 3; fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,61 +1,15 @@ | ||
FROM ubuntu:22.04 | ||
# update package manager and install prerequisites | ||
RUN apt-get update -y && \ | ||
apt-get install -y build-essential cmake git wget pkg-config sqlite3 libcurl4-openssl-dev libsqlite3-dev libtiff5-dev | ||
# download geodesy projection library source | ||
WORKDIR /tmp | ||
RUN wget -q https://download.osgeo.org/proj/proj-9.3.0.tar.gz && \ | ||
tar -xzf proj-9.3.0.tar.gz && \ | ||
rm proj-9.3.0.tar.gz && \ | ||
mv proj-9.3.0 proj && \ | ||
mkdir -p proj/build | ||
# download openjdk | ||
RUN wget -q https://download.java.net/java/GA/jdk21.0.1/415e3f918a1f4062a0074a2794853d0d/12/GPL/openjdk-21.0.1_linux-x64_bin.tar.gz && \ | ||
tar -xzf openjdk-21.0.1_linux-x64_bin.tar.gz && \ | ||
rm openjdk-21.0.1_linux-x64_bin.tar.gz && \ | ||
mv jdk-21.0.1 /opt/jdk | ||
# download apache tomcat | ||
RUN wget -q https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.83/bin/apache-tomcat-9.0.83.tar.gz && \ | ||
tar -xzf apache-tomcat-9.0.83.tar.gz && \ | ||
rm apache-tomcat-9.0.83.tar.gz && \ | ||
mv apache-tomcat-9.0.83 tomcat && \ | ||
sed -i 's/appBase="webapps"/appBase="webapps\/carmacloud"/g' tomcat/conf/server.xml && \ | ||
rm -r tomcat/webapps/* | ||
COPY scripts/install_dependencies.sh /home/cc/scripts/install_dependencies.sh | ||
RUN /home/cc/scripts/install_dependencies.sh | ||
COPY src /home/cc/src | ||
COPY lib /home/cc/lib | ||
COPY web /home/cc/web | ||
COPY osmbin /home/cc/osmbin | ||
COPY *.sh /home/cc/ | ||
COPY scripts/build.sh /home/cc/scripts/build.sh | ||
|
||
# download carma-cloud source | ||
RUN git clone https://github.com/usdot-fhwa-stol/carma-cloud.git cc && \ | ||
rm cc/lib/libcs2cswrapper.so | ||
# compile geodesy projection library | ||
WORKDIR /tmp/proj/build | ||
RUN cmake .. && \ | ||
cmake --build . && \ | ||
cmake --build . --target install && \ | ||
ldconfig | ||
# compile jni projection library | ||
WORKDIR /tmp/cc/src/cc/geosrv | ||
RUN gcc -c -std=c11 -fPIC -Wall -I /opt/jdk/include/ -I /opt/jdk/include/linux/ -I /tmp/proj/src/ cs2cswrapper.c && \ | ||
gcc -shared cs2cswrapper.o -lproj -o /usr/local/lib/libcs2cswrapper.so | ||
# compile carma-cloud java source and cleanup | ||
WORKDIR /tmp | ||
RUN mkdir -p tomcat/webapps/carmacloud/ROOT && \ | ||
mv cc/web/* tomcat/webapps/carmacloud/ROOT && \ | ||
mkdir -p tomcat/webapps/carmacloud/ROOT/WEB-INF/classes && \ | ||
find ./cc/src -name "*.java" > sources.txt && \ | ||
/opt/jdk/bin/javac -cp tomcat/lib/servlet-api.jar:cc/lib/commons-compress-1.18.jar:cc/lib/javax.json.jar:cc/lib/json-20210307.jar:cc/lib/keccakj.jar:cc/lib/log4j-api-2.16.0.jar:cc/lib/vector_tile.jar -d tomcat/webapps/carmacloud/ROOT/WEB-INF/classes @sources.txt && \ | ||
rm sources.txt && \ | ||
gunzip cc/osmbin/*.gz && \ | ||
mv cc/lib tomcat/webapps/carmacloud/ROOT/WEB-INF && \ | ||
mv cc/osmbin/rop.csv tomcat/webapps/carmacloud && \ | ||
mv cc/osmbin/storm.csv tomcat/webapps/carmacloud && \ | ||
mv cc/osmbin/units.csv tomcat/webapps/carmacloud && \ | ||
mv cc/osmbin tomcat/webapps/carmacloud && \ | ||
mv tomcat/webapps/carmacloud/ROOT/WEB-INF/log4j2.properties tomcat/webapps/carmacloud/ROOT/WEB-INF/classes && \ | ||
touch tomcat/webapps/carmacloud/event.csv && \ | ||
mkdir -p tomcat/work/carmacloud/xodr && \ | ||
mkdir -p tomcat/work/carmacloud/validate/xodr && \ | ||
/opt/jdk/bin/java -cp tomcat/webapps/carmacloud/ROOT/WEB-INF/classes/:tomcat/lib/servlet-api.jar cc.ws.UserMgr ccadmin admin_testpw > tomcat/webapps/carmacloud/user.csv && \ | ||
echo 'JAVA_HOME=/opt/jdk' > tomcat/bin/setenv.sh && \ | ||
sed -i 's/<param-value>ambassador-address<\/param-value>/<param-value>172.2.0.2<\/param-value>/g' tomcat/webapps/carmacloud/ROOT/WEB-INF/web.xml && \ | ||
sed -i 's/<param-value>simulation-url<\/param-value>/<param-value>http:\/\/172.2.0.47:8080\/carmacloud\/simulation<\/param-value>/g' tomcat/webapps/carmacloud/ROOT/WEB-INF/web.xml && \ | ||
mv tomcat /opt && \ | ||
rm -r proj && \ | ||
rm -r cc | ||
RUN /home/cc/scripts/build.sh | ||
ENTRYPOINT [ "/opt/tomcat/bin/catalina.sh", "run" ] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
#!/bin/bash | ||
|
||
# exit on errors | ||
set -e | ||
cd tmp/ | ||
mv jdk-21.0.1 /opt/jdk | ||
echo "JAVA HOME is ${JAVA_HOME}" | ||
cd /home/cc/src/cc/geosrv | ||
gcc -c -std=c11 -fPIC -Wall -I "${JAVA_HOME}/opt/include/" -I "${JAVA_HOME}/opt/include/linux/" -I /tmp/proj/src/ cs2cswrapper.c | ||
gcc -shared cs2cswrapper.o -lproj -o /usr/local/lib/libcs2cswrapper.so | ||
|
||
cd /tmp | ||
mkdir -p tomcat/webapps/carmacloud/ROOT | ||
mv cc/web/* tomcat/webapps/carmacloud/ROOT | ||
mkdir -p tomcat/webapps/carmacloud/ROOT/WEB-INF/classes | ||
find ./cc/src -name "*.java" > sources.txt | ||
/opt/jdk/bin/javac -cp tomcat/lib/servlet-api.jar:cc/lib/commons-compress-1.18.jar:cc/lib/javax.json.jar:cc/lib/json-20210307.jar:cc/lib/keccakj.jar:cc/lib/log4j-api-2.16.0.jar:cc/lib/vector_tile.jar -d tomcat/webapps/carmacloud/ROOT/WEB-INF/classes @sources.txt | ||
rm sources.txt | ||
gunzip cc/osmbin/*.gz | ||
mv cc/lib tomcat/webapps/carmacloud/ROOT/WEB-INF | ||
mv cc/osmbin/rop.csv tomcat/webapps/carmacloud | ||
mv cc/osmbin/storm.csv tomcat/webapps/carmacloud | ||
mv cc/osmbin/units.csv tomcat/webapps/carmacloud | ||
mv cc/osmbin tomcat/webapps/carmacloud | ||
mv tomcat/webapps/carmacloud/ROOT/WEB-INF/log4j2.properties tomcat/webapps/carmacloud/ROOT/WEB-INF/classes | ||
touch tomcat/webapps/carmacloud/event.csv | ||
mkdir -p tomcat/work/carmacloud/xodr | ||
mkdir -p tomcat/work/carmacloud/validate/xodr | ||
/opt/jdk/bin/java -cp tomcat/webapps/carmacloud/ROOT/WEB-INF/classes/:tomcat/lib/servlet-api.jar cc.ws.UserMgr ccadmin admin_testpw > tomcat/webapps/carmacloud/user.csv | ||
echo 'JAVA_HOME=/opt/jdk' > tomcat/bin/setenv.sh | ||
sed -i 's/<param-value>ambassador-address<\/param-value>/<param-value>127.0.0.1<\/param-value>/g' tomcat/webapps/carmacloud/ROOT/WEB-INF/web.xml | ||
sed -i 's/<param-value>simulation-url<\/param-value>/<param-value>http:\/\/127.0.0.1:8080\/carmacloud\/simulation<\/param-value>/g' tomcat/webapps/carmacloud/ROOT/WEB-INF/web.xml | ||
mv tomcat /opt | ||
rm -r proj | ||
rm -r cc |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
#!/bin/bash | ||
|
||
# exit on errors | ||
set -e | ||
apt-get update -y | ||
apt-get install -y build-essential cmake git wget pkg-config sqlite3 libcurl4-openssl-dev libsqlite3-dev libtiff5-dev openjdk-21-jdk | ||
# download geodesy projection library source and build | ||
cd /tmp | ||
wget -q https://download.osgeo.org/proj/proj-9.3.0.tar.gz | ||
tar -xzf proj-9.3.0.tar.gz | ||
rm proj-9.3.0.tar.gz | ||
mv proj-9.3.0 proj | ||
mkdir -p proj/build | ||
cd /tmp/proj/build | ||
cmake .. | ||
cmake --build . && \ | ||
cmake --build . --target install && \ | ||
ldconfig | ||
# download apache tomcat | ||
cd /tmp | ||
wget -q https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.83/bin/apache-tomcat-9.0.83.tar.gz | ||
tar -xzf apache-tomcat-9.0.83.tar.gz | ||
rm apache-tomcat-9.0.83.tar.gz | ||
mv apache-tomcat-9.0.83 tomcat | ||
sed -i 's/appBase="webapps"/appBase="webapps\/carmacloud"/g' tomcat/conf/server.xml | ||
rm -r tomcat/webapps/* | ||
# download and install JDK 21 | ||
cd /tmp | ||
wget --no-check-certificate -q https://download.java.net/java/GA/jdk21.0.1/415e3f918a1f4062a0074a2794853d0d/12/GPL/openjdk-21.0.1_linux-x64_bin.tar.gz | ||
tar -xzf openjdk-21.0.1_linux-x64_bin.tar.gz | ||
mv jdk-21.0.1 /opt/jdk | ||
rm openjdk-21.0.1_linux-x64_bin.tar.gz | ||
export JAVA_HOME="/opt/jdk" | ||
|