From 49a14a8b7c7926628261b2a48a807745cffd0f56 Mon Sep 17 00:00:00 2001 From: Ryan Mast Date: Wed, 30 Oct 2019 19:52:32 -0700 Subject: Add GitHub Action workflow to build ninja using CMake --- .github/workflows/release-ninja-binaries.yml | 55 ++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 .github/workflows/release-ninja-binaries.yml 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 + + -- cgit v0.12 From da2dad895393d39bcc36b593edb6eb89e7cb5c0a Mon Sep 17 00:00:00 2001 From: Ryan Mast Date: Wed, 30 Oct 2019 22:30:12 -0700 Subject: Upload ninja binary to published releases --- .github/workflows/release-ninja-binaries.yml | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release-ninja-binaries.yml b/.github/workflows/release-ninja-binaries.yml index b241c53..e818c86 100644 --- a/.github/workflows/release-ninja-binaries.yml +++ b/.github/workflows/release-ninja-binaries.yml @@ -1,6 +1,9 @@ name: Release Ninja Binaries -on: [push] +on: + push: + release: + types: published jobs: build: @@ -37,7 +40,7 @@ jobs: cmake -DCMAKE_BUILD_TYPE=Release .. cmake --build . --parallel --config Release --target ninja - - name: Create artifact + - name: Create ninja archive shell: bash env: ZIP_NAME: ${{ matrix.zip_name }} @@ -52,4 +55,13 @@ jobs: 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 -- cgit v0.12 From cd9d614075f04eef9b8ed9384e2fafa812472a75 Mon Sep 17 00:00:00 2001 From: Ryan Mast Date: Wed, 30 Oct 2019 23:00:49 -0700 Subject: Strip unnecessary info from the Linux binary --- .github/workflows/release-ninja-binaries.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/release-ninja-binaries.yml b/.github/workflows/release-ninja-binaries.yml index e818c86..e46be17 100644 --- a/.github/workflows/release-ninja-binaries.yml +++ b/.github/workflows/release-ninja-binaries.yml @@ -40,6 +40,10 @@ jobs: 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: -- cgit v0.12 From f1a33131154ae7d9648aa82afac462859535fb62 Mon Sep 17 00:00:00 2001 From: Ryan Mast Date: Thu, 14 Nov 2019 22:25:18 -0800 Subject: Fix yaml lint (whitespace) errors in release action --- .github/workflows/release-ninja-binaries.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release-ninja-binaries.yml b/.github/workflows/release-ninja-binaries.yml index e46be17..03cd72e 100644 --- a/.github/workflows/release-ninja-binaries.yml +++ b/.github/workflows/release-ninja-binaries.yml @@ -21,7 +21,7 @@ jobs: steps: - uses: actions/checkout@v1 - + # Install OS specific dependencies - name: Install Linux dependencies if: matrix.os == 'ubuntu-latest' @@ -32,18 +32,18 @@ jobs: - 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: @@ -51,14 +51,14 @@ jobs: 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 -- cgit v0.12 From 9fa8a4b730d0bf49b13e502ac99f297ac387d707 Mon Sep 17 00:00:00 2001 From: Ryan Mast Date: Sat, 16 Nov 2019 10:15:50 -0800 Subject: Trigger test run for release builds on PRs --- .github/workflows/release-ninja-binaries.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release-ninja-binaries.yml b/.github/workflows/release-ninja-binaries.yml index 03cd72e..9115f18 100644 --- a/.github/workflows/release-ninja-binaries.yml +++ b/.github/workflows/release-ninja-binaries.yml @@ -1,6 +1,7 @@ name: Release Ninja Binaries on: + pull_request: push: release: types: published -- cgit v0.12