Skip to content

Commit

Permalink
Merge pull request #60 from cpyarger/master
Browse files Browse the repository at this point in the history
New Releases
  • Loading branch information
cpyarger authored Feb 12, 2021
2 parents 8fde3c9 + 56a8161 commit a04d4ac
Show file tree
Hide file tree
Showing 16 changed files with 297 additions and 467 deletions.
71 changes: 54 additions & 17 deletions .github/workflows/CI Build and release.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
name: 'CI Multiplatform Build'
name: 'CI Multiplatform Build and release'

on:
push:
branches:
- release
- master
paths-ignore:
- 'docs/**'
pull_request:
Expand Down Expand Up @@ -277,7 +280,7 @@ jobs:
- name: 'Set release filename'
shell: bash
run: |
FILENAME="obs-midi-${{ env.GIT_HASH }}-1_amd64.deb"
FILENAME="obs-midi-0${{ env.GIT_HASH }}-1_amd64.deb"
echo "::set-env name=LINUX_FILENAME::$FILENAME"
- name: 'Package ${{ env.LINUX_FILENAME }}'
if: success()
Expand All @@ -287,23 +290,40 @@ jobs:
VERSION="${{ env.GIT_HASH }}"
cd ./build
sudo checkinstall -y --type=debian --fstrans=no -nodoc \
--backup=no --deldoc=yes --install=no --pkgname=obs-midi --pkgversion=$VERSION \
--backup=no --deldoc=yes --install=no --pkgname=obs-midi --pkgversion=0$VERSION \
--pkglicense="GPLv2.0" --maintainer="${{ github.event.pusher.email }}" --pkggroup="video" \
--pkgsource="${{ github.event.repository.html_url }}" \
--requires="obs-studio,libqt5core5a,libqt5widgets5,qt5-image-formats-plugins" \
--pakdir="../package"
sudo chmod ao+r ../package/*
cd -
- name: 'Tar ${{ env.LINUX_FILENAME }}'
if: success()
working-directory: ${{ github.workspace }}/obs-midi
shell: bash
run: |
VERSION="${{ env.GIT_HASH }}"
cd ./build
mkdir -p obs-studio/plugins/64bit/
cp ./obs-midi.so obs-studio/plugins/64bit/
tar -czvf obs-midi-Linux-${{ env.GIT_HASH }}-x64.tar.gz obs-studio
pwd
- name: 'Publish ${{ env.LINUX_FILENAME }}'
if: success()
uses: actions/upload-artifact@v2-preview
with:
name: '${{ env.GIT_HASH }}-linux'
path: '${{ github.workspace }}/obs-midi/package/*.deb'
- name: 'Publish ${{ env.LINUX_FILENAME }}'
if: success()
uses: actions/upload-artifact@v2-preview
with:
name: '${{ env.GIT_HASH }}-linux'
path: '${{ github.workspace }}/obs-midi/build/*.tar.gz'
macos64:
name: "macOS 64-bit"
runs-on: [macos-latest]
if: contains(github.event.head_commit.message, '[skip ci]') != true
env:
MACOS_DEPS_VERSION: '2020-04-18'
QT_VERSION: '5.14.1'
Expand Down Expand Up @@ -340,16 +360,10 @@ jobs:
echo ::set-env name=GIT_BRANCH::${{ github.event.pull_request.head.ref }}
echo ::set-env name=GIT_HASH::$(git rev-parse --short HEAD)
echo ::set-env name=GIT_TAG::$(git describe --tags --abbrev=0)
- name: 'Install Deps'
- name: 'Install prerequisites (Homebrew)'
shell: bash
working-directory: ${{ github.workspace }}/obs-midi
run: |
./CI/install-dependencies-macos.sh
echo 'export PATH="/usr/local/opt/qt/bin:$PATH"' >> /Users/runner/.bash_profile
echo ::set-env name=LDFLAGS="-L/usr/local/opt/qt/lib"
echo ::set-env name=CPPFLAGS="-I/usr/local/opt/qt/include"
echo ::set-env name=PKG_CONFIG_PATH="/usr/local/opt/qt/lib/pkgconfig"
echo ::set-env name=PATH="/usr/local/opt/qt/bin:$PATH"
brew bundle --file ${{ github.workspace }}/obs-midi/CI/macos/Brewfile
- name: 'Install prerequisite: Pre-built OBS dependencies'
shell: bash
run: |
Expand Down Expand Up @@ -397,7 +411,6 @@ jobs:
FILENAME="obs-midi-${{ env.GIT_HASH }}-macOS.pkg"
echo "::set-env name=MAC_FILENAME_UNSIGNED::$FILENAME_UNSIGNED"
echo "::set-env name=MAC_FILENAME::$FILENAME"
- name: 'Fix linked dynamic library paths'
if: success()
working-directory: ${{ github.workspace }}/obs-midi
Expand All @@ -408,16 +421,40 @@ jobs:
install_name_tool -change /usr/local/opt/qt/lib/QtCore.framework/Versions/5/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore ./build/obs-midi.so
echo "Dependencies for obs-midi"
otool -L ./build/obs-midi.so
- name: 'package file'
- name: 'Install Apple Developer Certificate'
if: success()
uses: apple-actions/import-codesign-certs@253ddeeac23f2bdad1646faac5c8c2832e800071
with:
p12-file-base64: ${{ secrets.MACOS_CERT_CODESIGN }}
p12-password: ${{ secrets.MACOS_CERT_PASS }}
- name: 'Code signing'
if: success()
working-directory: ./obs-midi
shell: bash
run: |
set -e
security find-identity -v -p codesigning
codesign --sign "${{ secrets.MACOS_IDENT_CODESIGN }}" ./build/obs-midi.so
packagesbuild ./CI/macos/obs-midi.pkgproj
mv ./release/obs-midi.pkg ./release/${{ env.MAC_FILENAME_UNSIGNED }}
productsign --sign "${{ secrets.MACOS_IDENT_INSTALLER }}" ./release/${{ env.MAC_FILENAME_UNSIGNED }} ./release/${{ env.MAC_FILENAME }}
rm ./release/${{ env.MAC_FILENAME_UNSIGNED }}
- name: 'Notarization'
if: success()
working-directory: ./obs-midi
shell: bash
run: |
set -e
echo "store password"
xcrun altool --store-password-in-keychain-item "AC_PASSWORD" -u "${{ secrets.MACOS_IDENT_USER }}" -p "${{ secrets.MACOS_IDENT_PASS }}"
echo "xcnotary precheck"
xcnotary precheck ./release/${{ env.MAC_FILENAME }}
echo "xcnotary notarize Currently Disabled"
#if [ "$?" -eq 0 ]; then xcnotary notarize ./release/${{ env.MAC_FILENAME }} -d "[email protected]" -k "AC_PASSWORD"; fi
- name: 'Publish ${{ env.MAC_FILENAME }} artifact'
if: success()
if: success()
uses: actions/upload-artifact@v2-preview
with:
name: '${{ env.GIT_HASH }}-macOS'
Expand Down Expand Up @@ -493,8 +530,8 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ${{ github.workspace }}/${{ env.GIT_HASH }}-macOS/obs-midi-${{ env.GIT_HASH }}-macOS-Unsigned.pkg
asset_name: obs-midi-${{ env.GIT_HASH }}-macOS-Unsigned.pkg
asset_path: ${{ github.workspace }}/${{ env.GIT_HASH }}-macOS/obs-midi-${{ env.GIT_HASH }}-macOS.pkg
asset_name: obs-midi-${{ env.GIT_HASH }}-macOS.pkg
asset_content_type: application/octet-stream
- name: 'Upload Linux artifact to release'
uses: actions/upload-release-asset@v1
Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
################################################################################
# This .gitignore file was automatically created by Microsoft(R) Visual Studio.
################################################################################

/.vs/obs-midi/v16
4 changes: 2 additions & 2 deletions CI/macos/Brewfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ brew "speexdsp"
brew "cmake"
brew "freetype"
brew "fdk-aac"
brew "./qt.rb"
brew "/Users/runner/work/obs-midi/obs-midi/obs-midi/CI/macos/qt.rb"
brew "swig", link: false
brew "./swig.rb"
brew "/Users/runner/work/obs-midi/obs-midi/obs-midi/CI/macos/swig.rb"
brew "akeru-inc/tap/xcnotary"
4 changes: 2 additions & 2 deletions CI/macos/obs-midi.pkgproj
Original file line number Diff line number Diff line change
Expand Up @@ -514,11 +514,11 @@
<key>CONCLUSION_ACTION</key>
<integer>0</integer>
<key>IDENTIFIER</key>
<string>fr.palakis.obs-midi</string>
<string>en.cpyarger.obs-midi</string>
<key>OVERWRITE_PERMISSIONS</key>
<false/>
<key>VERSION</key>
<string>4.8.0</string>
<string>0.9.0</string>
</dict>
<key>PROJECT_COMMENTS</key>
<dict>
Expand Down
2 changes: 1 addition & 1 deletion CI/package-macos.sh
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ if [[ "$RELEASE_MODE" == "True" ]]; then
zip -r ./release/$FILENAME.zip ./release/$FILENAME
UPLOAD_RESULT=$(xcrun altool \
--notarize-app \
--primary-bundle-id "fr.palakis.obs-midi" \
--primary-bundle-id "en.cpyarger.obs-midi" \
--username "$AC_USERNAME" \
--password "$AC_PASSWORD" \
--asc-provider "$AC_PROVIDER_SHORTNAME" \
Expand Down
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,13 @@ Use MIDI devices to trigger events in OBS and visa versa.



# Status -- ![CI Multiplatform Build](https://github.com/cpyarger/obs-midi/workflows/CI%20Multiplatform%20Build/badge.svg)
# Status -- ![CI Multiplatform Build and release](https://github.com/cpyarger/obs-midi/workflows/CI%20Multiplatform%20Build%20and%20release/badge.svg?branch=release)
# Installing


1. Grab the zip from the [OBS-Midi Releases Page](https://github.com/Alzy/obs-midi/releases)
1. Grab the installer from the [OBS-Midi Releases Page](https://github.com/cpyarger/obs-midi/releases)

2. Copy the files in the zip to your obs plugins directory.

* By Default this is C:\Program Files\obs-studio\obs-plugins\64bit
2. Download and run the installer for your OS

3. Launch OBS

Expand All @@ -23,10 +21,12 @@ Use MIDI devices to trigger events in OBS and visa versa.



Currently runs on Windows and Linux, and is untested on MAC

Currently runs on Windows and Linux, and is partly tested on MAC

# Special thanks to the following projects
* [RTMidi17](https://github.com/jcelerier/RtMidi17) An amazing modernized RTMIDI library
* [OBSWebsocket](https://github.com/Palakis/obs-websocket/) from which much code was borrowed for interfacing with OBS
* [Midi2OBS](https://github.com/lebaston100/MIDItoOBS) Where I got my start playing with this

# Build Instructions
[Build instructions can be found here](build.md)
169 changes: 0 additions & 169 deletions azure-pipelines.yml

This file was deleted.

Loading

0 comments on commit a04d4ac

Please sign in to comment.