diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 3b00f57d..8b221e12 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -63,7 +63,7 @@ jobs: # Upload artifacts - name: Upload artifacts - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v2 with: name: ${{ matrix.dockerImage }} path: ${{ matrix.dockerImage }} @@ -110,7 +110,7 @@ jobs: # Upload artifacts - name: Upload artifacts - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v2 with: name: macOS path: macOS @@ -184,7 +184,31 @@ jobs: # Upload artifacts - name: Upload artifacts - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v2 with: name: windows path: windows + +########################## +#### Snap (x86_64) ####### +########################## + + snap: + name: Snap (x86_64) + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + # Build snap package + - name: Build snap + id: build + uses: snapcore/action-build@v1 + + # Upload snap artifact (only on tagged commit) + - name: Upload snap artifact + uses: actions/upload-artifact@v2 + with: + name: snap + path: ${{ steps.build.outputs.snap }} diff --git a/.github/workflows/push-master.yml b/.github/workflows/push-master.yml index 2a002216..e6d658eb 100644 --- a/.github/workflows/push-master.yml +++ b/.github/workflows/push-master.yml @@ -146,12 +146,37 @@ jobs: with: path: build/Hyperion-* -################################ -###### Publish Releases ######## -################################ +########################## +#### Snap (x86_64) ####### +########################## - publish: - name: Publish Releases + snap: + name: Snap (x86_64) + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + # Build snap package + - name: Build snap + id: build + uses: snapcore/action-build@v1 + + # Upload snap artifact (only on tagged commit) + - name: Upload snap artifact + if: startsWith(github.event.ref, 'refs/tags') + uses: actions/upload-artifact@v2 + with: + name: snap + path: ${{ steps.build.outputs.snap }} + +####################################### +###### Publish GitHub Releases ######## +####################################### + + github_publish: + name: Publish GitHub Releases if: startsWith(github.event.ref, 'refs/tags') needs: [Linux, macOS, windows] runs-on: ubuntu-latest @@ -188,3 +213,35 @@ jobs: prerelease: ${{ env.preRelease }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + +############################ +###### Snap Release ######## +############################ + + snap_publish: + name: Publish Snap Release + if: startsWith(github.event.ref, 'refs/tags') + needs: [snap] + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + # Download snap from snap job + - name: Download snap from snap build + id: download-artifact + uses: actions/download-artifact@v2 + with: + name: snap + + # Get file name of the snap + - name: Get file name of the snap + run: echo "snap=$(ls ${{ steps.download-artifact.outputs.download-path }}/hyperion-ng_*.snap)" >> $GITHUB_ENV + + # Publish snap build to edge channel + - name: Publish snap build to edge channel + uses: snapcore/action-publish@v1 + with: + store_login: ${{ secrets.SNAP_STORE_LOGIN }} + snap: ${{ env.snap }} + release: edge diff --git a/resources/icons/hyperion-icon-512px.png b/resources/icons/hyperion-icon-512px.png new file mode 100644 index 00000000..53ea8fe8 Binary files /dev/null and b/resources/icons/hyperion-icon-512px.png differ diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml new file mode 100644 index 00000000..2135ee58 --- /dev/null +++ b/snap/snapcraft.yaml @@ -0,0 +1,77 @@ +name: hyperion-ng +base: core20 +summary: The successor to Hyperion aka Hyperion Next Generation +description: | + Hyperion is an opensource Bias or Ambient Lighting implementation which you might know from TV manufacturers. + It supports many LED devices and video grabbers. The project is still in a alpha development stage. + +license: MIT +icon: resources/icons/hyperion-icon-512px.png +adopt-info: hyperion-ng +architectures: + - build-on: amd64 +confinement: strict + +parts: + hyperion-ng: + plugin: cmake + source: https://github.com/hyperion-project/hyperion.ng.git + source-type: git + override-pull: | + snapcraftctl pull + snapcraftctl set-version "$(cat "$SNAPCRAFT_PART_SRC/version")" + snapcraftctl set-grade "stable" + cmake-generator: Ninja + cmake-parameters: + - "-DCMAKE_BUILD_TYPE=Release" + build-packages: + - git + - cmake + - build-essential + - qtbase5-dev + - libqt5serialport5-dev + - libqt5sql5-sqlite + - libqt5x11extras5-dev + - libusb-1.0-0-dev + - python3-dev + - libcec-dev + - libxcb-image0-dev + - libxcb-util0-dev + - libxcb-shm0-dev + - libxcb-render0-dev + - libxcb-randr0-dev + - libxrandr-dev + - libxrender-dev + - libavahi-core-dev + - libavahi-compat-libdnssd-dev + - libjpeg-dev + - libturbojpeg0-dev + - libssl-dev + - zlib1g-dev + stage-packages: + - libfontconfig1 + - libfreetype6 + - libgl1 + - libglvnd0 + - libglx0 + - libusb-1.0-0 + - libx11-6 + +apps: + hyperion-ng: + command: usr/local/bin/hyperiond + desktop: usr/local/share/hyperion/desktop/hyperiond.desktop + plugs: + - camera + - framebuffer + - hidraw + - home + - network-control + - network-status + - network-bind + - network + - raw-usb + - serial-port + - tpm + - unity7 + - x11