Skip to content

CI?!

CI?! #30

Workflow file for this run

---
name: Build
on:
push:
branches-ignore: [ master ]
tags:
- "**"
pull_request:
branches: [ master ]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
################################################################################
# Build macOS
################################################################################
build_macos:
runs-on: macos-12
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
pip install conan
- name: Configure conan
run: |
conan --version
conan profile detect
conan remote add conan-burrito "${{ secrets.CONAN_UPLOAD }}"
conan remote login conan-burrito "${{ secrets.CONAN_USER_NAME }}" -p "${{ secrets.CONAN_PASSWORD }}"
- name: Build x86
run: |
conan build -b missing -s compiler.cppstd=17 -s build_type=Release \
-c:h tools.cmake.cmake_layout:build_folder_vars='["settings.arch"]' \
-s os.version=10.13 -s:h arch=x86_64 .
cd build/x86_64/Release
cpack -G ZIP
- name: Build ARM
run: |
conan build -b missing -s compiler.cppstd=17 -s build_type=Release \
-c:h tools.cmake.cmake_layout:build_folder_vars='["settings.arch"]' \
-s os.version=11.0 -s:h arch=armv8 .
cd build/armv8/Release
cpack -G ZIP
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: serial-plotter-macos
path: ${{ github.workspace }}/build/**/serial_plotter-*.zip
if-no-files-found: error
- name: Upload conan packages
run: |
conan upload -r=conan-burrito '*:*' -c
################################################################################
# Build Ubuntu
################################################################################
build_ubuntu:
runs-on: ubuntu-22.04
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
pip install conan
- name: Configure conan
run: |
conan --version
conan profile detect
conan remote add conan-burrito "${{ secrets.CONAN_UPLOAD }}"
conan remote login conan-burrito "${{ secrets.CONAN_USER_NAME }}" -p "${{ secrets.CONAN_PASSWORD }}"
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y ninja-build pkg-config wget libva-dev libvdpau-dev libx11-xcb-dev \
libfontenc-dev libice-dev libsm-dev libxaw7-dev libxcomposite-dev libxcursor-dev \
libxdamage-dev libxext-dev libxfixes-dev libxi-dev libxinerama-dev libxkbfile-dev \
libxmu-dev libxmuu-dev libxpm-dev libxrandr-dev libxrender-dev libxres-dev libxss-dev \
libxt-dev libxtst-dev libxv-dev libxvmc-dev libxxf86vm-dev libxcb-render0-dev \
libxcb-render-util0-dev libxcb-xkb-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev \
libxcb-randr0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-xinerama0-dev \
libxcb-dri3-dev uuid-dev libxcb-util-dev libxcb-util0-dev libxcb-cursor-dev \
mesa-common-dev libegl-dev
- name: Build
run: |
conan build -b missing -s compiler.cppstd=17 -s build_type=Release .
cd build/Release
cpack -G ZIP
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: serial-plotter-ubuntu
path: ${{ github.workspace }}/build/Release/serial_plotter-*.zip
if-no-files-found: error
- name: Upload conan packages
run: |
conan upload -r=conan-burrito '*:*' -c
################################################################################
# Build Windows
################################################################################
build_windows:
runs-on: windows-2022
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
pip install conan==1.60.1
- name: Configure conan
run: |
conan --version
conan profile detect
conan remote add conan-burrito "${{ secrets.CONAN_UPLOAD }}"
conan user -r conan-burrito "${{ secrets.CONAN_USER_NAME }}" -p "${{ secrets.CONAN_PASSWORD }}"
- name: Build
run: |
mkdir build
cd build
conan install -b missing -s compiler.cppstd=17 -s build_type=Release ..
conan build ..
cpack -G ZIP
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: serial-plotter-windows
path: ${{ github.workspace }}/build/serial_plotter-*.zip
if-no-files-found: error
# On Windows uploading does nothing: uploaded packages are just ignored
# - name: Upload conan packages
# run: |
# conan upload -r=conan-burrito -c --all *
################################################################################
# Deploy
################################################################################
deploy:
if: startsWith(github.ref, 'refs/tags/')
needs:
- build_macos
- build_ubuntu
- build_windows
runs-on: ubuntu-latest
steps:
- name: Download all build artifacts
uses: actions/download-artifact@v2
with:
path: artifact
- name: List artifacts
run: ls -R
working-directory: artifact
- name: Release
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: |
artifact/**/*
fail_on_unmatched_files: true