Skip to content

Update tests.yml

Update tests.yml #602

Workflow file for this run

name: Inkycal testing
on:
push:
branches:
- main
jobs:
clone-setup-install:
name: Clone, Setup, and Install
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: Create Archive
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: clone-setup-install
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: 2000 # 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
ls
- 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
generate-docs:
name: Generate Docs
needs: clone-setup-install
runs-on: ubuntu-latest
steps:
- name: Restore Workspace
uses: actions/download-artifact@v2
with:
name: workspace
- name: Extract Workspace Archive
run: |
tar -xzf workspace.tar.gz
- name: Generate Docs
run: |
sudo apt-get install python3-sphinx
source venv/bin/activate
pip install sphinxemoji
cd docsource
make html
publish-docs:
name: Publish Docs
needs: generate-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: Publish Docs to Github Pages
run: |
echo "$PWD"
ls
source venv/bin/activate
cd docsource && make html && make github && cd ..
echo "$PWD"
ls
git config --global user.name 'GitHub Actions'
git config --global user.email 'actions@github.com'
git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/$GITHUB_REPOSITORY
git add docs
git commit -m "Update documentation"
git push --force --quiet