name: Inkycal testing

on:
  push:
    branches:
      - main
      
jobs:
  build:
    name: run Inkycal tests
    runs-on: ubuntu-latest
    permissions:
      contents: write

    steps:
    - uses: actions/checkout@v3
    - name: Set up Python 3.9
      uses: actions/setup-python@v4
      with:
        python-version: 3.9

    - name: Clone repo
      run: |
        git clone --single-branch https://github.com/aceinnolab/Inkycal
    - name: Creating virtual environment generate docs and install dependencies

      run: |
        cd Inkycal
        echo "$PWD"
        python3 -m venv venv
        source venv/bin/activate
        python -m pip install --upgrade pip
        pip install wheel
        pip install -e ./
        cd docsource && make html
        make github
        cd ..
    - name: Configure Git
      run: |
        git config --global user.name 'GitHub Actions'
        git config --global user.email 'actions@github.com'

    - name: Commit and Push Changes
      run: |
        cd docs/
        git init
        git add -A
        git commit -m "Update documentation"
        git push --force --quiet "https://${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}"
    - name: Setup test environment and run tests
      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 }}
      run: |
        cd inkycal/tests
        wget https://raw.githubusercontent.com/aceinnolab/Inkycal/assets/tests/settings.json
        for f in *.py; do python3 "$f"; done