Inkycal/.github/workflows/update-os.yml
2023-09-02 21:09:41 +02:00

104 lines
4.1 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
# install deps for 12.48" display
wget https://github.com/aceinnolab/Inkycal/blob/assets/Repo/bcm2835-1.71.tar
tar xvf bcm2835-1.71.tar
cd bcm2835-1.71/
sudo ./configure && sudo make && sudo make check && sudo make install
cd ..
echo $CWD
wget https://github.com/aceinnolab/Inkycal/blob/assets/Repo/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
cd ..
echo $CWD
gpio -v
# increase swap-size
sudo dphys-swapfile swapoff
sudo sed -i -E '/^CONF_SWAPSIZE=/s/=.*/=256/' /etc/dphys-swapfile
sudo dphys-swapfile setup
sudo dphys-swapfile swapon
# 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