|
1 |
| -name: Main Workflow |
| 1 | +name: Build and Release |
2 | 2 |
|
3 | 3 | on:
|
4 | 4 | workflow_dispatch:
|
5 | 5 | push:
|
6 | 6 | paths-ignore:
|
7 | 7 | - '**.md'
|
| 8 | + - '.github/**' |
| 9 | + - '.vscode/**' |
| 10 | + - '.devcontainer/**' |
8 | 11 | pull_request:
|
9 | 12 | schedule:
|
10 | 13 | - cron: '0 0 * * 0'
|
|
49 | 52 | with:
|
50 | 53 | name: ${{ env.NAME_UPPER }}-${{ env.BUILD_NUMBER }}-${{ matrix.os }}
|
51 | 54 | path: artifact/*
|
| 55 | + linux-clang: |
| 56 | + name: Linux (Clang/LLVM) |
| 57 | + runs-on: ubuntu-latest |
| 58 | + permissions: |
| 59 | + contents: read |
| 60 | + steps: |
| 61 | + - name: Checkout |
| 62 | + uses: actions/checkout@v4 |
| 63 | + with: |
| 64 | + fetch-depth: 0 |
| 65 | + - name: Update OS |
| 66 | + run: sudo apt-get update -qq |
| 67 | + - name: Install dependencies |
| 68 | + run: sudo apt-get install -y libsdl2-dev libglew-dev libgtk-3-dev |
| 69 | + - name: Get build number |
| 70 | + run: | |
| 71 | + echo "BUILD_NUMBER=$(git describe --abbrev=7 --dirty --always --tags)" >> $GITHUB_ENV |
| 72 | + - name: make |
| 73 | + run: make |
| 74 | + working-directory: platforms/linux |
| 75 | + env: |
| 76 | + USE_CLANG: 1 |
52 | 77 | libretro:
|
53 | 78 | name: Libretro (ubuntu)
|
54 | 79 | runs-on: ubuntu-latest
|
@@ -98,12 +123,45 @@ jobs:
|
98 | 123 | - name: make
|
99 | 124 | run: make dist
|
100 | 125 | working-directory: platforms/macos
|
| 126 | + - name: Codesign app bundle |
| 127 | + env: |
| 128 | + MACOS_CERTIFICATE: ${{ secrets.PROD_MACOS_CERTIFICATE }} |
| 129 | + MACOS_CERTIFICATE_PWD: ${{ secrets.PROD_MACOS_CERTIFICATE_PWD }} |
| 130 | + MACOS_CERTIFICATE_NAME: ${{ secrets.PROD_MACOS_CERTIFICATE_NAME }} |
| 131 | + MACOS_CI_KEYCHAIN_PWD: ${{ secrets.PROD_MACOS_CI_KEYCHAIN_PWD }} |
| 132 | + run: | |
| 133 | + echo $MACOS_CERTIFICATE | base64 --decode > certificate.p12 |
| 134 | +
|
| 135 | + security create-keychain -p "$MACOS_CI_KEYCHAIN_PWD" build.keychain |
| 136 | + security default-keychain -s build.keychain |
| 137 | + security unlock-keychain -p "$MACOS_CI_KEYCHAIN_PWD" build.keychain |
| 138 | + security import certificate.p12 -k build.keychain -P "$MACOS_CERTIFICATE_PWD" -T /usr/bin/codesign |
| 139 | + security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$MACOS_CI_KEYCHAIN_PWD" build.keychain |
| 140 | +
|
| 141 | + codesign -v -f -o runtime --sign "$MACOS_CERTIFICATE_NAME" ${{ env.NAME_UPPER }}.app/Contents/MacOS/gamecontrollerdb.txt |
| 142 | + codesign -v -f -o runtime --entitlements "app.entitlements" --sign "$MACOS_CERTIFICATE_NAME" ${{ env.NAME_UPPER }}.app/Contents/MacOS/${{ env.NAME_LOWER }} |
| 143 | + codesign -v -f -o runtime --sign "$MACOS_CERTIFICATE_NAME" ${{ env.NAME_UPPER }}.app |
| 144 | +
|
| 145 | + codesign -v -vvv --deep "${{ env.NAME_UPPER }}.app" |
| 146 | + working-directory: platforms/macos |
| 147 | + - name: Notarize app bundle |
| 148 | + env: |
| 149 | + PROD_MACOS_NOTARIZATION_APPLE_ID: ${{ secrets.PROD_MACOS_NOTARIZATION_APPLE_ID }} |
| 150 | + PROD_MACOS_NOTARIZATION_TEAM_ID: ${{ secrets.PROD_MACOS_NOTARIZATION_TEAM_ID }} |
| 151 | + PROD_MACOS_NOTARIZATION_PWD: ${{ secrets.PROD_MACOS_NOTARIZATION_PWD }} |
| 152 | + run: | |
| 153 | + xcrun notarytool store-credentials "notarytool-profile" --apple-id "$PROD_MACOS_NOTARIZATION_APPLE_ID" --team-id "$PROD_MACOS_NOTARIZATION_TEAM_ID" --password "$PROD_MACOS_NOTARIZATION_PWD" |
| 154 | + ditto -c -k --keepParent "${{ env.NAME_UPPER }}.app" "notarization.zip" |
| 155 | + xcrun notarytool submit "notarization.zip" --keychain-profile "notarytool-profile" --wait |
| 156 | + xcrun stapler staple "${{ env.NAME_UPPER }}.app" |
| 157 | + spctl -a -vvv -t install "${{ env.NAME_UPPER }}.app" |
| 158 | + ditto -c -k --keepParent "${{ env.NAME_UPPER }}.app" "${{ env.NAME_UPPER }}.app.zip" |
| 159 | + working-directory: platforms/macos |
101 | 160 | - name: Prepare artifact directory
|
102 | 161 | run: |
|
103 | 162 | mkdir -p artifact
|
104 |
| - cp platforms/README.txt artifact |
105 |
| - cp platforms/gamecontrollerdb.txt artifact |
106 |
| - cp -R platforms/macos/${{ env.NAME_UPPER }}.app artifact |
| 163 | + cp platforms/README.txt artifact/ |
| 164 | + mv platforms/macos/${{ env.NAME_UPPER }}.app.zip artifact/ |
107 | 165 | - name: Archive binary
|
108 | 166 | uses: actions/upload-artifact@v4
|
109 | 167 | with:
|
|
0 commit comments