diff options
author | Jan Niklas Hasse <jhasse@bixense.com> | 2024-04-11 16:44:05 (GMT) |
---|---|---|
committer | Jan Niklas Hasse <jhasse@bixense.com> | 2024-04-11 16:44:05 (GMT) |
commit | 65d0dfcbbea6b8ca7d8a3a0f673ecb522379e43c (patch) | |
tree | 7b30fc5f0a477efd075ab0f8eead78aa7554869b /.github | |
parent | 448ae1ccacd17025457ace965d78a45a113c70c6 (diff) | |
parent | 1dcebc6399dc76a9bdf643ad9722d7f2d7fee51c (diff) | |
download | Ninja-1.12.0.zip Ninja-1.12.0.tar.gz Ninja-1.12.0.tar.bz2 |
v1.12.0v1.12.0
Diffstat (limited to '.github')
-rw-r--r-- | .github/dependabot.yml | 7 | ||||
-rw-r--r-- | .github/workflows/linux.yml | 69 | ||||
-rw-r--r-- | .github/workflows/macos.yml | 8 | ||||
-rw-r--r-- | .github/workflows/windows.yml | 23 |
4 files changed, 92 insertions, 15 deletions
diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..6fddca0 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,7 @@ +version: 2 +updates: + # Maintain dependencies for GitHub Actions + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 3c93e00..fdebf0b 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -58,14 +58,14 @@ jobs: # Upload ninja binary archive as an artifact - name: Upload artifact - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v3 with: name: ninja-binary-archives path: artifact - name: Upload release asset if: github.event.action == 'published' - uses: actions/upload-release-asset@v1.0.1 + uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -83,7 +83,7 @@ jobs: - name: Install dependencies run: | apt update - apt install -y python3-pytest ninja-build clang-tidy python3-pip clang + apt install -y python3-pytest ninja-build clang-tidy python3-pip clang libgtest-dev pip3 install cmake==3.17.* - name: Configure (GCC) run: cmake -Bbuild-gcc -DCMAKE_BUILD_TYPE=Debug -G'Ninja Multi-Config' @@ -133,7 +133,7 @@ jobs: image: ${{ matrix.image }} strategy: matrix: - image: ['ubuntu:14.04', 'ubuntu:16.04', 'ubuntu:18.04'] + image: ['ubuntu:20.04', 'ubuntu:22.04', 'ubuntu:24.04'] steps: - uses: actions/checkout@v2 - name: Install dependencies @@ -144,6 +144,65 @@ jobs: run: | python3 configure.py --bootstrap ./ninja all - ./ninja_test --gtest_filter=-SubprocessTest.SetWithLots python3 misc/ninja_syntax_test.py ./misc/output_test.py + + build-aarch64: + name: Build Linux ARM64 + runs-on: [ubuntu-latest] + steps: + - uses: actions/checkout@v3 + + - name: Build + uses: uraimo/run-on-arch-action@v2 + with: + arch: aarch64 + distro: ubuntu18.04 + githubToken: ${{ github.token }} + dockerRunArgs: | + --volume "${PWD}:/ninja" + install: | + apt-get update -q -y + apt-get install -q -y make gcc g++ libasan5 clang-tools curl p7zip-full file + run: | + set -x + cd /ninja + + # INSTALL CMAKE + CMAKE_VERSION=3.23.4 + curl -L -O https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-Linux-aarch64.sh + chmod +x cmake-${CMAKE_VERSION}-Linux-aarch64.sh + ./cmake-${CMAKE_VERSION}-Linux-aarch64.sh --skip-license --prefix=/usr/local + + # BUILD + cmake -DCMAKE_BUILD_TYPE=Release -B release-build + cmake --build release-build --parallel --config Release + strip release-build/ninja + file release-build/ninja + + # TEST + pushd release-build + ./ninja_test + popd + + # CREATE ARCHIVE + mkdir artifact + 7z a artifact/ninja-linux-aarch64.zip ./release-build/ninja + + # Upload ninja binary archive as an artifact + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: ninja-binary-archives + path: artifact + + - name: Upload release asset + if: github.event.action == 'published' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ github.event.release.upload_url }} + asset_path: ./artifact/ninja-linux-aarch64.zip + asset_name: ninja-linux-aarch64.zip + asset_content_type: application/zip diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 0797433..d3dd9ee 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -8,7 +8,7 @@ on: jobs: build: - runs-on: macos-11.0 + runs-on: macos-12 steps: - uses: actions/checkout@v2 @@ -19,7 +19,7 @@ jobs: - name: Build ninja shell: bash env: - MACOSX_DEPLOYMENT_TARGET: 10.12 + MACOSX_DEPLOYMENT_TARGET: 10.15 run: | cmake -Bbuild -GXcode '-DCMAKE_OSX_ARCHITECTURES=arm64;x86_64' cmake --build build --config Release @@ -36,14 +36,14 @@ jobs: # Upload ninja binary archive as an artifact - name: Upload artifact - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v3 with: name: ninja-binary-archives path: artifact - name: Upload release asset if: github.event.action == 'published' - uses: actions/upload-release-asset@v1.0.1 + uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index e4fe7bd..e169eb4 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -10,6 +10,15 @@ jobs: build: runs-on: windows-latest + strategy: + fail-fast: false + matrix: + include: + - arch: 'x64' + suffix: '' + - arch: 'arm64' + suffix: 'arm64' + steps: - uses: actions/checkout@v2 @@ -19,15 +28,17 @@ jobs: - name: Build ninja shell: bash run: | - cmake -Bbuild + cmake -Bbuild -A ${{ matrix.arch }} cmake --build build --parallel --config Debug cmake --build build --parallel --config Release - name: Test ninja (Debug) + if: matrix.arch != 'arm64' run: .\ninja_test.exe working-directory: build/Debug - name: Test ninja (Release) + if: matrix.arch != 'arm64' run: .\ninja_test.exe working-directory: build/Release @@ -35,22 +46,22 @@ jobs: shell: bash run: | mkdir artifact - 7z a artifact/ninja-win.zip ./build/Release/ninja.exe + 7z a artifact/ninja-win${{ matrix.suffix }}.zip ./build/Release/ninja.exe # Upload ninja binary archive as an artifact - name: Upload artifact - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v3 with: name: ninja-binary-archives path: artifact - name: Upload release asset if: github.event.action == 'published' - uses: actions/upload-release-asset@v1.0.1 + uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ github.event.release.upload_url }} - asset_path: ./artifact/ninja-win.zip - asset_name: ninja-win.zip + asset_path: ./artifact/ninja-win${{ matrix.suffix }}.zip + asset_name: ninja-win${{ matrix.suffix }}.zip asset_content_type: application/zip |