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-and-publish-docs: name: Generate and publish docs 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: Generate Docs run: | sudo apt-get install python3-sphinx source venv/bin/activate pip install sphinxemoji sphinx_rtd_theme recommonmark cd docsource make html && make github && cd .. echo "$PWD" ls git status - name: use checkout actions uses: actions/checkout@v3 - name: publish run: | echo "$PWD" ls git config user.name "github-actions" git config user.email "github-actions@github.com" git add docs/* git commit -m "update docs" git push