diff --git a/.github/workflows/test-builds.yml b/.github/workflows/test-builds.yml new file mode 100644 index 00000000..fc93f340 --- /dev/null +++ b/.github/workflows/test-builds.yml @@ -0,0 +1,120 @@ +name: Publish Release +on: + push: + branches: [master, beta, nightly, python3] + +jobs: + build-windows: + runs-on: windows-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_NSIS::0.0.0.0 + echo ::set-output name=VERSION::0.0.0 + echo ::set-output name=RELEASE_VERSION::${GITHUB_REF#refs/heads/} + 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-${{ hashFiles('package/requirements-windows.txt') }} + restore-keys: ${{ runner.os }}-pip- + + - name: Install Dependencies + run: | + python -m pip install --upgrade pip + pip install -r package/requirements-windows.txt + + - 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_NSIS }} /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: + 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-env name=VERSION::0.0.0 + echo ::set-output name=VERSION::0.0.0 + echo ::set-output name=RELEASE_VERSION::${GITHUB_REF#refs/heads/} + 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: ~/Library/Caches/pip + key: ${{ runner.os }}-pip-${{ hashFiles('package/requirements-macos.txt') }} + restore-keys: ${{ runner.os }}-pip- + + - name: Install Dependencies + run: | + python -m pip install --upgrade pip + pip install -r package/requirements-macos.txt + + - 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