summaryrefslogtreecommitdiffhomepage
path: root/.github/actions/ios/setup-project-toolchain/action.yml
blob: bf21aefb14988df638329464f93eff5f8babde9a (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
name: 'Setup project toolchain'
description: 'Setup Xcode project and install toolchain'
inputs:
  ios_rust_target:
    description: 'iOS target device'
    type: choice
    default: aarch64-apple-ios-sim
    options:
      - aarch64-apple-ios-sim
      - aarch64-apple-ios
    required: true

runs:
  using: 'composite'
  steps:
    - name: Checkout submodules
      run: |
        git config --global --add safe.directory '*'
        git submodule update --init --recursive ios/wireguard-apple
      shell: bash

    - name: Configure cache
      uses: actions/cache@v3
      with:
        path: ios/${{ env.SOURCE_PACKAGES_PATH }}
        key: ${{ runner.os }}-spm-${{ hashFiles('ios/**/Package.resolved') }}
        restore-keys: |
          ${{ runner.os }}-spm-

    - name: Setup go-lang
      uses: actions/setup-go@v3
      with:
        go-version: 1.21.13

    - name: Configure Rust
      run: rustup target add ${{ inputs.ios_rust_target }}
      shell: bash

    - name: Install xcbeautify
      run: |
        brew update
        brew install xcbeautify
      shell: bash

    - name: Install protobuf
      run: |
        brew update
        brew install protobuf
      shell: bash

    - name: Setup Xcode
      uses: maxim-lobanov/setup-xcode@v1
      with:
        xcode-version: '16.4'

    - name: Configure Xcode project
      run: |
          for file in *.xcconfig.template ; do cp $file ${file//.template/} ; done
      working-directory: ios/Configurations
      shell: bash