2023-03-05 02:10:44 +08:00
|
|
|
name: Project build
|
|
|
|
|
|
|
|
# github's push and pull_request events
|
|
|
|
# will trigger this action to run
|
2023-03-05 10:21:08 +08:00
|
|
|
on: [push, pull_request, workflow_dispatch]
|
2023-03-05 02:10:44 +08:00
|
|
|
|
|
|
|
jobs:
|
|
|
|
build:
|
|
|
|
# names the job as "Build (___)" where the blank
|
|
|
|
# is the name of the platform being built, e.g. "Build (Windows)"
|
|
|
|
name: "Build (${{ matrix.platform.name }})"
|
|
|
|
|
|
|
|
defaults:
|
|
|
|
run:
|
|
|
|
shell: bash
|
|
|
|
|
|
|
|
runs-on: ${{ matrix.platform.os }}
|
|
|
|
# causes a timeout if build step takes longer than 10 minutes
|
|
|
|
# (avg. time for all builds during testing was ~4 minutes)
|
|
|
|
timeout-minutes: 10
|
|
|
|
strategy:
|
|
|
|
# don't cancel other in-progress jobs if one fails
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
|
|
|
platform:
|
|
|
|
- { name: "Windows", os: windows-latest }
|
|
|
|
- { name: "MacOS", os: macos-latest }
|
|
|
|
- { name: "Linux", os: ubuntu-20.04 }
|
|
|
|
|
|
|
|
steps:
|
|
|
|
# the only dependency required, allows workflow to access the commit
|
|
|
|
# and the runner to find our CMakeLists.txt file
|
|
|
|
- uses: actions/checkout@master
|
|
|
|
|
|
|
|
- name: Create binary directory
|
|
|
|
run: |
|
2023-03-08 04:56:05 +08:00
|
|
|
cmake -B build
|
2023-03-05 02:10:44 +08:00
|
|
|
- name: Build project binary
|
|
|
|
run: |
|
|
|
|
cmake --build build --config Release
|