56 lines
1.8 KiB
YAML
56 lines
1.8 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: # Список выполняемых джоб
|
|
check-changes: # джоба проверки изменений в файлах
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
src_changed: ${{ steps.filter.outputs.src }}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: dorny/paths-filter@v2
|
|
id: filter
|
|
with:
|
|
filters: |
|
|
src:
|
|
- 'requirements.txt'
|
|
|
|
build: # джоба сборки и пуша образа. Выполняется если проверка изменений показала что requirements.txt был изменен
|
|
needs: check-changes
|
|
if: needs.check-changes.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 |