Skip to content

Commit

Permalink
Added workflows for release and master builds for base imags (#417)
Browse files Browse the repository at this point in the history
* Added workflows for release and master builds for base imags

* Update release workflow name
  • Loading branch information
paulbourelly999 authored Apr 10, 2024
1 parent 0344b4a commit df49749
Show file tree
Hide file tree
Showing 3 changed files with 271 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: develop_master
name: develop
on:
push:
branches: [develop, master]
branches: [develop]
jobs:
docker-build:
strategy:
Expand Down
134 changes: 134 additions & 0 deletions .github/workflows/master.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
name: master
on:
push:
branches: [master]
jobs:
docker-build:
strategy:
matrix:
include:
- ubuntu-codename: bionic
build_lanelet_aware: true
# Currently install_lanelet2_dependencies.sh script only works for bionic. Disabled lanelet_aware build on newer distributions pending script updates.
- ubuntu-codename: focal
build_lanelet_aware: false
# Currently install_lanelet2_dependencies.sh script only works for bionic. Disabled lanelet_aware build on newer distributions pending script updates.
- ubuntu-codename: jammy
build_lanelet_aware: false
runs-on: ubuntu-latest
steps:
- name: Log in to the Container registry
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Docker Build Streets Service Base
uses: docker/build-push-action@v3
with:
push: true
build-args: |
UBUNTU_CODENAME=${{ matrix.ubuntu-codename }}
tags: usdotfhwastol/streets_service_base:${{ matrix.ubuntu-codename }}
file: ./streets_service_base/Dockerfile
- name: Docker Build Streets Service Base Lanelet Aware
if: ${{ matrix.build_lanelet_aware }}
uses: docker/build-push-action@v3
with:
push: true
tags: usdotfhwastol/streets_service_base_lanelet_aware:${{ matrix.ubuntu-codename }}
file: ./streets_service_base_lanelet_aware/Dockerfile
build:
needs: docker-build
defaults:
run:
shell: bash
runs-on: ubuntu-latest-8-cores
container:
image: usdotfhwastol/streets_service_base_lanelet_aware:bionic
env:
DEBIAN_FRONTEND: noninteractive
SONAR_SCANNER_VERSION: "5.0.1.3006"
TERM: xterm
options: "--user root"
steps:
# Bionic's git version is not sufficient for actions/checkout 0 fetch-depth,
# remove this step after rebasing carma-streets to newer Ubuntu release
- name: Install newer git for checkout
run: |
apt-get update
apt-get install -y software-properties-common
add-apt-repository -u ppa:git-core/ppa
apt-get install -y git
- name: Checkout ${{ github.event.repository.name }}
uses: actions/checkout@v3.3.0
with:
path: ${{ github.event.repository.name }}
fetch-depth: 0
- name: Move source code
run: mv $GITHUB_WORKSPACE/${{ github.event.repository.name }} /home/carma-streets
- name: Install dependencies
run: |
cd /home/carma-streets/build_scripts
./install_test_dependencies.sh
mkdir -p /home/carma-streets/ext
./install_rest_server_dependencies.sh
- name: Install net-snmp
run: |
cd /home/carma-streets/ext/
apt-get install -y libperl-dev curl
curl -k -L -O http://sourceforge.net/projects/net-snmp/files/net-snmp/5.9.1/net-snmp-5.9.1.tar.gz
tar -xvzf /home/carma-streets/ext/net-snmp-5.9.1.tar.gz
cd net-snmp-5.9.1/
./configure --with-default-snmp-version="1" --with-sys-contact="@@no.where" --with-sys-location="Unknown" --with-logfile="/var/log/snmpd.log" --with-persistent-directory="/var/net-snmp"
make -j
make install
- name: Set up JDK 17
uses: actions/setup-java@v3 # The setup-java action provides the functionality for GitHub Actions runners for Downloading and setting up a requested version of Java
with:
java-version: 17
distribution: "temurin"
- name: Install Sonar
run: |
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-${SONAR_SCANNER_VERSION}-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_16.x | bash -
apt-get install -y nodejs unzip
# Set the JAVA_HOME to a compatible version of Java, e.g., Java 17
export JAVA_HOME=$GITHUB_WORKSPACE/java-17
cd $SONAR_DIR
for ZIP in *.zip; do
unzip "$ZIP" -d .
rm "$ZIP"
done
mv $(ls $SONAR_DIR | grep "sonar-scanner-") $SONAR_DIR/sonar-scanner/
mv $(ls $SONAR_DIR | grep "build-wrapper-") $SONAR_DIR/build-wrapper/
echo $SONAR_DIR/sonar-scanner/bin >> $GITHUB_PATH
echo $SONAR_DIR/build-wrapper >> $GITHUB_PATH
env:
JAVA_HOME: $GITHUB_WORKSPACE/java-17

- name: Check Java Version
run: |
java -version
echo $JAVA_HOME
- name: Build
run: |
cd /home/carma-streets/
build-wrapper-linux-x86-64 --out-dir /home/carma-streets/bw-output ./build.sh
- name: Tests
run: |
cd /home/carma-streets/
ldconfig
./coverage.sh
- name: Archive test results
uses: actions/upload-artifact@v3
with:
name: Test Results
path: /home/carma-streets/test_results
- name: Run SonarScanner
uses: usdot-fhwa-stol/actions/sonar-scanner@main
with:
sonar-token: ${{ secrets.SONAR_TOKEN }}
working-dir: /home/carma-streets
135 changes: 135 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
name: release
on:
push:
tags:
- "carma-system-*"
jobs:
docker-build:
strategy:
matrix:
include:
- ubuntu-codename: bionic
build_lanelet_aware: true
# Currently install_lanelet2_dependencies.sh script only works for bionic. Disabled lanelet_aware build on newer distributions pending script updates.
- ubuntu-codename: focal
build_lanelet_aware: false
# Currently install_lanelet2_dependencies.sh script only works for bionic. Disabled lanelet_aware build on newer distributions pending script updates.
- ubuntu-codename: jammy
build_lanelet_aware: false
runs-on: ubuntu-latest
steps:
- name: Log in to the Container registry
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Docker Build Streets Service Base
uses: docker/build-push-action@v3
with:
push: true
build-args: |
UBUNTU_CODENAME=${{ matrix.ubuntu-codename }}
tags: usdotfhwastol/streets_service_base:${{ github.ref_name }}-${{ matrix.ubuntu-codename }}
file: ./streets_service_base/Dockerfile
- name: Docker Build Streets Service Base Lanelet Aware
if: ${{ matrix.build_lanelet_aware }}
uses: docker/build-push-action@v3
with:
push: true
tags: usdotfhwastol/streets_service_base_lanelet_aware:${{ github.ref_name }}-${{ matrix.ubuntu-codename }}
file: ./streets_service_base_lanelet_aware/Dockerfile
build:
needs: docker-build
defaults:
run:
shell: bash
runs-on: ubuntu-latest-8-cores
container:
image: usdotfhwastol/streets_service_base_lanelet_aware:${{ github.ref_name }}-bionic
env:
DEBIAN_FRONTEND: noninteractive
SONAR_SCANNER_VERSION: "5.0.1.3006"
TERM: xterm
options: "--user root"
steps:
# Bionic's git version is not sufficient for actions/checkout 0 fetch-depth,
# remove this step after rebasing carma-streets to newer Ubuntu release
- name: Install newer git for checkout
run: |
apt-get update
apt-get install -y software-properties-common
add-apt-repository -u ppa:git-core/ppa
apt-get install -y git
- name: Checkout ${{ github.event.repository.name }}
uses: actions/checkout@v3.3.0
with:
path: ${{ github.event.repository.name }}
fetch-depth: 0
- name: Move source code
run: mv $GITHUB_WORKSPACE/${{ github.event.repository.name }} /home/carma-streets
- name: Install dependencies
run: |
cd /home/carma-streets/build_scripts
./install_test_dependencies.sh
mkdir -p /home/carma-streets/ext
./install_rest_server_dependencies.sh
- name: Install net-snmp
run: |
cd /home/carma-streets/ext/
apt-get install -y libperl-dev curl
curl -k -L -O http://sourceforge.net/projects/net-snmp/files/net-snmp/5.9.1/net-snmp-5.9.1.tar.gz
tar -xvzf /home/carma-streets/ext/net-snmp-5.9.1.tar.gz
cd net-snmp-5.9.1/
./configure --with-default-snmp-version="1" --with-sys-contact="@@no.where" --with-sys-location="Unknown" --with-logfile="/var/log/snmpd.log" --with-persistent-directory="/var/net-snmp"
make -j
make install
- name: Set up JDK 17
uses: actions/setup-java@v3 # The setup-java action provides the functionality for GitHub Actions runners for Downloading and setting up a requested version of Java
with:
java-version: 17
distribution: "temurin"
- name: Install Sonar
run: |
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-${SONAR_SCANNER_VERSION}-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_16.x | bash -
apt-get install -y nodejs unzip
# Set the JAVA_HOME to a compatible version of Java, e.g., Java 17
export JAVA_HOME=$GITHUB_WORKSPACE/java-17
cd $SONAR_DIR
for ZIP in *.zip; do
unzip "$ZIP" -d .
rm "$ZIP"
done
mv $(ls $SONAR_DIR | grep "sonar-scanner-") $SONAR_DIR/sonar-scanner/
mv $(ls $SONAR_DIR | grep "build-wrapper-") $SONAR_DIR/build-wrapper/
echo $SONAR_DIR/sonar-scanner/bin >> $GITHUB_PATH
echo $SONAR_DIR/build-wrapper >> $GITHUB_PATH
env:
JAVA_HOME: $GITHUB_WORKSPACE/java-17

- name: Check Java Version
run: |
java -version
echo $JAVA_HOME
- name: Build
run: |
cd /home/carma-streets/
build-wrapper-linux-x86-64 --out-dir /home/carma-streets/bw-output ./build.sh
- name: Tests
run: |
cd /home/carma-streets/
ldconfig
./coverage.sh
- name: Archive test results
uses: actions/upload-artifact@v3
with:
name: Test Results
path: /home/carma-streets/test_results
- name: Run SonarScanner
uses: usdot-fhwa-stol/actions/sonar-scanner@main
with:
sonar-token: ${{ secrets.SONAR_TOKEN }}
working-dir: /home/carma-streets

0 comments on commit df49749

Please sign in to comment.