testing submodule pull with ssh key #35
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CMake | |
on: [push, pull_request] | |
env: | |
BUILD_TYPE: Release | |
BUNDLE_ID: com.mach1.notepad | |
VERSION: 1.0.2 | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-latest, windows-2016] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Submodule JUCE | |
uses: actions/checkout@v3 | |
with: | |
repository: juce-framework/JUCE | |
path: JUCE | |
ref: '7.0.9' | |
- name: Submodule JUCE_deps | |
uses: actions/checkout@v3 | |
with: | |
repository: Mach1Studios/m1-juce-deps | |
path: JUCE_deps | |
ssh-key: ${{ secrets.HIMWHO_SSH_KEY }} | |
lfs: true | |
- name: LFS pull submodule | |
run: git -C JUCE_deps lfs pull | |
- name: Create Build Environment | |
run: cmake -E make_directory ${{runner.workspace}}/build | |
- name: Configure CMake (macos) | |
if: runner.os == 'MacOS' | |
shell: bash | |
working-directory: ${{runner.workspace}}/build | |
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE | |
- name: Configure CMake (windows) | |
if: runner.os == 'Windows' | |
shell: bash | |
working-directory: ${{runner.workspace}}/build | |
run: cmake $GITHUB_WORKSPACE -A x64 -DCMAKE_BUILD_TYPE=$BUILD_TYPE | |
- name: Build | |
working-directory: ${{runner.workspace}}/build | |
shell: bash | |
run: cmake --build . --config $BUILD_TYPE | |
- name: Package (macos) | |
if: runner.os == 'MacOS' | |
working-directory: ${{runner.workspace}}/build | |
shell: bash | |
env: | |
DIST_DIR: ${{runner.workspace}}/build/M1-Notepad_artefacts/Release | |
INSTALL_DIR: /Library/Audio/Plug-Ins | |
AAX_INSTALL_DIR: /Library/Application\ Support/Avid/Audio/Plug-Ins | |
BUNDLE_ID: ${{ env.BUNDLE_ID }} | |
VERSION: ${{ env.VERSION }} | |
MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }} | |
MACOS_INSTALLER_CERT: ${{ secrets.MACOS_INSTALLER_CERT }} | |
MACOS_CERTIFICATE_PWD: ${{ secrets.MACOS_CERTIFICATE_PWD }} | |
run: | | |
echo $MACOS_CERTIFICATE | base64 --decode > certificate.p12 | |
echo $MACOS_INSTALLER_CERT | base64 --decode > installer.p12 | |
RANDOM_PWD=`date | md5` | |
security create-keychain -p ${RANDOM_PWD} build.keychain | |
security default-keychain -s build.keychain | |
security unlock-keychain -p ${RANDOM_PWD} build.keychain | |
security import certificate.p12 -k build.keychain -P $MACOS_CERTIFICATE_PWD -T /usr/bin/codesign | |
security import installer.p12 -k build.keychain -P $MACOS_CERTIFICATE_PWD -T /usr/bin/productbuild | |
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k ${RANDOM_PWD} build.keychain | |
/usr/bin/codesign --timestamp --force --deep -s "Developer ID Application" ${DIST_DIR}/AU/M1-Notepad.component -v | |
/usr/bin/codesign --timestamp --force --deep -s "Developer ID Application" ${DIST_DIR}/VST3/M1-Notepad.vst3 -v | |
/usr/bin/codesign --timestamp --force --deep -s "Developer ID Application" ${DIST_DIR}/AAX/M1-Notepad.aaxplugin -v | |
pkgbuild --identifier ${BUNDLE_ID}.au --version ${VERSION} --component ${DIST_DIR}/AU/M1-Notepad.component \ | |
--install-location "${INSTALL_DIR}/Components" ${DIST_DIR}/M1-Notepad.au.pkg | |
pkgbuild --identifier ${BUNDLE_ID}.vst3 --version ${VERSION} --component ${DIST_DIR}/VST3/M1-Notepad.vst3 \ | |
--install-location "${INSTALL_DIR}/VST3" ${DIST_DIR}/M1-Notepad.vst3.pkg | |
pkgbuild --identifier ${BUNDLE_ID}.aaxplugin --version ${VERSION} --component ${DIST_DIR}/AAX/M1-Notepad.aaxplugin \ | |
--install-location "${AAX_INSTALL_DIR}" ${DIST_DIR}/M1-Notepad.aaxplugin.pkg | |
productbuild --synthesize \ | |
--package "${DIST_DIR}/M1-Notepad.au.pkg" \ | |
--package "${DIST_DIR}/M1-Notepad.vst3.pkg" \ | |
--package "${DIST_DIR}/M1-Notepad.aaxplugin.pkg" \ | |
distribution.xml | |
productbuild --sign "Developer ID Installer" --distribution distribution.xml --package-path ${DIST_DIR} ${DIST_DIR}/M1-Notepad.pkg | |
- name: Notarize (macos) | |
if: runner.os == 'MacOS' | |
uses: GuillaumeFalourd/notary-tools@v1 | |
with: | |
product-path: "${{runner.workspace}}/build/M1-Notepad_artefacts/Release/M1-Notepad.pkg" | |
apple_id: ${{ secrets.APPLE_USERNAME }} | |
password: ${{ secrets.ALTOOL_APPPASS }} | |
team_id: ${{ secrets.APPLE_TEAM_CODE }} | |
staple: 'true' | |
- name: InnoSetup Installer (windows) | |
if: runner.os == 'Windows' | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
"%programfiles(x86)%\Inno Setup 6\iscc.exe" /DBuildDir="${{runner.workspace}}\build\M1-Notepad_artefacts\Release" "${{runner.workspace}}\M1-Notepad\Resources\InnoSetup.iss" | |
shell: cmd | |
- name: 'Upload Artifact (macos)' | |
if: runner.os == 'MacOS' | |
uses: actions/upload-artifact@v2 | |
with: | |
name: M1-Notepad (MacOS) | |
path: ${{runner.workspace}}/build/M1-Notepad_artefacts/Release/M1-Notepad.pkg | |
if-no-files-found: error | |
- name: 'Upload Artifact (windows)' | |
if: runner.os == 'Windows' | |
uses: actions/upload-artifact@v2 | |
with: | |
name: M1-Notepad (Windows) | |
path: ${{runner.workspace}}\build\M1-Notepad_artefacts\Release\Output\M1-Notepad_WIN.exe | |
if-no-files-found: error |