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