add github workflows

try to fix auto build

try to fix auto build

try to fix auto build

actions for all os

fix auto build for windows

test

move to msys

install latest cmake on linux

add .exe on windows

add .exe on windows
This commit is contained in:
2025-11-19 06:32:30 +03:00
parent b05ac56f5b
commit 325f3a35d4
4 changed files with 156 additions and 2 deletions
+77
View File
@@ -0,0 +1,77 @@
name: Push Build
on:
push:
branches: [main, master]
workflow_dispatch:
inputs:
commit_id:
description: "Commit ID to build from"
required: true
default: ""
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.commit_id || github.sha }}
submodules: recursive
- name: Install dependencies (Linux)
if: startsWith(runner.os, 'Linux')
run: |
sudo apt-get update
sudo apt-get install -y build-essential cmake
- name: Install latest CMake (Linux)
if: startsWith(runner.os, 'Linux')
run: |
sudo apt-get update
sudo apt-get install -y wget
wget https://github.com/Kitware/CMake/releases/download/v4.0.0/cmake-4.0.0-linux-x86_64.sh
sudo sh cmake-4.0.0-linux-x86_64.sh --skip-license --prefix=/usr/local
cmake --version
- name: Install dependencies (macOS)
if: startsWith(runner.os, 'macOS')
run: |
brew update
brew install cmake
- name: Install MSYS2 and MinGW-w64 (Windows)
if: startsWith(runner.os, 'Windows')
uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: true
install: >-
mingw-w64-x86_64-gcc
mingw-w64-x86_64-cmake
mingw-w64-x86_64-make
git
- name: Configure and Build (Windows)
if: startsWith(runner.os, 'Windows')
shell: msys2 {0}
run: |
cmake . -G "MinGW Makefiles"
cmake --build .
- name: Configure and Build (Linux/macOS)
if: startsWith(runner.os, 'Linux') || startsWith(runner.os, 'macOS')
run: |
cmake .
make
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: build_msp-${{ matrix.os }}-${{ github.event.inputs.commit_id || github.sha }}${{ startsWith(matrix.os, 'Windows') && '.exe' || '' }}
path: build_msp${{ startsWith(matrix.os, 'Windows') && '.exe' || '' }}
+77
View File
@@ -0,0 +1,77 @@
name: Release Build
on:
release:
types: [published]
workflow_dispatch:
inputs:
tag:
description: "Tag to build from (e.g., v1.0.0)"
required: true
default: ""
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.tag || github.ref }}
submodules: recursive
- name: Install dependencies (Linux)
if: startsWith(runner.os, 'Linux')
run: |
sudo apt-get update
sudo apt-get install -y build-essential cmake
- name: Install latest CMake (Linux)
if: startsWith(runner.os, 'Linux')
run: |
sudo apt-get update
sudo apt-get install -y wget
wget https://github.com/Kitware/CMake/releases/download/v4.0.0/cmake-4.0.0-linux-x86_64.sh
sudo sh cmake-4.0.0-linux-x86_64.sh --skip-license --prefix=/usr/local
cmake --version
- name: Install dependencies (macOS)
if: startsWith(runner.os, 'macOS')
run: |
brew update
brew install cmake
- name: Install MSYS2 and MinGW-w64 (Windows)
if: startsWith(runner.os, 'Windows')
uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: true
install: >-
mingw-w64-x86_64-gcc
mingw-w64-x86_64-cmake
mingw-w64-x86_64-make
git
- name: Configure and Build (Windows)
if: startsWith(runner.os, 'Windows')
shell: msys2 {0}
run: |
cmake . -G "MinGW Makefiles"
cmake --build .
- name: Configure and Build (Linux/macOS)
if: startsWith(runner.os, 'Linux') || startsWith(runner.os, 'macOS')
run: |
cmake .
make
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: build_msp-${{ matrix.os }}-${{ github.event.inputs.tag || github.ref_name }}${{ startsWith(matrix.os, 'Windows') && '.exe' || '' }}
path: build_msp${{ startsWith(matrix.os, 'Windows') && '.exe' || '' }}
+1 -1
View File
@@ -8,7 +8,7 @@ if(NOT CMAKE_BUILD_TYPE)
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
set(CMAKE_CXX_FLAGS "/W4")
set(CMAKE_CXX_FLAGS "/W4 /EHsc")
set(CMAKE_CXX_FLAGS_DEBUG "/Zi")
set(CMAKE_CXX_FLAGS_RELEASE "/O3")
else()