1name: Windows 2 3on: 4 pull_request: 5 push: 6 release: 7 types: published 8 9jobs: 10 build: 11 runs-on: windows-latest 12 13 strategy: 14 fail-fast: false 15 matrix: 16 include: 17 - arch: 'x64' 18 suffix: '' 19 - arch: 'arm64' 20 suffix: 'arm64' 21 22 steps: 23 - uses: actions/checkout@v2 24 25 - name: Install dependencies 26 run: choco install re2c 27 28 - name: Build ninja 29 shell: bash 30 run: | 31 cmake -Bbuild -A ${{ matrix.arch }} 32 cmake --build build --parallel --config Debug 33 cmake --build build --parallel --config Release 34 35 - name: Test ninja (Debug) 36 if: matrix.arch != 'arm64' 37 run: .\ninja_test.exe 38 working-directory: build/Debug 39 40 - name: Test ninja (Release) 41 if: matrix.arch != 'arm64' 42 run: .\ninja_test.exe 43 working-directory: build/Release 44 45 - name: Create ninja archive 46 shell: bash 47 run: | 48 mkdir artifact 49 7z a artifact/ninja-win${{ matrix.suffix }}.zip ./build/Release/ninja.exe 50 51 # Upload ninja binary archive as an artifact 52 - name: Upload artifact 53 uses: actions/upload-artifact@v3 54 with: 55 name: ninja-binary-archives 56 path: artifact 57 58 - name: Upload release asset 59 if: github.event.action == 'published' 60 uses: actions/upload-release-asset@v1 61 env: 62 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 63 with: 64 upload_url: ${{ github.event.release.upload_url }} 65 asset_path: ./artifact/ninja-win${{ matrix.suffix }}.zip 66 asset_name: ninja-win${{ matrix.suffix }}.zip 67 asset_content_type: application/zip 68