summaryrefslogtreecommitdiff
path: root/.github/workflows/macos.yml
blob: d14c25c2fa6ea54b36aee7d096610c7ee6fc13cd (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
63
64
65
66
67
68
69
70
71
72
73
name: MacOS Build CI

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build_with_signing: 
    name: MacOS Build CI

    runs-on: macos-latest
    
    strategy:
      matrix:
        configuration: ['release'] # 'debug'
        compiler: ['clang']
        platform: ['x64'] 
        
    steps:
    - uses: actions/checkout@v2.3.4
      with:
        submodules: 'true'
        fetch-depth: '0'
    - name: Install the Apple certificate and provisioning profile
        env:
          BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
          P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
          BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_BASE64 }}
          KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
        run: |
          # create variables
          CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
          PP_PATH=$RUNNER_TEMP/build_pp.provisionprofile
          KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db

          # import certificate and provisioning profile from secrets
          echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode --output $CERTIFICATE_PATH
          echo -n "$BUILD_PROVISION_PROFILE_BASE64" | base64 --decode --output $PP_PATH

          # create temporary keychain
          security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
          security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
          security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH

          # import certificate to keychain
          security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
          security list-keychain -d user -s $KEYCHAIN_PATH

          # apply provisioning profile
          mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
          cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles    
    - name: build
      run: 
        CC=${{matrix.compiler}}
        CONFIGURATION=${{matrix.configuration}}
        ARCH=${{matrix.platform}}
        source ./github_macos_build.sh
    - uses: actions/upload-artifact@v3
      with:
        name: slang-build-${{matrix.configuration}}-${{matrix.platform}}-${{matrix.compiler}}
        path: |
          bin/**/slangc
          bin/**/slangd
          bin/**/libslang.dylib
    - name: test
      run: 
        CONFIGURATION=${{matrix.configuration}}
        CC=${{matrix.compiler}}
        ARCH=${{matrix.platform}}
        source ./github_test.sh