Update tests.yml #595
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
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/inkycal_os.img | |
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: | | |
source venv/bin/activate | |
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 |