From eb20b938868483aa107617c799abfbfe210df973 Mon Sep 17 00:00:00 2001 From: Dan German Date: Wed, 10 Apr 2024 20:32:38 +0300 Subject: [PATCH] update actions --- .github/workflows/build-linux.yml | 47 +++++++------- .github/workflows/build-macos-13.yml | 93 +++++++++++++++------------- .github/workflows/build-macos.yml | 93 +++++++++++++++------------- .github/workflows/build-windows.yml | 39 +++++++----- 4 files changed, 146 insertions(+), 126 deletions(-) diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index d79c5c8..35d4bc4 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -1,30 +1,35 @@ # This starter workflow is for a CMake project running on a single platform. There is a different starter workflow if you need cross-platform coverage. # See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-multi-platform.yml name: Build Linux -on: [workflow_dispatch, pull_request] +on: + workflow_dispatch: + pull_request: + push: + branches: + - main env: BUILD_TYPE: Release jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - with: - submodules: 'true' - - name: Create mixpanel_project_token.key file - run: echo "${{ secrets.MIXPANEL_PROJECT_TOKEN }}" > Assets/mixpanel_project_token.key - - name: Update packages - run: sudo apt update - - name: Setup JUCE dependencies - run: sudo apt install libasound2-dev libjack-jackd2-dev ladspa-sdk libcurl4-openssl-dev libfreetype6-dev libx11-dev libxcomposite-dev libxcursor-dev libxcursor-dev libxext-dev libxinerama-dev libxrandr-dev libxrender-dev libwebkit2gtk-4.0-dev libglu1-mesa-dev mesa-common-dev - - name: Configure CMake - run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} - - name: Build - run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} - - name: Upload built files - uses: actions/upload-artifact@v3.1.2 - with: - name: blocks - path: | - ${{github.workspace}}/build/blocks_artefacts/Release/Standalone - ${{github.workspace}}/build/blocks_artefacts/Release/VST3 + - uses: actions/checkout@v3 + with: + submodules: "true" + - name: Create mixpanel_project_token.key file + run: echo "${{ secrets.MIXPANEL_PROJECT_TOKEN }}" > Assets/mixpanel_project_token.key + - name: Update packages + run: sudo apt update + - name: Setup JUCE dependencies + run: sudo apt install libasound2-dev libjack-jackd2-dev ladspa-sdk libcurl4-openssl-dev libfreetype6-dev libx11-dev libxcomposite-dev libxcursor-dev libxcursor-dev libxext-dev libxinerama-dev libxrandr-dev libxrender-dev libwebkit2gtk-4.0-dev libglu1-mesa-dev mesa-common-dev + - name: Configure CMake + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + - name: Build + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} + - name: Upload built files + uses: actions/upload-artifact@v3.1.2 + with: + name: blocks + path: | + ${{github.workspace}}/build/blocks_artefacts/Release/Standalone + ${{github.workspace}}/build/blocks_artefacts/Release/VST3 diff --git a/.github/workflows/build-macos-13.yml b/.github/workflows/build-macos-13.yml index eee87a6..610a4fc 100644 --- a/.github/workflows/build-macos-13.yml +++ b/.github/workflows/build-macos-13.yml @@ -1,54 +1,59 @@ # This starter workflow is for a CMake project running on a single platform. There is a different starter workflow if you need cross-platform coverage. # See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-multi-platform.yml name: Build macOS 13 (Intel) -on: [workflow_dispatch, pull_request] +on: + workflow_dispatch: + pull_request: + push: + branches: + - main env: BUILD_TYPE: Release jobs: build: runs-on: macos-13 steps: - - uses: actions/checkout@v3 - with: - submodules: 'true' - - name: Create mixpanel_project_token.key file - run: echo "${{ secrets.MIXPANEL_PROJECT_TOKEN }}" > Assets/mixpanel_project_token.key - - name: Configure CMake - run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} - - name: Build - run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} - - name: Import certificates) - uses: apple-actions/import-codesign-certs@v1 - with: - p12-file-base64: ${{ secrets.DEV_ID_APP_CERT }} - p12-password: ${{ secrets.DEV_ID_APP_PASSWORD }} - - name: Codesign (macOS) - run: | - codesign --force -s "${{ secrets.DEVELOPER_ID_APPLICATION }}" -v /Users/runner/work/blocks/blocks/build/blocks_artefacts/Release/Standalone/blocks.app --deep --strict --options=runtime --timestamp - codesign --force -s "${{ secrets.DEVELOPER_ID_APPLICATION }}" -v /Users/runner/work/blocks/blocks/build/blocks_artefacts/Release/AU/blocks.component --deep --strict --options=runtime --timestamp - codesign --force -s "${{ secrets.DEVELOPER_ID_APPLICATION }}" -v /Users/runner/work/blocks/blocks/build/blocks_artefacts/Release/VST3/blocks.vst3 --deep --strict --options=runtime --timestamp - - name: Create DMG, Notarize and Staple (macOS) - run: | - npm install -g appdmg - mkdir -p packaging/dmg - - # Create directories for the dmg symlinks - sudo mkdir -m 755 -p /Library/Audio/Plug-Ins/Components && sudo mkdir -m 755 -p /Library/Audio/Plug-Ins/VST3 && sudo mkdir -m 755 -p /Applications - ln -s /Library/Audio/Plug-Ins/Components "packaging/dmg/Your Mac's Component folder" - ln -s /Library/Audio/Plug-Ins/VST3 "packaging/dmg/Your Mac's VST3 folder" - ln -s /Applications "packaging/dmg/Your Mac's Applications folder" + - uses: actions/checkout@v3 + with: + submodules: "true" + - name: Create mixpanel_project_token.key file + run: echo "${{ secrets.MIXPANEL_PROJECT_TOKEN }}" > Assets/mixpanel_project_token.key + - name: Configure CMake + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + - name: Build + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} + - name: Import certificates) + uses: apple-actions/import-codesign-certs@v1 + with: + p12-file-base64: ${{ secrets.DEV_ID_APP_CERT }} + p12-password: ${{ secrets.DEV_ID_APP_PASSWORD }} + - name: Codesign (macOS) + run: | + codesign --force -s "${{ secrets.DEVELOPER_ID_APPLICATION }}" -v /Users/runner/work/blocks/blocks/build/blocks_artefacts/Release/Standalone/blocks.app --deep --strict --options=runtime --timestamp + codesign --force -s "${{ secrets.DEVELOPER_ID_APPLICATION }}" -v /Users/runner/work/blocks/blocks/build/blocks_artefacts/Release/AU/blocks.component --deep --strict --options=runtime --timestamp + codesign --force -s "${{ secrets.DEVELOPER_ID_APPLICATION }}" -v /Users/runner/work/blocks/blocks/build/blocks_artefacts/Release/VST3/blocks.vst3 --deep --strict --options=runtime --timestamp + - name: Create DMG, Notarize and Staple (macOS) + run: | + npm install -g appdmg + mkdir -p packaging/dmg - mv "/Users/runner/work/blocks/blocks/build/blocks_artefacts/Release/VST3/blocks.vst3" packaging/dmg - mv "/Users/runner/work/blocks/blocks/build/blocks_artefacts/Release/AU/blocks.component" packaging/dmg - mv "/Users/runner/work/blocks/blocks/build/blocks_artefacts/Release/Standalone/blocks.app" packaging/dmg - - # Run appdmg to create the .dmg - cd packaging && appdmg dmg.json blocks.dmg - codesign -s "${{ secrets.DEVELOPER_ID_APPLICATION }}" --timestamp -i com.soonth.blocks --force blocks.dmg - xcrun notarytool submit blocks.dmg --apple-id ${{ secrets.NOTARIZATION_USERNAME }} --password ${{ secrets.NOTARIZATION_PASSWORD }} --team-id ${{ secrets.TEAM_ID }} --wait - xcrun stapler staple blocks.dmg - - name: Upload built files - uses: actions/upload-artifact@v3.1.2 - with: - name: blocks.dmg - path: packaging/blocks.dmg + # Create directories for the dmg symlinks + sudo mkdir -m 755 -p /Library/Audio/Plug-Ins/Components && sudo mkdir -m 755 -p /Library/Audio/Plug-Ins/VST3 && sudo mkdir -m 755 -p /Applications + ln -s /Library/Audio/Plug-Ins/Components "packaging/dmg/Your Mac's Component folder" + ln -s /Library/Audio/Plug-Ins/VST3 "packaging/dmg/Your Mac's VST3 folder" + ln -s /Applications "packaging/dmg/Your Mac's Applications folder" + + mv "/Users/runner/work/blocks/blocks/build/blocks_artefacts/Release/VST3/blocks.vst3" packaging/dmg + mv "/Users/runner/work/blocks/blocks/build/blocks_artefacts/Release/AU/blocks.component" packaging/dmg + mv "/Users/runner/work/blocks/blocks/build/blocks_artefacts/Release/Standalone/blocks.app" packaging/dmg + + # Run appdmg to create the .dmg + cd packaging && appdmg dmg.json blocks.dmg + codesign -s "${{ secrets.DEVELOPER_ID_APPLICATION }}" --timestamp -i com.soonth.blocks --force blocks.dmg + xcrun notarytool submit blocks.dmg --apple-id ${{ secrets.NOTARIZATION_USERNAME }} --password ${{ secrets.NOTARIZATION_PASSWORD }} --team-id ${{ secrets.TEAM_ID }} --wait + xcrun stapler staple blocks.dmg + - name: Upload built files + uses: actions/upload-artifact@v3.1.2 + with: + name: blocks.dmg + path: packaging/blocks.dmg diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 058e668..e5a99ca 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -1,54 +1,59 @@ # This starter workflow is for a CMake project running on a single platform. There is a different starter workflow if you need cross-platform coverage. # See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-multi-platform.yml name: Build macOS (M1) -on: [workflow_dispatch, pull_request] +on: + workflow_dispatch: + pull_request: + push: + branches: + - main env: BUILD_TYPE: Release jobs: build: runs-on: macos-14 steps: - - uses: actions/checkout@v3 - with: - submodules: 'true' - - name: Create mixpanel_project_token.key file - run: echo "${{ secrets.MIXPANEL_PROJECT_TOKEN }}" > Assets/mixpanel_project_token.key - - name: Configure CMake - run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} - - name: Build - run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} - - name: Import certificates) - uses: apple-actions/import-codesign-certs@v1 - with: - p12-file-base64: ${{ secrets.DEV_ID_APP_CERT }} - p12-password: ${{ secrets.DEV_ID_APP_PASSWORD }} - - name: Codesign (macOS) - run: | - codesign --force -s "${{ secrets.DEVELOPER_ID_APPLICATION }}" -v /Users/runner/work/blocks/blocks/build/blocks_artefacts/Release/Standalone/blocks.app --deep --strict --options=runtime --timestamp - codesign --force -s "${{ secrets.DEVELOPER_ID_APPLICATION }}" -v /Users/runner/work/blocks/blocks/build/blocks_artefacts/Release/AU/blocks.component --deep --strict --options=runtime --timestamp - codesign --force -s "${{ secrets.DEVELOPER_ID_APPLICATION }}" -v /Users/runner/work/blocks/blocks/build/blocks_artefacts/Release/VST3/blocks.vst3 --deep --strict --options=runtime --timestamp - - name: Create DMG, Notarize and Staple (macOS) - run: | - npm install -g appdmg - mkdir -p packaging/dmg - - # Create directories for the dmg symlinks - sudo mkdir -m 755 -p /Library/Audio/Plug-Ins/Components && sudo mkdir -m 755 -p /Library/Audio/Plug-Ins/VST3 && sudo mkdir -m 755 -p /Applications - ln -s /Library/Audio/Plug-Ins/Components "packaging/dmg/Your Mac's Component folder" - ln -s /Library/Audio/Plug-Ins/VST3 "packaging/dmg/Your Mac's VST3 folder" - ln -s /Applications "packaging/dmg/Your Mac's Applications folder" + - uses: actions/checkout@v3 + with: + submodules: "true" + - name: Create mixpanel_project_token.key file + run: echo "${{ secrets.MIXPANEL_PROJECT_TOKEN }}" > Assets/mixpanel_project_token.key + - name: Configure CMake + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + - name: Build + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} + - name: Import certificates) + uses: apple-actions/import-codesign-certs@v1 + with: + p12-file-base64: ${{ secrets.DEV_ID_APP_CERT }} + p12-password: ${{ secrets.DEV_ID_APP_PASSWORD }} + - name: Codesign (macOS) + run: | + codesign --force -s "${{ secrets.DEVELOPER_ID_APPLICATION }}" -v /Users/runner/work/blocks/blocks/build/blocks_artefacts/Release/Standalone/blocks.app --deep --strict --options=runtime --timestamp + codesign --force -s "${{ secrets.DEVELOPER_ID_APPLICATION }}" -v /Users/runner/work/blocks/blocks/build/blocks_artefacts/Release/AU/blocks.component --deep --strict --options=runtime --timestamp + codesign --force -s "${{ secrets.DEVELOPER_ID_APPLICATION }}" -v /Users/runner/work/blocks/blocks/build/blocks_artefacts/Release/VST3/blocks.vst3 --deep --strict --options=runtime --timestamp + - name: Create DMG, Notarize and Staple (macOS) + run: | + npm install -g appdmg + mkdir -p packaging/dmg - mv "/Users/runner/work/blocks/blocks/build/blocks_artefacts/Release/VST3/blocks.vst3" packaging/dmg - mv "/Users/runner/work/blocks/blocks/build/blocks_artefacts/Release/AU/blocks.component" packaging/dmg - mv "/Users/runner/work/blocks/blocks/build/blocks_artefacts/Release/Standalone/blocks.app" packaging/dmg - - # Run appdmg to create the .dmg - cd packaging && appdmg dmg.json blocks.dmg - codesign -s "${{ secrets.DEVELOPER_ID_APPLICATION }}" --timestamp -i com.soonth.blocks --force blocks.dmg - xcrun notarytool submit blocks.dmg --apple-id ${{ secrets.NOTARIZATION_USERNAME }} --password ${{ secrets.NOTARIZATION_PASSWORD }} --team-id ${{ secrets.TEAM_ID }} --wait - xcrun stapler staple blocks.dmg - - name: Upload built files - uses: actions/upload-artifact@v3.1.2 - with: - name: blocks.dmg - path: packaging/blocks.dmg + # Create directories for the dmg symlinks + sudo mkdir -m 755 -p /Library/Audio/Plug-Ins/Components && sudo mkdir -m 755 -p /Library/Audio/Plug-Ins/VST3 && sudo mkdir -m 755 -p /Applications + ln -s /Library/Audio/Plug-Ins/Components "packaging/dmg/Your Mac's Component folder" + ln -s /Library/Audio/Plug-Ins/VST3 "packaging/dmg/Your Mac's VST3 folder" + ln -s /Applications "packaging/dmg/Your Mac's Applications folder" + + mv "/Users/runner/work/blocks/blocks/build/blocks_artefacts/Release/VST3/blocks.vst3" packaging/dmg + mv "/Users/runner/work/blocks/blocks/build/blocks_artefacts/Release/AU/blocks.component" packaging/dmg + mv "/Users/runner/work/blocks/blocks/build/blocks_artefacts/Release/Standalone/blocks.app" packaging/dmg + + # Run appdmg to create the .dmg + cd packaging && appdmg dmg.json blocks.dmg + codesign -s "${{ secrets.DEVELOPER_ID_APPLICATION }}" --timestamp -i com.soonth.blocks --force blocks.dmg + xcrun notarytool submit blocks.dmg --apple-id ${{ secrets.NOTARIZATION_USERNAME }} --password ${{ secrets.NOTARIZATION_PASSWORD }} --team-id ${{ secrets.TEAM_ID }} --wait + xcrun stapler staple blocks.dmg + - name: Upload built files + uses: actions/upload-artifact@v3.1.2 + with: + name: blocks.dmg + path: packaging/blocks.dmg diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 6f245e4..3677802 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -1,24 +1,29 @@ name: Build Windows -on: [workflow_dispatch, pull_request] +on: + workflow_dispatch: + pull_request: + push: + branches: + - main env: BUILD_TYPE: Release jobs: build: runs-on: windows-latest steps: - - uses: actions/checkout@v3 - with: - submodules: 'true' - - name: Create mixpanel_project_token.key file - run: echo "${{ secrets.MIXPANEL_PROJECT_TOKEN }}" > Assets/mixpanel_project_token.key - - name: Configure CMake - run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} - - name: Build - run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} - - name: Upload built files - uses: actions/upload-artifact@v3.1.2 - with: - name: blocks - path: | - D:/a/blocks/blocks/build/blocks_artefacts/Release/VST3/blocks.vst3/Contents/x86_64-win/blocks.vst3 - D:/a/blocks/blocks/build/blocks_artefacts/Release/Standalone/blocks.exe + - uses: actions/checkout@v3 + with: + submodules: "true" + - name: Create mixpanel_project_token.key file + run: echo "${{ secrets.MIXPANEL_PROJECT_TOKEN }}" > Assets/mixpanel_project_token.key + - name: Configure CMake + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + - name: Build + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} + - name: Upload built files + uses: actions/upload-artifact@v3.1.2 + with: + name: blocks + path: | + D:/a/blocks/blocks/build/blocks_artefacts/Release/VST3/blocks.vst3/Contents/x86_64-win/blocks.vst3 + D:/a/blocks/blocks/build/blocks_artefacts/Release/Standalone/blocks.exe