Merge pull request #16 from DevCraftClub/mh-branch-1 #18
This file contains hidden or 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: Деплой документации | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| build-and-deploy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Клонирование кода | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 # Получаем полную историю для git-revision-date плагина | |
| - name: Настройка Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.13" | |
| cache: "pip" | |
| - name: Установка зависимостей | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements.txt | |
| - name: Определение версии | |
| id: version | |
| run: | | |
| if [[ "${{ github.event_name }}" == "pull_request" ]]; then | |
| # Для PR проверяем название на наличие версии | |
| if [[ "${{ github.event.pull_request.title }}" =~ v[0-9]+\.[0-9]+\.[0-9]+ ]]; then | |
| # Извлекаем версию из названия PR | |
| VERSION=$(echo "${{ github.event.pull_request.title }}" | grep -o 'v[0-9]\+\.[0-9]\+\.[0-9]\+' | head -1) | |
| echo "version=$VERSION" >> $GITHUB_OUTPUT | |
| else | |
| # Если версия не указана, используем dev | |
| echo "version=dev" >> $GITHUB_OUTPUT | |
| fi | |
| else | |
| # Для push в main используем dev | |
| echo "version=dev" >> $GITHUB_OUTPUT | |
| fi | |
| echo "Используется версия: ${{ steps.version.outputs.version }}" | |
| - name: Сборка документации | |
| run: | | |
| mkdocs build -c | |
| - name: Деплой с mike | |
| if: github.ref == 'refs/heads/main' | |
| run: | | |
| # Настраиваем git для mike | |
| git config --global user.name "github-actions[bot]" | |
| git config --global user.email "github-actions[bot]@users.noreply.github.com" | |
| # Деплоим с mike | |
| mike deploy --push --update-aliases "${{ steps.version.outputs.version }}" latest | |
| # Устанавливаем версию по умолчанию | |
| mike set-default --push latest |