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: aceisace/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: raspbian_lite:latest image_additional_mb: 1500 # enlarge free space to 1.5 GB optimize_image: true commands: | sudo useradd -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 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 cd /home/inky - name: Clone Inkycal repo uses: actions/checkout@v3 with: ref: main - name: install requirements and run tests run: | ls cd /home/inky/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