diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 00000000..9397ce76 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,66 @@ +name: Deploy Documentation + +on: + push: + branches: + - master + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Setup Python 3.12 + uses: actions/setup-python@v2 + with: + python-version: "3.12" + - name: Cache virtualenv + id: venv-cache + uses: actions/cache@v3 + with: + path: .venv + key: venv-${{ runner.os }}-${{ github.job }}-${{ github.ref }}-3.12 + restore-keys: | + venv-${{ runner.os }}-${{ github.job }}-${{ github.ref }}- + venv-${{ runner.os }}-${{ github.job }}- + venv-${{ runner.os }}- + - name: Install Poetry + run: python -m pip install poetry + - name: Cache Poetry and pip + uses: actions/cache@v3 + with: + path: | + ~/.cache/pypoetry + ~/.cache/pip + key: poetry-pip-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }} + restore-keys: | + poetry-pip-${{ runner.os }}- + - name: Install Dependencies with Poetry + run: poetry install --no-interaction --no-ansi + - name: Build Documentation + run: | + poetry run make build-docs + - name: Install AWS CLI + run: | + sudo apt update + sudo apt install -y awscli + - name: Configure AWS CLI for Cloudflare R2 + run: | + aws configure set aws_access_key_id ${{ secrets.CF_R2_ACCESS_KEY_ID }} + aws configure set aws_secret_access_key ${{ secrets.CF_R2_SECRET_ACCESS_KEY }} + aws configure set default.region us-east-1 # R2 uses us-east-1 by default + aws configure set default.output json + - name: Sync to Cloudflare R2 + env: + CF_R2_ENDPOINT: ${{ secrets.CF_R2_ENDPOINT }} + CF_R2_BUCKET_NAME: ${{ secrets.CF_R2_BUCKET_NAME }} + run: | + aws s3 sync docs/build/en/html s3://$CF_R2_BUCKET_NAME/en/ \ + --delete \ + --acl public-read \ + --endpoint-url $CF_R2_ENDPOINT + aws s3 sync docs/build/ru/html s3://$CF_R2_BUCKET_NAME/ru/ \ + --delete \ + --acl public-read \ + --endpoint-url $CF_R2_ENDPOINT diff --git a/.readthedocs.yaml b/.readthedocs.yaml deleted file mode 100644 index 7daf92ae..00000000 --- a/.readthedocs.yaml +++ /dev/null @@ -1,17 +0,0 @@ -version: 2 - -build: - os: "ubuntu-22.04" - tools: - python: "3.10" - - jobs: - post_install: - - pip install poetry - - poetry config virtualenvs.create false - - VIRTUAL_ENV=$READTHEDOCS_VIRTUALENV_PATH poetry env info - - VIRTUAL_ENV=$READTHEDOCS_VIRTUALENV_PATH poetry install --all-extras - -formats: - - pdf - - epub diff --git a/Makefile b/Makefile index 6ed7c688..1effb9a0 100644 --- a/Makefile +++ b/Makefile @@ -54,8 +54,10 @@ translate: .venv sphinx-intl update -p docs/build/gettext -l ru -d docs/source/locale -docs: translate +build-docs: translate make -C docs/ -e BUILDDIR="build/en" html make -C docs/ -e SPHINXOPTS="-D language='ru'" -e BUILDDIR="build/ru" html + +docs: build-docs python -m webbrowser -t "file://$(shell pwd)/docs/build/en/html/index.html" python -m webbrowser -t "file://$(shell pwd)/docs/build/ru/html/index.html" diff --git a/docs/source/conf.py b/docs/source/conf.py index 80078af9..29f40d07 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -55,8 +55,12 @@ "sphinx.ext.doctest", "sphinx.ext.coverage", "sphinx.ext.viewcode", + "sphinxcontrib.googleanalytics", ] +googleanalytics_id = "G-LKL5Q0MGWZ" +googleanalytics_enabled = True + # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"]