diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index b9b7cf37..93f235f8 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -15,10 +15,6 @@ on: description: 'Skip running unit tests' required: false default: true - outputs: - version: - description: "The Libation version number" - value: ${{ jobs.build.outputs.version }} env: DOTNET_CONFIGURATION: 'Release' @@ -27,8 +23,6 @@ env: jobs: build: runs-on: ubuntu-latest - outputs: - version: ${{ steps.get_version.outputs.version }} strategy: matrix: os: [Linux, MacOS] diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index cfac74ec..f82aa21e 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -15,10 +15,6 @@ on: description: 'Skip running unit tests' required: false default: true - outputs: - version: - description: "The Libation version number" - value: ${{ jobs.build.outputs.version }} env: DOTNET_CONFIGURATION: 'Release' @@ -27,8 +23,6 @@ env: jobs: build: runs-on: windows-latest - outputs: - version: ${{ steps.get_version.outputs.version }} strategy: matrix: os: [Windows] @@ -74,7 +68,7 @@ jobs: - name: Zip artifact id: zip working-directory: ./Source/bin/Publish - run: | + run: | $dir = "${{ matrix.os }}-${{ matrix.release_name }}\" $delfiles = @("libmp3lame.so", "ffmpegaac.so", "glass-with-glow_256.svg", "Libation.desktop") foreach ($file in $delfiles){ if (test-path $dir$file){ Remove-Item $dir$file } } diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 37707947..b6cf9787 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,11 +15,6 @@ on: description: 'Skip running unit tests' required: false default: true - build_deb: - type: boolean - description: 'Build Debian package' - required: false - default: false jobs: windows: @@ -32,12 +27,4 @@ jobs: uses: ./.github/workflows/build-linux.yml with: version_override: ${{ inputs.version_override }} - run_unit_tests: ${{ inputs.run_unit_tests }} - - linux_deb: - needs: [linux] - if: inputs.build_deb - uses: ./.github/workflows/build-deb.yml - with: - version: ${{ needs.linux.outputs.version }} - + run_unit_tests: ${{ inputs.run_unit_tests }} diff --git a/.github/workflows/build-deb.yml b/.github/workflows/deb.yml similarity index 74% rename from .github/workflows/build-deb.yml rename to .github/workflows/deb.yml index e1e3db3d..3557b629 100644 --- a/.github/workflows/build-deb.yml +++ b/.github/workflows/deb.yml @@ -1,7 +1,7 @@ -# build-deb.yml +# deb.yml # Reusable workflow that builds the Linux Debian package. --- -name: build_deb +name: deb on: workflow_call: @@ -21,15 +21,14 @@ jobs: - uses: actions/checkout@v3 - name: Download Artifact - uses: actions/download-artifact@master + uses: actions/download-artifact@v3 with: name: "${{ env.FILE_NAME }}.tar.gz" - name: Build .deb id: deb run: | - chmod +x ./.github/workflows/scripts/targz2deb.sh - ./.github/workflows/scripts/targz2deb.sh "${{ env.FILE_NAME }}.tar.gz" ${{ inputs.version }} + ./Scripts/targz2deb.sh "${{ env.FILE_NAME }}.tar.gz" ${{ inputs.version }} - name: Publish .deb uses: actions/upload-artifact@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 564c8b03..29888cd9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -33,10 +33,15 @@ jobs: with: version_override: ${{ needs.prerelease.outputs.version }} run_unit_tests: false - build_deb: true + + deb: + needs: [prerelease,build] + uses: ./.github/workflows/deb.yml + with: + version: ${{ needs.prerelease.outputs.version }} release: - needs: [prerelease,build] + needs: [prerelease,build,deb] runs-on: ubuntu-latest steps: - name: Download artifacts @@ -44,14 +49,11 @@ jobs: with: path: artifacts - - name: Create release - id: create_release - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' + - name: Release + id: release + uses: softprops/action-gh-release@v1 with: - tag_name: '${{ github.ref }}' - release_name: 'Libation ${{ needs.prerelease.outputs.version }}' + name: Libation ${{ needs.prerelease.outputs.version }} body: draft: true prerelease: false @@ -61,5 +63,5 @@ jobs: env: GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' with: - release_id: '${{ steps.create_release.outputs.id }}' + release_id: '${{ steps.release.outputs.id }}' assets_path: ./artifacts diff --git a/Documentation/Docker.md b/Documentation/Docker.md new file mode 100644 index 00000000..2dc0737a --- /dev/null +++ b/Documentation/Docker.md @@ -0,0 +1,36 @@ +## [Download Libation](https://github.com/rmcrackan/Libation/releases/latest) + +### If you found this useful, tell a friend. If you found this REALLY useful, you can click here to [PalPal.me](https://paypal.me/mcrackan?locale.x=en_us) +...or just tell more friends. As long as I'm maintaining this software, it will remain **free** and **open source**. + + +### Setup +In order to use the docker image, you'll need to provide it with a copy of the `AccountsSettings.json`, `Settings.json`, and `LibationContext.db` files. These files can usually be found in the Libation folder in your user's home directory. If you haven't run Libation yet, you'll need to launch it to generate these files and setup your accounts. Once you have them, copy these files to a new location, such as `/opt/libation/config`. Before using them we'll need to make a couple edits so that the filepaths referenced are correct when running from the docker image. + +In Settings.json, make the following changes: +* Change `Books` to `/data` +* Change `InProgress` to `/tmp` + +### Running +Once the configuration files are copied and edited, the docker image can be run with the following command. +``` +sudo docker run -d \ + -v /opt/libation/config:/config \ + -v /opt/libation/books:/data \ + --name libation \ + --restart=always \ + rmcrackan/libation +``` + +By default the container will scan for new books every 30 minutes and download any new ones. This is configurable by passing in a value for the `SLEEP_TIME` environment variable. Additionally, if you pass in `-1` it will scan and download books once and then exit. + +``` +sudo docker run -d \ + -v /opt/libation/config:/config \ + -v /opt/libation/books:/data \ + -e SLEEP_TIME='10m' \ + --name libation \ + --restart=always \ + rmcrackan/libation +``` + diff --git a/.github/workflows/scripts/targz2deb.sh b/Scripts/targz2deb.sh old mode 100644 new mode 100755 similarity index 100% rename from .github/workflows/scripts/targz2deb.sh rename to Scripts/targz2deb.sh