summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Mast <nightlark@users.noreply.github.com>2019-10-30 19:52:32 -0700
committerRyan Mast <mast.ryan@gmail.com>2019-10-30 21:50:35 -0700
commit49a14a8b7c7926628261b2a48a807745cffd0f56 (patch)
treeef70e05a4c64b49c17b1f76e89df89753aa7b0bd
parent40d45a7bb3bd07d50562a468f9c550f555eb2f8a (diff)
downloadninja-49a14a8b7c7926628261b2a48a807745cffd0f56.tar.gz
Add GitHub Action workflow to build ninja using CMake
-rw-r--r--.github/workflows/release-ninja-binaries.yml55
1 files changed, 55 insertions, 0 deletions
diff --git a/.github/workflows/release-ninja-binaries.yml b/.github/workflows/release-ninja-binaries.yml
new file mode 100644
index 0000000..b241c53
--- /dev/null
+++ b/.github/workflows/release-ninja-binaries.yml
@@ -0,0 +1,55 @@
+name: Release Ninja Binaries
+
+on: [push]
+
+jobs:
+ build:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ubuntu-latest, macOS-latest, windows-latest]
+ include:
+ - os: ubuntu-latest
+ zip_name: ninja-linux
+ - os: macOS-latest
+ zip_name: ninja-mac
+ - os: windows-latest
+ zip_name: ninja-win
+
+ steps:
+ - uses: actions/checkout@v1
+
+ # Install OS specific dependencies
+ - name: Install Linux dependencies
+ if: matrix.os == 'ubuntu-latest'
+ run: sudo apt-get install re2c
+ - name: Install macOS dependencies
+ if: matrix.os == 'macOS-latest'
+ run: brew install re2c p7zip cmake
+ - name: Install Windows dependencies
+ if: matrix.os == 'windows-latest'
+ run: choco install re2c
+
+ - name: Build ninja
+ shell: bash
+ run: |
+ mkdir build && cd build
+ cmake -DCMAKE_BUILD_TYPE=Release ..
+ cmake --build . --parallel --config Release --target ninja
+
+ - name: Create artifact
+ shell: bash
+ env:
+ ZIP_NAME: ${{ matrix.zip_name }}
+ run: |
+ mkdir artifact
+ 7z a artifact/${ZIP_NAME}.zip $(find ./build -name ninja -or -name ninja.exe)
+
+ # Upload ninja binary archive as an artifact
+ - name: Upload artifact
+ uses: actions/upload-artifact@v1
+ with:
+ name: ninja-binary-archives
+ path: artifact
+
+