diff --git a/.github/workflows/rpi-image.yml b/.github/workflows/rpi-image.yml new file mode 100644 index 0000000..68e9393 --- /dev/null +++ b/.github/workflows/rpi-image.yml @@ -0,0 +1,53 @@ +name: RPi Image + +on: + release: + types: [published] + workflow_dispatch: + +jobs: + create-rpi-image: + strategy: + matrix: + arch: + - arch: x32 + url: https://downloads.raspberrypi.com/raspios_lite_armhf/images/raspios_lite_armhf-2024-11-19/2024-11-19-raspios-bookworm-armhf-lite.img.xz + - arch: x64 + url: https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-11-19/2024-11-19-raspios-bookworm-arm64-lite.img.xz + + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Create image + uses: dtcooper/rpi-image-modifier@v1 + id: create-image + with: + base-image-url: ${{ matrix.arch.url }} + image-path: image_rpi_${{ matrix.arch.arch }}.img + compress-with-xz: true + cache: true + mount-repository: true + run: | + apt update + apt install -y libudev-dev libusb-1.0-0-dev libhidapi-libusb0 libjpeg-dev zlib1g-dev libopenjp2-7 libtiff5 libgtk-3-dev python3-pip + tee /etc/udev/rules.d/10-streamdeck.rules << EOF + SUBSYSTEMS=="usb", ATTRS{idVendor}=="0fd9", GROUP="users", TAG+="uaccess" + EOF + udevadm control --reload-rules + pip install streamdeckapi + crontab -l | { cat; echo "@reboot streamdeckapi-server"; } | crontab - + - name: Print outputs + shell: bash + run: | + echo 'image-path: ${{ steps.create-image.outputs.image-path }}' + echo 'image-size: ${{ steps.create-image.outputs.image-size }}' + echo 'image-sha256sum: ${{ steps.create-image.outputs.image-sha256sum }}' + #- name: Upload build artifact + # uses: actions/upload-artifact@v4 + # with: + # name: built-image + # path: ${{ steps.create-image.outputs.image-path }} + # if-no-files-found: error + # retention-days: 2 + # compression-level: 0 # Already compressed with xz above