Inkycal/.github/workflows/tests.yml
2023-07-24 13:05:07 +02:00

129 lines
3.8 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
- name: Create artifact
run: |
mkdir artefacts
tar -czf artefacts/workspace.tar.gz --exclude=./artefacts .
- name: Save Workspace Archive
uses: actions/upload-artifact@v2
with:
name: workspace
path: artefacts/workspace.tar.gz
test-on-arm:
name: Run Tests on Raspberry Pi OS
needs: update-docs
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Restore Workspace
uses: actions/download-artifact@v2
with:
name: workspace
- name: Extract Workspace Archive
run: |
tar -xzf workspace.tar.gz
- 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: raspios_lite:latest
image_additional_mb: 1000 # enlarge free space to 2 GB
# Set the commands to run the tests
commands: |
apt-get update -y
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
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