Files
mkdocs/.github/workflows/ci.yml
T
2026-07-10 22:27:53 +03:00

88 lines
2.9 KiB
YAML

name: Docker Build and Push # Имя CI джобы
on: # Выполняется если производится push в ветку main
push:
branches: [ main ]
env: # Переменные окружения
REGISTRY: gitea.trastinfo.ru
IMAGE_NAME: sailor/mkdocs
PLATFORMS: linux/amd64,linux/arm64
jobs: # Список выполняемых джоб
need-build: # джоба проверки изменений в файлах. При изменении пулит новые файлы и перезапускает контейнер
runs-on: ubuntu-latest
outputs:
src_changed: ${{ steps.filter.outputs.src }}
steps:
- uses: actions/checkout@v3
- uses: dorny/paths-filter@v2
with:
filters: |
src:
- 'docs/*'
- 'mkdocs.yml'
need-deploy: # джоба проверки изменений в зависимостях. Если requirements.txt был изменен, то будет выполнена сборка и пуш образа
runs-on: ubuntu-latest
outputs:
src_changed: ${{ steps.filter.outputs.src }}
steps:
- uses: actions/checkout@v3
- uses: dorny/paths-filter@v2
with:
filters: |
src:
- 'requirements.txt'
build: # джоба сборки и пуша образа. Выполняется если проверка изменений показала что requirements.txt был изменен
needs: need-build
if: needs.need-build.outputs.src_changed == 'true'
runs-on: ubuntu-latest
steps:
- name: Login to Gitea Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_TOKEN }}
- name: Checkout code
uses: actions/checkout@v4
with:
ref: main
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push multi-arch image
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
push: true
tags: |
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}
cache-from: type=gha
cache-to: type=gha,mode=max
deploy:
runs-on: ubuntu-latest
needs: need-deploy
if: needs.need-deploy.outputs.src_changed == 'true'
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Deploy over SSH
uses: appleboy/ssh-action@v0.1.6
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USER }}
key: ${{ secrets.KEY }}
script: |
cd /home/ubadmin/mkdocs
git pull origin main
sudo docker compose down
sudo docker compose up -d --build