1
+ name : Build macos
2
+
3
+ on :
4
+ push :
5
+ # branches: [ "main" ]
6
+ pull_request :
7
+ branches : ["main"]
8
+
9
+ jobs :
10
+ build :
11
+ runs-on : macos-11
12
+
13
+ strategy :
14
+ fail-fast : false
15
+ matrix :
16
+ arch : [arm64, x86_64]
17
+
18
+ steps :
19
+ - uses : actions/checkout@v4
20
+ with :
21
+ submodules : true
22
+
23
+ - name : Install Qt
24
+ uses : jurplel/install-qt-action@v3
25
+ with :
26
+ version : 6.5.3
27
+ tools : ' tools_ifw tools_cmake'
28
+ modules : ' qtwebsockets qt5compat'
29
+
30
+ - name : Install the Apple certificate and provisioning profile
31
+ env :
32
+ APPLE_CERTIFICATE_BASE64 : ${{ secrets.APPLE_CERTIFICATE_BASE64 }}
33
+ APPLE_P12_PASSWORD : ${{ secrets.APPLE_P12_PASSWORD }}
34
+ KEYCHAIN_PASSWORD : ${{ secrets.KEYCHAIN_PASSWORD }}
35
+ run : |
36
+ if [[ -n "$APPLE_CERTIFICATE_BASE64" ]]; then
37
+ # create variables
38
+ CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
39
+ KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
40
+
41
+ # import certificate and provisioning profile from secrets
42
+ echo -n "$APPLE_CERTIFICATE_BASE64" | base64 --decode -o $CERTIFICATE_PATH
43
+
44
+ # create temporary keychain
45
+ security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
46
+ security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
47
+ security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
48
+
49
+ # import certificate to keychain
50
+ security import $CERTIFICATE_PATH -P "$APPLE_P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
51
+ security list-keychain -d user -s $KEYCHAIN_PATH
52
+
53
+ # list signing identities
54
+ # security find-identity -v -p codesigning
55
+ fi
56
+ - name : Run build
57
+ run : |
58
+ ./tools/build-macos.sh ${{ matrix.arch }}
59
+ env :
60
+ CI : 1
61
+ BUILD_QT_PATH : ${{ github.workspace }}/Qt/6.5.3/macos
62
+ BUILD_PARALLEL_THREADS : 2
63
+ MACOS_SIGN_NAME : ${{ secrets.MACOS_SIGN_NAME }}
64
+ APPLEID : ${{ secrets.APPLEID }}
65
+ APPLEIDPASS : ${{ secrets.APPLEIDPASS }}
66
+ APPLEIDTEAM : ${{ secrets.APPLEIDTEAM }}
67
+
68
+ - name : Rename build
69
+ id : " rename-build"
70
+ shell : bash
71
+ run : |
72
+ TARGET=casparcg-client-${{ github.sha }}-${{ matrix.arch }}.dmg
73
+ mv build/CasparCG*.dmg "$TARGET"
74
+
75
+ echo "artifactname=$TARGET" >> $GITHUB_OUTPUT
76
+
77
+ # check if a release branch, or main, or a tag
78
+ if [[ "${{ github.ref_name }}" == "main" || "${{ github.ref_name }}" == "2.3.x-lts" ]]
79
+ then
80
+ # Only report if we have an sftp password
81
+ if [ -n "${{ secrets.SFTP_PASSWORD }}" ]
82
+ then
83
+ echo "uploadname=$TARGET" >> $GITHUB_OUTPUT
84
+ fi
85
+ fi
86
+
87
+ - uses : actions/upload-artifact@v4
88
+ with :
89
+ name : casparcg-client-macos-${{ matrix.arch }}
90
+ path : ${{ steps.rename-build.outputs.artifactname }}
91
+
92
+ - name : Copy single file to remote
93
+ uses : garygrossgarten/github-action-scp@v0.8.0
94
+ if : ${{ steps.rename-build.outputs.uploadname }}
95
+ with :
96
+ local : " ${{ steps.rename-build.outputs.uploadname }}"
97
+ remote : " ${{ secrets.SFTP_ROOT }}/${{ github.ref_name }}/${{ steps.rename-build.outputs.uploadname }}"
98
+ host : ${{ secrets.SFTP_HOST }}
99
+ username : ${{ secrets.SFTP_USERNAME }}
100
+ password : ${{ secrets.SFTP_PASSWORD }}
0 commit comments