Inkycal/.github/workflows/tests.yml
2023-07-26 04:15:56 +02:00

121 lines
3.9 KiB
YAML

name: Inkycal testing
on:
push:
branches:
- main
jobs:
update-docs:
name: update docs
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3
with:
ref: main
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Install Dependencies
run: |
python3 -m venv venv
source venv/bin/activate
python -m pip install --upgrade pip
pip install wheel
pip install -e .
cd ..
- name: Generate Docs
run: |
sudo apt-get install python3-sphinx
pip install sphinxemoji sphinx_rtd_theme recommonmark
cd docsource
make html && make github && cd ..
- name: Check if there are any changes
id: verify_diff
run: |
git diff --quiet . || echo "changed=true" >> $GITHUB_OUTPUT
- name: push docs
if: steps.verify_diff.outputs.changed == 'true'
run: |
git config user.name "github-actions"
git config user.email "actions@github.com"
git add docs/*
git commit -m "update docs [bot]"
git push
test-on-arm:
name: Run Tests on Raspberry Pi OS
needs: update-docs
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Run Tests on Raspberry Pi OS
uses: pguyot/arm-runner-action@v2
id: build_image
env:
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
echo $PWD && ls
sudo useradd -m -p ${{ secrets.INKY_INITAL_PASSWORD }} inky
sudo usermod -a -G adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,gpio,i2c,spi inky
su - inky
cd /home/inky
sudo apt-get update -y
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
- name: Install Inkycal and run tests
run: |
git clone --branch main --single-branch https://github.com/aceinnolab/Inkycal
cd Inkycal
. venv/bin/activate
python -m pip install --upgrade pip
pip install wheel
pip install -e ./
cd inkycal/tests
echo $PWD
wget https://raw.githubusercontent.com/aceinnolab/Inkycal/assets/tests/settings.json
for f in *.py; do python3 "$f"; done
- name: Compress the release image
run: |
mv ${{ steps.build_image.outputs.image }} inkycal_os.img
xz -0 -T 0 -v inkycal_os.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.img.xz