summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Niklas Hasse <jhasse@bixense.com>2019-11-19 08:52:36 (GMT)
committerGitHub <noreply@github.com>2019-11-19 08:52:36 (GMT)
commit59c9a00519b31c2799d20f7937b86a1618bd01f0 (patch)
tree6a23f51b4a00bf7999d6f54f194c38ab06bf04d2
parent2d15b04e411229cb902332957281622119025e77 (diff)
parent9fa8a4b730d0bf49b13e502ac99f297ac387d707 (diff)
downloadNinja-59c9a00519b31c2799d20f7937b86a1618bd01f0.zip
Ninja-59c9a00519b31c2799d20f7937b86a1618bd01f0.tar.gz
Ninja-59c9a00519b31c2799d20f7937b86a1618bd01f0.tar.bz2
Merge pull request #1681 from nightlark/release-ninja-binaries
Add GitHub Actions workflow for building release binaries
-rw-r--r--.github/workflows/release-ninja-binaries.yml72
1 files changed, 72 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..9115f18
--- /dev/null
+++ b/.github/workflows/release-ninja-binaries.yml
@@ -0,0 +1,72 @@
+name: Release Ninja Binaries
+
+on:
+ pull_request:
+ push:
+ release:
+ types: published
+
+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: Strip Linux binary
+ if: matrix.os == 'ubuntu-latest'
+ run: cd build && strip ninja
+
+ - name: Create ninja archive
+ 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
+
+ - name: Upload release asset
+ if: github.event.action == 'published'
+ uses: actions/upload-release-asset@v1.0.1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ github.event.release.upload_url }}
+ asset_path: ./artifact/${{ matrix.zip_name }}.zip
+ asset_name: ${{ matrix.zip_name }}.zip
+ asset_content_type: application/zip