Files
build_msp/.github/workflows/push.yml
T
arabianq 325f3a35d4 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
2025-11-19 07:34:52 +03:00

78 lines
2.6 KiB
YAML

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' || '' }}