1
0
Fork 0
mirror of https://github.com/TheLartians/ModernCppStarter.git synced 2025-08-31 22:21:13 +02:00

add docker ci/cd

This commit is contained in:
Michael Unknown 2022-04-05 23:20:29 +02:00
parent 11319c5e0b
commit 4b6cac32a6
4 changed files with 158 additions and 2 deletions

62
.github/workflows/docker-ci.yml vendored Normal file
View file

@ -0,0 +1,62 @@
name: run Docker CI
on:
push:
branches:
- main
- master
pull_request:
branches:
- main
- master
env:
CPM_SOURCE_CACHE: ${{ github.workspace }}/cpm_modules
jobs:
build:
name: CI build docker
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
#
# configure and build in GitHub CI as smoke test
# speed up configure step by installing boost as system lib, also use Ninja for faster builds
- name: speed up configure and build
shell: bash
run: sudo apt-get update && sudo apt-get install -y libboost-all-dev ninja-build
# use GitHub cache to cache dependencies
- uses: actions/cache@v2
with:
path: "**/cpm_modules"
key: ${{ github.workflow }}-cpm-modules-${{ hashFiles('**/CMakeLists.txt', '**/*.cmake') }}
- name: configure
run: cmake -S standalone -B build -G Ninja -D CMAKE_BUILD_TYPE=Release
- name: build
run: cmake --build build
#
# end GitHub CI local build
- name: set up Docker Buildx for multi-platform support
uses: docker/setup-buildx-action@v1
- name: set up QEMU for multi-platform support
uses: docker/setup-qemu-action@v1
# build image but do NOT push to DockerHub
- name: build Docker image
uses: docker/build-push-action@v2
with:
file: ./standalone/Dockerfile
platforms: linux/amd64,linux/arm64
push: false
tags: ${{ secrets.DOCKERHUB_USERNAME }}/webapi:ci
cache-from: type=gha
cache-to: type=gha,mode=max