Skip to content

Commit

Permalink
add docker and update CI to use it instead of ubuntu18
Browse files Browse the repository at this point in the history
  • Loading branch information
AmyrAhmady committed Oct 15, 2024
1 parent ce28f82 commit dc3c4ed
Show file tree
Hide file tree
Showing 4 changed files with 78 additions and 52 deletions.
61 changes: 9 additions & 52 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,47 +90,13 @@ jobs:
with:
name: streamer-win-debug-${{ steps.current-time.outputs.formattedTime }}-${{ steps.vars.outputs.sha_short }}
path: build/bin/Debug
build-linux-debug:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
with:
submodules: recursive

- name: Declare github variables
id: vars
shell: bash
run: |
echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
- name: install packages
run: sudo apt-get install g++-multilib

- name: Install CMake
uses: lukka/[email protected]

- name: Generate build files
run: mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Debug

- name: Build
run: |
cd build
cmake --build . --config Debug
build-linux:
runs-on: ubuntu-latest

- name: Get current time
uses: josStorer/get-current-time@v2
id: current-time
with:
format: YYYYMMDD
strategy:
matrix:
config: [Debug, Release]

- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: streamer-linux-debug-${{ steps.current-time.outputs.formattedTime }}-${{ steps.vars.outputs.sha_short }}
path: build/bin
build-linux-release:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
with:
Expand All @@ -143,19 +109,10 @@ jobs:
echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
- name: install packages
run: sudo apt-get install g++-multilib

- name: Install CMake
uses: lukka/[email protected]

- name: Generate build files
run: mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Release

- name: Build
run: |
cd build
cmake --build . --config Release
cd docker
CONFIG=${{ matrix.config == 'Debug' && 'Debug' || 'MinSizeRel' }} ./build.sh
- name: Get current time
uses: josStorer/get-current-time@v2
Expand All @@ -166,5 +123,5 @@ jobs:
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: streamer-linux-release-${{ steps.current-time.outputs.formattedTime }}-${{ steps.vars.outputs.sha_short }}
path: build/bin
name: streamer-linux-${{ matrix.config == 'Debug' && '-debug' || '-release' }}-${{ steps.current-time.outputs.formattedTime }}-${{ steps.vars.outputs.sha_short }}
path: docker/build/bin
29 changes: 29 additions & 0 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
FROM ubuntu:18.04
RUN \
dpkg --add-architecture i386 && \
apt-get update && \
apt-get install -y \
gpg \
wget \
&& \
wget -O- https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | \
gpg --dearmor - | \
tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null && \
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ bionic main' | \
tee /etc/apt/sources.list.d/kitware.list >/dev/null && \
apt-get update && \
apt-get install -y \
cmake \
ninja-build \
g++-multilib \
libstdc++6:i386 \
libc6:i386 \
&& \
useradd -m user

USER user

ENV PATH=~/.local/bin:${PATH}

COPY docker-entrypoint.sh /
CMD /docker-entrypoint.sh
27 changes: 27 additions & 0 deletions docker/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/bin/bash

# Available configs: Debug, RelWithDebInfo, [Release]
[[ -z "$CONFIG" ]] \
&& config=Release \
|| config="$CONFIG"

docker build \
-t streamer-omp/build:ubuntu-18.04 ./ \
|| exit 1

folders=('build')
for folder in "${folders[@]}"; do
if [[ ! -d "./${folder}" ]]; then
mkdir ${folder}
fi
sudo chown -R 1000:1000 ${folder} || exit 1
done

docker run \
--rm \
-t \
-w /code \
-v $PWD/..:/code \
-v $PWD/build:/code/build \
-e CONFIG=${config} \
streamer-omp/build:ubuntu-18.04
13 changes: 13 additions & 0 deletions docker/docker-entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/sh
[ -z $CONFIG ] && config=Release || config="$CONFIG"

cmake \
-S . \
-B build \
-G Ninja \
-DCMAKE_BUILD_TYPE=$config \
&&
cmake \
--build build \
--config $config \
--parallel $(nproc)

0 comments on commit dc3c4ed

Please sign in to comment.