build #63
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build | |
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 }} | |
TINDIE_API_KEY: ${{ secrets.TINDIE_API_KEY }} | |
TINDIE_USERNAME: ${{ secrets.TINDIE_USERNAME }} | |
with: | |
# Set the base_image to the desired Raspberry Pi OS version | |
# note: version 2023-12-11 seems to have issues with the kernel and gpio | |
base_image: https://downloads.raspberrypi.com/raspios_lite_armhf/images/raspios_lite_armhf-2023-05-03/2023-05-03-raspios-bullseye-armhf-lite.img.xz | |
image_additional_mb: 3072 # enlarge free space to 3 GB | |
optimize_image: true | |
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 | |
# get kernel info | |
uname -srm | |
cd /home/inky | |
sudo apt-get update -y | |
# sudo apt-get dist-upgrade -y | |
sudo apt-get install -y python3-pip | |
sudo apt-get install git zlib1g libjpeg-dev libatlas-base-dev rustc libopenjp2-7 python3-dev scons libssl-dev python3-venv python3-pip git libfreetype6-dev wkhtmltopdf libopenblas-dev libxml2-dev libxslt-dev python-dev-is-python3 -y | |
# #334 & #335 | |
git clone https://github.com/WiringPi/WiringPi | |
cd WiringPi | |
./build | |
cd .. | |
echo $PWD && ls | |
git clone 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 gpiozero==2.0 | |
wget https://raw.githubusercontent.com/aceinnolab/Inkycal/assets/tests/settings.json | |
pip install pytest | |
python -m pytest | |
# install deps for 12.48" display | |
wget https://github.com/aceinnolab/Inkycal/raw/assets/tests/bcm2835-1.71.tar | |
tar -xf bcm2835-1.71.tar | |
cd bcm2835-1.71/ | |
sudo ./configure && sudo make && sudo make check && sudo make install | |
cd .. | |
echo $CWD | |
# increase swap-size | |
# temporarily disabled due to unmounting issues | |
# sudo dphys-swapfile swapoff | |
# sudo sed -i -E '/^CONF_SWAPSIZE=/s/=.*/=512/' /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) | |
# temporarily disabled to allow pisugar support | |
# echo 'ALL ALL=(ALL:ALL) PASSWD: ALL' | sudo tee -a /etc/sudoers.d/010_require_sudo_password | |
# allow some time to unmount | |
sleep 10 | |
- name: Compress the release image | |
run: | | |
# allow some time to unmount | |
sleep 10 | |
mv ${{ steps.build_image.outputs.image }} InkycalOS_Lite.img | |
xz -0 -T 0 -v InkycalOS_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: InkycalOS_Lite.img.xz |