From 6c8d6ed2ca1faf8a0dd05dd3e0df07b3748d172a Mon Sep 17 00:00:00 2001 From: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> Date: Tue, 14 Apr 2020 18:06:42 -0700 Subject: [PATCH] Add workflow for automated Windows/MacOS builds --- .dockerignore | 1 + .github/workflows/publish-release.yml | 182 ++++++++++++- .gitignore | 6 + .../default/images/logo-circle.icns | Bin 0 -> 28453 bytes .../interfaces/default/images/logo-circle.ico | Bin 0 -> 120528 bytes package/Tautulli-macos.spec | 49 ++++ package/Tautulli-windows.spec | 38 +++ package/Tautulli.nsi | 244 ++++++++++++++++++ package/macos-scripts/preinstall | 25 ++ package/nsis-plugins/nsProcess.dll | Bin 0 -> 4608 bytes 10 files changed, 535 insertions(+), 10 deletions(-) create mode 100644 data/interfaces/default/images/logo-circle.icns create mode 100644 data/interfaces/default/images/logo-circle.ico create mode 100644 package/Tautulli-macos.spec create mode 100644 package/Tautulli-windows.spec create mode 100644 package/Tautulli.nsi create mode 100755 package/macos-scripts/preinstall create mode 100644 package/nsis-plugins/nsProcess.dll diff --git a/.dockerignore b/.dockerignore index 742c4925..d525a859 100644 --- a/.dockerignore +++ b/.dockerignore @@ -3,6 +3,7 @@ .gitignore contrib init-scripts +package pylintrc *.md !CHANGELOG*.md diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 8834af3f..5b04c4bd 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -2,27 +2,189 @@ name: Publish Release on: push: tags: [v*] + jobs: - build: - runs-on: ubuntu-latest + build-windows: + if: ${{ !endsWith(github.ref, '-beta') }} + runs-on: windows-latest steps: - name: Checkout Code - uses: actions/checkout@master - - name: Get Release Version - run: echo ::set-env name=RELEASE_VERSION::${GITHUB_REF#refs/tags/} + uses: actions/checkout@v2.1.0 + + - name: Set Release Version + id: get_version + shell: bash + run: | + echo ::set-output name=VERSION::${GITHUB_REF#refs/tags/v} + echo ::set-output name=RELEASE_VERSION::${GITHUB_REF#refs/tags/} + echo $GITHUB_SHA > version.txt + + - name: Set Up Python + uses: actions/setup-python@v1.2.0 + with: + python-version: 3.8 + + - name: Cache Dependencies + id: cache_dependencies + uses: actions/cache@v1 + with: + path: ~\AppData\Local\pip\Cache + key: ${{ runner.os }}-pip-${{ steps.get_version.outputs.VERSION }} + restore-keys: ${{ runner.os }}-pip- + + - name: Install Dependencies + run: | + python -m pip install --upgrade pip + pip install pyopenssl pycryptodomex pywin32 pyinstaller + + - name: Build Package + run: | + pyinstaller -y ./package/Tautulli-windows.spec + + - name: Create Installer + uses: joncloud/makensis-action@v1 + with: + script-file: ./package/Tautulli.nsi + arguments: /DVERSION=${{ steps.get_version.outputs.VERSION }}.0 /DINSTALLER_NAME=..\Tautulli-windows-${{ steps.get_version.outputs.RELEASE_VERSION }}.exe + includeMorePlugins: package/nsis-plugins + + - name: Upload Installer + uses: actions/upload-artifact@v1 + with: + name: Tautulli-windows-installer + path: Tautulli-windows-${{ steps.get_version.outputs.RELEASE_VERSION }}.exe + + - name: Post Status to Discord + uses: sarisia/actions-status-discord@v1 + if: always() + with: + webhook: ${{ secrets.DISCORD_WEBHOOK }} + status: ${{ job.status }} + job: Build Windows Installer + nofail: true + + build-macos: + if: ${{ !endsWith(github.ref, '-beta') }} + runs-on: macos-latest + steps: + - name: Checkout Code + uses: actions/checkout@v2.1.0 + + - name: Set Release Version + id: get_version + shell: bash + run: | + echo ::set-output name=VERSION::${GITHUB_REF#refs/tags/v} + echo ::set-output name=RELEASE_VERSION::${GITHUB_REF#refs/tags/} + echo $GITHUB_SHA > version.txt + echo ::set-env name=VERSION::${GITHUB_REF#refs/tags/v} + + - name: Set Up Python + uses: actions/setup-python@v1.2.0 + with: + python-version: 3.8 + + - name: Cache Dependencies + id: cache_dependencies + uses: actions/cache@v1 + with: + path: ~/Library/Caches/pip + key: ${{ runner.os }}-pip-${{ steps.get_version.outputs.VERSION }} + restore-keys: ${{ runner.os }}-pip- + + - name: Install Dependencies + run: | + python -m pip install --upgrade pip + pip install pyopenssl pycryptodomex pyinstaller + + - name: Build Package + run: | + pyinstaller -y ./package/Tautulli-macos.spec + + - name: Create Installer + run: | + sudo pkgbuild --install-location /Applications --version ${{ steps.get_version.outputs.VERSION }} --component ./dist/Tautulli.app --scripts ./package/macos-scripts Tautulli-macos-${{ steps.get_version.outputs.RELEASE_VERSION }}.pkg + + - name: Upload Installer + uses: actions/upload-artifact@v1 + with: + name: Tautulli-macos-package + path: Tautulli-macos-${{ steps.get_version.outputs.RELEASE_VERSION }}.pkg + + - name: Post Status to Discord + uses: sarisia/actions-status-discord@v1 + if: always() + with: + webhook: ${{ secrets.DISCORD_WEBHOOK }} + status: ${{ job.status }} + job: Build MacOS Package + nofail: true + + release: + needs: [build-windows, build-macos] + if: always() + runs-on: ubuntu-latest + steps: + - name: Get Build Job Status + uses: technote-space/workflow-conclusion-action@v1 + + - name: Checkout Code + uses: actions/checkout@v2.1.0 + + - name: Set Release Version + id: get_version + run: | + echo ::set-output name=RELEASE_VERSION::${GITHUB_REF#refs/tags/} + + - name: Download Windows Installer + if: env.WORKFLOW_CONCLUSION == 'success' + uses: actions/download-artifact@v1 + with: + name: Tautulli-windows-installer + + - name: Download MacOS Package + if: env.WORKFLOW_CONCLUSION == 'success' + uses: actions/download-artifact@v1 + with: + name: Tautulli-macos-package + - name: Get Changelog - run: echo ::set-env name=CHANGELOG::"$( sed -n '/^## /{p; :loop n; p; /^## /q; b loop}' CHANGELOG.md | sed '$d' | sed '$d' | sed '$d' | sed ':a;N;$!ba;s/\n/%0A/g' )" + id: get_changelog + run: echo ::set-output name=CHANGELOG::"$( sed -n '/^## /{p; :loop n; p; /^## /q; b loop}' CHANGELOG.md | sed '$d' | sed '$d' | sed '$d' | sed ':a;N;$!ba;s/\n/%0A/g' )" + - name: Create Release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - tag_name: ${{ env.RELEASE_VERSION }} - release_name: Tautulli ${{ env.RELEASE_VERSION }} + tag_name: ${{ steps.get_version.outputs.RELEASE_VERSION }} + release_name: Tautulli ${{ steps.get_version.outputs.RELEASE_VERSION }} body: | ## Changelog - ##${{ env.CHANGELOG }} + ##${{ steps.get_changelog.outputs.CHANGELOG }} draft: false - prerelease: ${{ endsWith(env.RELEASE_VERSION, '-beta') }} + prerelease: ${{ endsWith(steps.get_version.outputs.RELEASE_VERSION, '-beta') }} + + - name: Upload Windows Installer + if: env.WORKFLOW_CONCLUSION == 'success' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: Tautulli-windows-installer/Tautulli-windows-${{ steps.get_version.outputs.RELEASE_VERSION }}.exe + asset_name: Tautulli-windows-${{ steps.get_version.outputs.RELEASE_VERSION }}.exe + asset_content_type: application/vnd.microsoft.portable-executable + + - name: Upload MacOS Package + if: env.WORKFLOW_CONCLUSION == 'success' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: Tautulli-macos-package/Tautulli-macos-${{ steps.get_version.outputs.RELEASE_VERSION }}.pkg + asset_name: Tautulli-macos-${{ steps.get_version.outputs.RELEASE_VERSION }}.pkg + asset_content_type: application/vnd.apple.installer+xml diff --git a/.gitignore b/.gitignore index ded1ace0..6bb5c9b5 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,8 @@ backups/* cache/* newsletters/* *.mmdb +version.txt +branch.txt # HTTPS Cert/Key # ################## @@ -74,3 +76,7 @@ _ReSharper*/ /logs .project .pydevproject + +#Ignore files generated by pyinstaller +/build +/dist diff --git a/data/interfaces/default/images/logo-circle.icns b/data/interfaces/default/images/logo-circle.icns new file mode 100644 index 0000000000000000000000000000000000000000..3ced71f418fa63fa6c07233ed0b0bcec3cdd58d3 GIT binary patch literal 28453 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 /dev/null + then + dialogText=`osascript -e 'set dialogText to button returned of (display dialog "Tautulli is still running. Please shutdown Tautulli before continuing." buttons {"Retry", "Shutdown Tautulli", "Abort"})'`; + + if [[ $dialogText == 'Retry' ]] + then + check_tautulli_running; + elif [[ $dialogText == 'Shutdown Tautulli' ]] + then + pkill Tautulli + while pgrep Tautulli > /dev/null; do sleep 1; done + check_tautulli_running; + elif [[ $dialogText == 'Abort' ]] + then + exit 1; + fi + else + exit 0; + fi +} + +check_tautulli_running; diff --git a/package/nsis-plugins/nsProcess.dll b/package/nsis-plugins/nsProcess.dll new file mode 100644 index 0000000000000000000000000000000000000000..4ce012103f940e219f1b48eebd923e2b9c05ad01 GIT binary patch literal 4608 zcmeZ`n!v!!z`(%5z`*eTKLf)K1_*F~P^1JvLws4+R+`;H`Rxugz`&%) z&B)2Xz{bG9zyT3u6kuRr0AU3%UjWQzVqjnea}hK{0whpg%P=r7frCc?q7S42q#tSw zgE9j{9|Hr!0|f>K8;}_e3=CTsK@2n;z`#(0CPWlhfdT9kTx#`7QY%Ur7#LoIA`s** zkY7P;Bn==V^omjvOA;9v`aqEl@;gWk7m^|d1_lQP1_wQeG6n^ZyaB2_jOW0>a6qr9 zxG0$c>Q_)=VFD!vm&g)j{$JEbfkB|Vl&9O3!$3 z1Mv=Vv4=Q7`kLSH1c!B(a)gH&-ww`TWD#KaFDd}i|HJxsNp@%Hm(JK9ma#k~j=ip5 z0y5YI7zF-{1}HEHSjPS+(d~8p1G0}tfkB}4K#62y?H^`F28L3Bj2+wz4B`JpIlvO7 ztlh2xuZ4oc|BJGK1-e}YN}0P|MZ%9Wfb!aZQ3eGDf%v%SlZQilb5y1@zPZE1zz}Zy zzt?q7Kxb`CXKh4hZNhQaJySrXoTv@hj8d*0F-!~$FTB_g~Zk6acO%*2hb-GS(BH zP+$-U|9{Q;_-ox>*MNZF|D_pOtp7tpx_`9(FVX&An(<#$M}a}0@jnX#!+}yh=G(zp z4F9jS9_VzGUbF6xV`5-1zHR-xguVOt%O#8q z4Be#}-EKD4hf92dgELqd85nwdC;a{YKQQZmKydJXQ56LSf&Zl?y{#a@fd8Tj5Fg7s zbh^e^x>l4b^tvVl^twg_{4cHfU*__{^xyyg%|`^f*{lzjurPmky%_G!m+XuT3>kAk z=84LH!r(?{Y>M@L{+6!{3=G|-AirlcC@=^F|G$<|0HV8p{J)lw08(F?(tYFqweAnC z|M^=$)k^C({+1043=FNe`CC>nFn|&j)Bo$;Kbrsl=Wm(Lz`)SkI_2O0{{i90!L$Y= z1H=EzugiK{cYs9yi%KXk2=unFZvXfH|7+HklO-G;T^tQRV@kh(1Hd5w?pqPC?HImS zg85z@+4o!L{QLj^g~?xV0Ki-TijdN_a7em>M?`aN3_~gVj%ZLEDK*ztFqTR+*G7PZ zB0)m@&9w=PrR+PRKpZCH198#u%|~-i9`1Hg;RsvIV!$BK?V=*Gm;u5N$N<&3`xFcq z1i}_`7%&LD00jXktA)KV2fKzR;DrPu14A6q282NZl`-taw?827@C3ZL&OnL*q96kp zvlzo(Y=s#x4Q#+dkfU1E;XTafetyMNi`!P#FF%<>+l?`1AjN#vMq83{hYZXg|Fi;Ino{2=WVINvR^sJMiI!MP|ku_QGlKR+iUHK)MXC^#>%pg1ER)TCkX zb`A1#^)WWmbMf&3+2B_aSejZ?8C+RhlA7z8mzH0Yn^=;Wp9hv>2w`wx@L}*_(1X$p z45}#%3^E`;fD|w=Fw6kCNr8bO14-hBW-+lo=Rulo=Q*l^Gb?ltHF3GB7bPGvpORodUKd9vs0?5r%lT%siM& z8RES&b8_G^p?Nv^i76ms1_*=v3-Y}L0|SEu149GM88C5B^WFf9I427Og9ifxLxckZ zLlh$e!xM-G2Ajm<;?&%voJxg?+?>2(Tcy&XJgeg5jMUu3V%^-#P_QXZO)f3U zEU5&WqoAOmU{jP@SejZ~lA01wlv$RUlbW7d43|WfcCAQFE(H}YKB;A?ISM%-(pD+4 z*fXyzKRdNZNue~;F&R|0*(#+a<`kzY+1cpB%|_J>Hy=p_hV3@`C~mdUhkM$Nm&-;U z7M^wijscD?E}nkw5fM-Zlp>1{>WhK;rD6v924MyT24x0q2J;Oz7#uhFVxVDYU}$6L zY#3-*VmROMn&C4;86!0#9V2@q7b72|Fr(E*SB#z*$s21JXBrn7HyF1WuQJ|je9-u~ x@oVER#!Mz0Ch8{cCSfMgCTS++CiNygCX-ASnJhQiU~<;viU}-*jnV@d0su@Lxo-df literal 0 HcmV?d00001