From 63abc43445fd52386ca40a24052fbead9d10a4d6 Mon Sep 17 00:00:00 2001 From: Ace Date: Fri, 18 Aug 2023 01:19:24 +0200 Subject: [PATCH] Create update-os.yml --- .github/workflows/update-os.yml | 84 +++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 .github/workflows/update-os.yml diff --git a/.github/workflows/update-os.yml b/.github/workflows/update-os.yml new file mode 100644 index 0000000..aff4005 --- /dev/null +++ b/.github/workflows/update-os.yml @@ -0,0 +1,84 @@ +name: update OS + +on: + workflow_dispatch: + +jobs: + test-on-arm: + name: Update OS + runs-on: ubuntu-latest + permissions: + contents: write + + steps: + - name: Build Raspberry Pi OS + uses: pguyot/arm-runner-action@v2 + id: build_image + env: + INKY_INITAL_PASSWORD: ${{ secrets.INKY_INITAL_PASSWORD }} + OPENWEATHERMAP_API_KEY: ${{ secrets.OPENWEATHERMAP_API_KEY }} + SAMPLE_ICAL_URL: ${{ secrets.SAMPLE_ICAL_URL }} + TEST_ICAL_URL: ${{ secrets.TEST_ICAL_URL }} + TODOIST_API_KEY: ${{ secrets.TODOIST_API_KEY }} + with: + # Set the base_image to the desired Raspberry Pi OS version + base_image: https://downloads.raspberrypi.org/raspios_lite_armhf/images/raspios_lite_armhf-2023-05-03/2023-05-03-raspios-bullseye-armhf-lite.img.xz + image_additional_mb: 1500 # enlarge free space to 1.5 GB + optimize_image: true + user: inky + commands: | + cd /home + sudo useradd -m -p "$(openssl passwd -1 $INKY_INITAL_PASSWORD)" inky + sudo usermod -a -G adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,gpio,i2c,spi inky + sudo su inky + echo $HOME + whoami + cd /home/inky + sudo apt-get update -y + python --version + sudo apt-get install -y python3-pip + sudo apt-get install zlib1g libjpeg-dev libatlas-base-dev rustc libopenjp2-7 python3-dev scons libssl-dev python3-venv python3-pip git libfreetype6-dev -y + echo $PWD && ls + git clone --branch main --single-branch https://github.com/aceinnolab/Inkycal + cd Inkycal + python3 -m venv venv + . venv/bin/activate + python -m pip install --upgrade pip + pip install wheel + pip install -e ./ + pip install RPi.GPIO==0.7.1 spidev==3.5 + cd inkycal/tests + wget https://raw.githubusercontent.com/aceinnolab/Inkycal/assets/tests/settings.json + for f in *.py; do python3 "$f"; done + + # enable SPI + sudo sed -i s/#dtparam=spi=on/dtparam=spi=on/ /boot/config.txt + + # enable inkycal start at boot + sudo -u inky bash -c 'echo "@reboot sleep 60 && cd /home/inky/Inkycal && venv/bin/python inky_run.py &" | crontab -' + sudo chown inky:crontab /var/spool/cron/crontabs/inky + + # fix permissions of Inkycal folder recursively + sudo chown -R inky:inky /home/inky/Inkycal + + # make all users require a password for sudo commands (improves security) + echo 'ALL ALL=(ALL:ALL) PASSWD: ALL' | sudo tee -a /etc/sudoers.d/010_require_sudo_password + + - name: Compress the release image + run: | + mv ${{ steps.build_image.outputs.image }} inkycal_os_lite.img + xz -0 -T 0 -v inkycal_os_lite.img + + - name: Get latest release version + run: | + export tag="$(curl -s https://api.github.com/repos/aceinnolab/Inkycal/releases/latest | jq -r '.tag_name')" + echo "version=${tag}" >> $GITHUB_ENV + + - name: Upload Raspberry Pi OS Image + if: success() # Only upload the image if the tests were successful + uses: softprops/action-gh-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ env.version }} + files: inkycal_os_lite.img.xz