name: "Build documentation"
on:
  push:
    branches:
      - main
  workflow_dispatch:

jobs:
  build:
    name: "Build"
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4

    - uses: actions/setup-python@v5
      with:
        python-version: '3.9'

    - id: install-pipenv
      name: Install pipenv
      run: curl https://raw.githubusercontent.com/pypa/pipenv/master/get-pipenv.py | python
      shell: bash

    - id: install-python-dependencies
      name: Install Python dependencies
      run: pipenv sync --dev
      shell: bash

    - id: build-sphinx-documentation
      name: Build Sphinx documentation
      run: pipenv run make html;
      shell: bash
      working-directory: docs

    - name: Upload release candidate
      uses: actions/upload-artifact@v4
      with:
        name: release-candidate
        path: ./docs/

  deploy:
    name: Deploy
    runs-on: ubuntu-latest
    needs: build
    steps:
    - name: Download release candidate
      uses: actions/download-artifact@v4
      with:
        name: release-candidate
        path: ./docs/

    - id: configure-aws
      name: Configure AWS Credentials
      uses: aws-actions/configure-aws-credentials@v4
      with:
        aws-access-key-id: ${{ secrets.PALEWIRE_DOCS_AWS_ACCESS_KEY_ID }}
        aws-secret-access-key: ${{ secrets.PALEWIRE_DOCS_AWS_SECRET_ACCESS_KEY }}
        aws-region: us-east-1

    - id: upload-to-s3
      name: Upload documentation to Amazon S3
      uses: datadesk/delivery-deploy-action@v1
      with:
        bucket: ${{ secrets.PALEWIRE_DOCS_AWS_BUCKET }}
        base-path: django-bakery/
        dir: ./docs/_build/html/
        should-cache: false
        use-accelerate-endpoint: false
        public: true