Skip to content

Feature/improve packaging #149

Feature/improve packaging

Feature/improve packaging #149

name: Daggy Build
on:
push:
tags:
- v*
pull_request:
jobs:
linux-gcc12_x64:
runs-on: ubuntu-latest
container:
image: docker.io/synacker2/daggy_gcc12
env:
NOT_ON_C3I: 1
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Cache conan packages
uses: actions/cache@v3
id: conan-data-gcc12
with:
path: ~/.conan2/p
key: conan-data-gcc12
- run: conan --version
- run: conan profile detect
- name: Conan config
run: conan config install CI/conan
- name: Conan install
run: conan install . --build=missing --profile:build=linux-gcc12_x64 --profile:host=linux-gcc12_x64 --output-folder=.
- name: Conan cache clean
run: conan cache clean "*" --source --build --temp --download
- name: git add safe dir
run: git config --global --add safe.directory $GITHUB_WORKSPACE
- name: Conan build
run: conan build . --profile:build=linux-gcc12_x64 --profile:host=linux-gcc12_x64 --build=missing --output-folder=.
- name: Tests
working-directory: build/Release
run: ctest -C Release --output-on-failure --output-junit tests/local_tests.xml
- name: linux-gcc12_x64 Tests Report
uses: mikepenz/action-junit-report@v4
with:
report_paths: build/Release/tests/local_tests.xml
summary: linux-gcc12_x64 Tests Report
- name: Packaging
working-directory: build/Release
run: cpack
- name: Archive production artifacts
uses: actions/upload-artifact@v3
with:
name: daggy_linux_x64
path: |
build/Release/*.deb
build/Release/*.rpm
build/Release/*.zip
win-msvc193_x64:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Cache conan packages
uses: actions/cache@v3
id: conan-data-msvc
with:
path: |
~/.conan2/p
c:\.conan2\
key: conan-data-msvc
- name: Cache QtIFW
uses: actions/cache@v3
id: qt-ifw4
with:
path: C:\QtIFW
key: qt-ifw4
- name: Cache vc_redist
uses: actions/cache@v3
id: vc_redist17
with:
path: ~/downloads
key: vc_redist17
- name: Set up Python 3.11
uses: actions/setup-python@v4
with:
python-version: '3.11'
cache: pip
- run: pip install -r requirements.txt
- run: conan --version
- run: conan profile detect
- name: Download vc_redist
run: |
if ( -not(Test-Path ~/downloads/vc_redist-x64.exe) ) {
$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest -UseBasicParsing -OutFile ~/downloads/vc_redist-x64.exe 'https://aka.ms/vs/17/release/vc_redist.x64.exe'
}
ls ~/downloads
- name: Make build dir
run: mkdir build
- name: Move vc_redist
run: mv ~/downloads/vc_redist-x64.exe build/
- name: Install QtIFW
run: |
if ( -not(Test-Path C:\QtIFW) ) {
$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest -UseBasicParsing -OutFile ~/QtInstallerFramework-win-x86.exe 'https://download.qt.io/official_releases/qt-installer-framework/4.6.0/QtInstallerFramework-windows-x64-4.6.0.exe'
~/QtInstallerFramework-win-x86.exe --am --al -c --root C:\QtIFW install
}
ls C:\QtIFW
- name: Conan config
run: conan config install CI/conan
- name: Conan install
run: conan install . --build=missing --profile:build=win-msvc193_x64 --profile:host=win-msvc193_x64 -of .
- name: Conan cache clean
working-directory: build
run: conan cache clean "*" --source --build --temp --download
- name: git add safe dir
run: git config --global --add safe.directory %GITHUB_WORKSPACE%
- name: Conan build
run: conan build . --profile:build=win-msvc193_x64 --profile:host=win-msvc193_x64 --build=missing -of .
- name: Tests
working-directory: build
run: ctest -C Release --output-on-failure --output-junit tests/local_tests.xml
- name: win-msvc193_x64 Tests Report
uses: mikepenz/action-junit-report@v4
with:
report_paths: build/Release/tests/local_tests.xml
summary: win-msvc193_x64 Tests Report
- name: Packaging
working-directory: build
run: cpack
- name: Archive production artifacts
uses: actions/upload-artifact@v3
with:
name: daggy_win_x64
path: |
build/*.exe
build/*.zip
macos-clang13_x64:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Cache conan packages
uses: actions/cache@v3
id: conan-data-clang
with:
path: ~/.conan2/p
key: conan-data-clang
- name: Set up Python 3.11
uses: actions/setup-python@v4
with:
python-version: '3.11'
cache: pip
- run: pip install -r requirements.txt
- run: conan --version
- run: conan profile detect
- name: Conan config
run: conan config install CI/conan
- name: Conan install
run: conan install . --build=missing --profile:build=macos-clang13_x64 --profile:host=macos-clang13_x64 -of .
- name: Conan remove build folders
run: conan cache clean "*" --source --build --temp --download
- name: Conan build
run: conan build . --profile:build=macos-clang13_x64 --profile:host=macos-clang13_x64 --build=missing -of .
- name: daggy version
working-directory: build/Release
run: bin/daggy --version
- name: Tests
working-directory: build/Release
run: ctest -C Release --output-on-failure --output-junit tests/local_tests.xml
- name: macos-clang13_x64 Tests Report
uses: mikepenz/action-junit-report@v4
with:
report_paths: build/Release/tests/local_tests.xml
summary: macos-clang13_x64 Tests Report
- name: Packaging
working-directory: build/Release
run: cpack
- name: Archive production artifacts
uses: actions/upload-artifact@v3
with:
name: daggy_macos_x64
path: |
build/Release/*.dmg
build/Release/*.zip