summaryrefslogtreecommitdiff
path: root/src/contrib/SDL-3.2.20/.github/actions/setup-ninja/action.yml
blob: a1d3ad98344d48f6863cd0cbe4536f567e25124c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
name: 'Setup ninja'
description: 'Download ninja and add it to the PATH environment variable'
inputs:
  version:
    description: 'Ninja version'
    default: '1.12.1'
runs:
  using: 'composite'
  steps:
    - name: 'Calculate variables'
      id: calc
      shell: sh
      run: |
        case "${{ runner.os }}-${{ runner.arch }}" in
          "Linux-X86" | "Linux-X64")
            archive="ninja-linux.zip"
            ;;
          "Linux-ARM64")
            archive="ninja-linux-aarch64.zip"
            ;;
          "macOS-X86" | "macOS-X64" | "macOS-ARM64")
            archive="ninja-mac.zip"
            ;;
          "Windows-X86" | "Windows-X64")
            archive="ninja-win.zip"
            ;;
          "Windows-ARM64")
            archive="ninja-winarm64.zip"
            ;;
          *)
            echo "Unsupported ${{ runner.os }}-${{ runner.arch }}"
            exit 1;
            ;;
        esac
        echo "archive=${archive}" >> ${GITHUB_OUTPUT}
        echo "cache-key=${archive}-${{ inputs.version }}-${{ runner.os }}-${{ runner.arch }}" >> ${GITHUB_OUTPUT}
    - name: 'Restore cached ${{ steps.calc.outputs.archive }}'
      id: cache-restore
      uses: actions/cache/restore@v4
      with:
        path: '${{ runner.temp }}/${{ steps.calc.outputs.archive }}'
        key: ${{ steps.calc.outputs.cache-key }}
    - name: 'Download ninja ${{ inputs.version }} for ${{ runner.os }} (${{ runner.arch }})'
      if: ${{ !steps.cache-restore.outputs.cache-hit || steps.cache-restore.outputs.cache-hit == 'false' }}
      shell: pwsh
      run: |
        Invoke-WebRequest "https://github.com/ninja-build/ninja/releases/download/v${{ inputs.version }}/${{ steps.calc.outputs.archive }}" -OutFile "${{ runner.temp }}/${{ steps.calc.outputs.archive }}"
    - name: 'Cache ${{ steps.calc.outputs.archive }}'
      if: ${{ !steps.cache-restore.outputs.cache-hit || steps.cache-restore.outputs.cache-hit == 'false' }}
      uses: actions/cache/save@v4
      with:
        path: '${{ runner.temp }}/${{ steps.calc.outputs.archive }}'
        key: ${{ steps.calc.outputs.cache-key }}
    - name: 'Extract ninja'
      shell: pwsh
      run: |
        7z "-o${{ runner.temp }}/ninja-${{ inputs.version }}-${{ runner.arch }}" x "${{ runner.temp }}/${{ steps.calc.outputs.archive }}"
    - name: 'Set output variables'
      id: final
      shell: pwsh
      run: |
        echo "${{ runner.temp }}/ninja-${{ inputs.version }}-${{ runner.arch }}" >> $env:GITHUB_PATH